Снять ограничение на количество товаров подписки в корзине Битрикс

Иногда возникает достаточно распространённая проблема — нельзя изменить количество товара в корзине Битрикса, т.е. поставить больше 1 шт, решение простое, это деактивировать опцию Продажа контента в настройках Торгового каталога для инфоблока:

А что если на сайте реализована Продажа контента с вариантами подписки и нужно снять данное ограничение? И дективация этой настройки просто отключит функционал всего механизма платной подписки.

К сожалению решение не столь изящное, да и в целом не правильное, это редактировать сам модуль, но когда стоит задача? В целом для Битрикса это решение приемлемое, т.к. такие задачи и способы их решения встречаются часто, крайне.

Необходимо отредактировать файл модуля — /bitrix/modules/catalog/lib/product/catalogprovider.php

Найти приватный метод changeSubscribeProductQuantity класса CatalogProvider и закомментировать foreach:

		/**
		 * @param array $products
		 * @param array $iblockProductMap
		 *
		 * @return array
		 */
		private static function changeSubscribeProductQuantity(array $products, array $iblockProductMap)
		{
			$resultList = $products;

			/*foreach ($iblockProductMap as $iblockId => $iblockData)
			{
				if ($iblockData['SUBSCRIPTION'] != 'Y')
					continue;

				if (empty($iblockData['PRODUCT_LIST']))
					continue;

				foreach($iblockData['PRODUCT_LIST'] as $productId)
				{
					if (isset($resultList[$productId]))
					{
						if (
							!empty($resultList[$productId]['QUANTITY_LIST'])
							&& is_array($resultList[$productId]['QUANTITY_LIST'])
						)
						{
							foreach (array_keys($resultList[$productId]['QUANTITY_LIST']) as $index)
							{
								$resultList[$productId]['QUANTITY_LIST'][$index] = 1;
							}
						}
					}
				}
			}*/

			return $resultList;
		}

Хочу предупредить, что это вредный совет, накладывает ограничения на обновление платформы, и в других версиях метод changeSubscribeProductQuantity могут изменить, что частая практика разработчиками Битрикса.

Всё на ваш страх и риск.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *