Перейти к основному содержимому

Синхронизация корзины

image_1

Включить синхронизацию корзины МС->Сайт​

к сведению

Если не будут включены галочки направления синхронизации корзины (МС -> Сайт или Сайт -> МС), то модуль будет создавать корзину в заказе единожды при импорте \ экспорте.

При отмеченной опции, модуль будет проверять корзину на сайте при каждом сохранении заказа в МС.

к сведению

Синхронизация корзины происходит по внешнему коду товара, поэтому товары должны выгружаться из МойСклад в БУС стандартным обменом, либо внешние коды товаров на обеих сторонах должны совпадать.

Стоимость доставки синхронизируется по позиции МС с внешним кодом ORDER_DELIVERY и проставляется первой отгрузке в БУС.

Включить синхронизацию корзины Сайт->МС​

При отмеченной опции, модуль будет проверять корзина на стороне МС при каждом сохранении заказа в БУС.

к сведению

Каждое действие по изменению корзины на стороне МС происходит по следующей схеме:

  • Модуль проверяет изменения в корзине МС (сравнивает ее с сайтом)
  • Если находит изменения, то перезаписывает всю корзину в МС на актуальную.

В логах изменения заказа МС это выглядит так, как будто модуль удаляет всю корзину, а затем загружает новую.

Разрешить сохранение одинаковых позиций в корзине​

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

Добавлять в корзину БУС не найденные позиции​

При отмеченной опции, модуль будет принудительно добавлять все существующие и не существующие позиции корзины из МС в БУС. Таким образом корзины МС и БУС будут всегда совпадать, даже если отсутствуют некоторые товары \ услуги в БУС.

Учитывать архивные позиции в МС при обмене корзиной​

При отмеченной опции модуль ищет товары для корзины в МС даже среди архивных товаров. По умолчанию ищет без учета архива.

Синхронизировать модификации​

При отмеченной опции модуль ищет знак решетки # во внешнем коде товара на стороне БУС и пытается определить модификацию товара и найти ее на стороне МС.

Почему именно знак решетки?

По умолчанию при импорте модификаций из МойСклад (стандартный обмен) внешний код модификаций на сайте строится на основе внешнего кода родителя и внешнего кода самой модификации.

При этом выглядит он так:

внешний-код-родителя#внешний-код-модификации

Т.е. между внешними кодами родительского товара и модификации стоит решетка. Таким образом модуль понимает, что если встретилась решетка во внешнем коде, то это и есть модификация и ее можно найти отделив часть после решетки.

Что делать, если во внешнем коде модификаций нет решеток?

Для этого пролистайте вниз этот раздел до блока "Считывать внешний код из элемента инфоблока"

Резервировать позиции корзины при изменении в БУС​

При отмеченной опции все позиции корзины при передаче в МС будут зарезервированы в МС (резерв равен количеству) при каждом сохранении корзины БУС с учетом других настроек резерва в модуле. Без опции резерв для уже существующего заказа зависит от заказа МС: если в заказе МС был резерв, позиции резервируются полностью, иначе передаётся резерв позиций из корзины БУС. Резерв при создании нового заказа в МС настраивается отдельно.

Учитывать налог в позициях корзины​

При отмеченной опции модуль будет считывать налог из стандартного поля в позициях БУС и передавать этот налог в стандартное поле позиций МС.

Синхронизировать комплекты как отдельные товары​

При включенной опции будет происходить учет комплектов БУС только по составу комплекта. Другими словами модуль будет "расщеплять" комплект на его составные части и обменивать именно их.

Пересчитывать сумму каждого товара комплекта пропорционально его стоимости в комплекте​

Если отмечена опция выше и отмечена эта опция, то модуль будет распределять скидку или наценку на товары состава комплекта и делать это равномерно между всеми товарами (пропорционально стоимости товара в корзине).

Делать перерасчет доставки при изменении корзины​

При отмеченной опции модуль при импорте изменений из МС будет вызывать стандартный метод перерасчета стоимости доставки у первой (неотгруженной) отгрузки заказа БУС. Стоимость доставки из МойСклад при этом не учитывается.

Пересчитывать корзину при несовпадении стоимости​

При отмеченной опции будет происходить принудительный пересчет корзины, если стоимость позиций корзины не совпадает. Такое может произойти по той причине, что скидка на товар в БУС и МС рассчитывается по разному:

  • В БУС передается точная цена со скидкой (процент рассчитывается автоматически)
  • В МС передается именно процент скидки (точная сумма рассчитывается автоматически)

Поэтому бывают случаи, когда корзины не сходятся по стоимости на 1-2 копейки. При отмеченной опции модуль после обработки изменений заказа из МС сравнивает сумму заказа на сайте и в МС и, если они не совпадают, заново передаёт корзину сайта в МС (с точными ценами).

к сведению

Опция работает только вместе с опцией «Включить синхронизацию корзины Сайт->МС».

Добавлять товары в корзину принудительно​

При импорте корзины из МС товар, которого нет в наличии и у которого запрещена покупка при отсутствии, не может быть добавлен в корзину БУС. При отмеченной опции модуль временно разрешает покупку такого товара при отсутствии, добавляет его в корзину и после сохранения корзины возвращает настройку товара обратно.

Устанавливать валюту​

При отмеченной опции при синхронизации корзин будет учитываться валюта заказа: валюта заказа БУС передаётся в заказ МС (также в оплаты МС), а при импорте — валюта заказа МС в заказ БУС.

Считывать внешний код из элемента инфоблока​

При отмеченной опции, внешний код позиции корзины будет считан не из самой корзина, а из инфоблока, где этот товар находится. Опция может быть полезна в двух случаях:

  • Если по какой-то причине внешние коды в корзине и в инфоблоке не совпадают. Обычно это происходит из-за кастомизации процесса добавления в корзину на сайте.
  • Если у модификаций отсутствует решетка во внешнем коде на стороне БУС, тогда модуль считает "чистый" внешний код из элемента инфоблока и найдет по нему модификацию в МС.

Не использовать провайдер класса при работе с корзиной​

Опция необходима для отладки неполадок при обмене корзины. Проставляется в редких случаях по просьбе поддержки модуля.

Провайдер класса корзины​

Какой провайдер каталога указывать у позиций, которые модуль добавляет в корзину БУС при импорте из МС: \Bitrix\Catalog\Product\CatalogProvider (современный) или CCatalogProductProvider (устаревший). Если опция ни разу не сохранялась, используется современный провайдер. Менять опцию нужно только по просьбе поддержки модуля.

к сведению

Провайдер не указывается у позиций, которых нет в каталоге сайта (см. «Добавлять в корзину БУС не найденные позиции»), у товаров, добавленных принудительно, а также при включённой опции «Не использовать провайдер класса при работе с корзиной».