Вы столкнетесь с проблемой при расчете скидок, если захотите добавлять товары в корзину с кастомной ценой. Скидки на такие товары просчитываться не будут. И об этом писали тут например 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
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».