Где возникла проблема:
CS-Cart v4.15.2
Модуль [CommerceML (1С, МойСклад, Бизнес.Ру) [Beta]]
Суть проблемы:
При использовании данного модуля невозможно передать товарам цену со скидкой из 1С (в старом модуле было можно)
Как воспроизвести проблему:
В 1С всем товарам назначена розничная цена, некоторым (!) товарам назначена по формуле цена со скидкой (на время акции, потом убирается). В CS-Cart используется Рекомендованная цена в качестве розничной, Цена в качестве цены со скидкой. Если Рекомендованная цена больше Цены, на витрине отображается процент и значение в рублях скидки на товар.
Поле Цена обязательное. Если оно равно нулю, товар нельзя купить.
Чтобы установить скидку на товар из 1С в Рекомендованную цену должна передаться розничная цена, а в Цену - цена со скидкой.
В настройках модуля можно сопоставить только один вид цены из 1С одному виду цены в CS-Cart.
Таким образом, по большинству товаров из 1С (товары без скидки) в обязательное поле Цена (=Базовая цена) в CS-Cart ничего не передаётся, товар получает основную цену равную нулю и его нельзя купить.
Предлагаемые пути решения:
- Вариант 1: изменение модуля обмена
Вернуть в настройки синхронизации цен связь один ко многим, как было в старом модуле обмена. Тогда будет возможно установить связь:
Базовая цена = цена розничная, цена со скидкой
Рекомендованная цена = цена розничная
При отсутствии у товара в 1С цены со скидкой розничная цена будет записываться в Цену и в Рекомендованную цену. - Вариант 2: добавление поля товарам
Добавить товарам необязательное поле для цены со скидкой, куда будет писаться цена со скидкой из 1С. Должна быть возможность сопоставления этого поля с ценой из 1С в настройках модуля обмена. - Вариант 3: изменение полей товаров
Переименовать поле Рекомендованная цена в Цена (основная цена, выводится на витрину), переименовать поле Цена в Цена со скидкой, сделать необязательным.