Вы столкнетесь с проблемой при расчете скидок, если захотите добавлять товары в корзину с кастомной ценой. Скидки на такие товары просчитываться не будут. И об этом писали тут например https://idea.1c-bitrix.ru/26963/ . Нужно было как-то очень быстро и изящно решить эту проблему, хотя бы на время, пока разработчики наконец-то это не учтут в новых версиях. И очень рационально на мой взгляд сделать два разных параметра 'CHECK_PRICE' и 'CHECK_DISCOUNT' вместо 'CUSTOM_PRICE', что кстати уже реализовано в стандартном классе провайдере CCatalogProductProvider который по умолчанию передается параметром 'PRODUCT_PROVIDER_CLASS' в методе $basket->createItem, например.
Поэтому, исходя из проблемы, было принято решение скопировать стандартный PRODUCT_PROVIDER_CLASSCCatalogProductProvider (он находится тут /bitrix/modules/catalog/general/product_provider.php и реализован от интерфейса IBXSaleProductProvider ) и переименовать его, например, в CCatalogProductProviderCustom. В нашем новом провайдере меняем одну строчку (в моей версии это 65 строчка):
Теперь вы можете выставлять свою цену, а скидка будет просчитываться как раньше. p.s. Я предупреждаю, что данное решение на коленке, и если возможно оно кому-то поможет. Но если кто-то глубже погружался в проблему и знает, такого рецепта недостаточно, пожалуйста отпишитесь в комментариях. К слову версия Битрикса 18.1.3
Перфильева Евгения, если так, то нужно будет убедиться, что используется ваш PRODUCT_PROVIDER_CLASS а не системный. Т.е. вы работаете на уровне методов, то в какой-то момент нужно будет указать свой класс в качестве аргумента, вот например тут https://dev.1c-bitrix.ru/api_help/sale...t__add.php параметром передается. Ну и в D7 методах тоже самое.
Если компонент у вас, то там смотреть надо. Сходу не скажу.
Перфильева Евгения, а что в $_POST["PRICE"]? Вообще странно, что у вас цена из POST принимается. Так любой сможет передать цену по которой хочет приобрести товар.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».