Важно понимать, что в InSales скидки хранятся несколько иначе, чем в системе:
Во время выгрузки заказа из InSales в систему, все рублевые скидки суммой запишутся в поле заказа «Скидка в рублях», все процентные скидки заказа также суммой запишутся в поле «Скидка в процентах».
Важно!
Если в системе поменять эти поля вручную, то в InSales скидки перезапишутся, и в заказе появится по одной скидке на каждый тип в системе (одна скидка в рублевом расчете, и одна в процентном).
Наценка на способ оплаты в заказе не передается в систему ввиду отсутствия её в системе.
Новый обработчик скидок
В интеграции с InSales присутствует механизм передачи скидок между системами. Для использования этого механизма необходимо в настройках интеграции выставить флаг «Использовать новый обработчик скидок». По умолчанию настройка уже активна.
Скидки, добавляемые вручную в интерфейсе заказа InSales , могут быть валютными и процентными. Они относятся ко всему заказу в целом.
Передача скидок из InSales
1) Модуль превращает их в валютную скидку и распределяет ее на позиции в заказе системы. При этом поля с общей разовой скидкой остаются пустыми.
2) В заказе InSales исходные валютная и процентная скидки на весь заказ остаются без изменения.
Передача скидок из CRM:
Версия API v5
Если изменить любую скидку на стороне CRM, то новый обработчик скидок:
1) Превращает скидку в валютную и распределяет ее по позициям и единицам товара из состава заказа в системе.
2) В заказ InSales отправляет исключительно в качестве валютных скидок, относящихся к позициям.
3) В системе и в InSales значение в полях общей скидки будут пустыми.
Версия API v4
Так как в v4 нет автоматического распределения скидки заказа по товарам, то валютная скидка на весь заказ так и создастся в InSales, но при обратной синхронизации (InSales -> CRM) все равно распределится по товарам по логике InSales и с учетом уже существующей скидки.
Изменение единиц товара
Разрабатывая эту систему синхронизации скидки, пришлось пожертвовать, в некотором роде, автоматизацией. А именно при изменении количества товара в InSales, если есть валютная скидка для этого товара, сама скидка не пересчитывается и в систему поступает большая скидка для товара чем была ранее.
Например, из системы поступил заказ, который показан на скриншоте выше, с одним товаром «Неактивный товар» количество которого равно 6 шт.
Так как в системе была выставлена скидка 30 руб. на каждую единицу товара, то в InSales скидка создалась в 180 руб. = 30 руб. * 6.
И теперь если мы изменим количество единиц товара до 5 шт., то скидка для товара не пересчитается, а останется так же 180 руб.
Автоматически нет возможности менять скидку после изменения количества товара. В InSales также не предусмотрен такой механизм, так как валютная скидка товара применяется к одной единице товара.
Важно!
В связи с этим при изменении единиц товара в InSales, для которой применена валютная скидка, не забудьте изменить и саму скидку с расчетом на сколько единиц изменился этот товар. То есть в примере выше в InSales нужно изменить валютную скидку до 150 руб.
Процентные скидки на заказ
Механика расчета процентных скидок на весь заказ в системе и в InSales различается.
В системе рассчитывается сначала сумма по товарам с учетом скидок на товары, затем применяются скидки на заказ и добавляется стоимость доставки.
В InSales механика расчета суммы заказа с процентной скидкой на заказ отличается от механики системы. А именно, в InSales рассчитывается сумма по товарам, применяется процентная скидка на заказ, и потом уже применяются скидки на товары и прибавляется стоимость доставки.
Результат показан на скриншоте ниже.
Описанная ситуация более заметна в интеграции InSales и системы ниже 6 версии. Так как в 6 версии системы было добавлено распределение скидки по товарам и при синхронизации данных с InSales отправляются только валютные скидки на товары.
При добавлении процентной скидки на весь товар эту особенность стоит учитывать и по возможности не использовать. А если и использовать, то быть готовым к тому, что данные в InSales и в системе по скидкам будут различны.
Механика добавления валютной скидки на заказ в InSales и в системе не различается.