Skip to main content

Выгрузка заказов с сайта в 1С

10 июля, 2020 15:29
Просмотров 120
Section backgroundSection background

Как правило, кроме загрузки и обновления каталога на сайте, требуется еще и выгружать заказы с сайта в 1С.

Настройка на со стороны сайта, производится в блоке «Обмен заказами с 1С», вкладка «Выгрузка заказов».

Для того, чтобы базово включить выгрузку, то есть чтобы сайт начал отдавать заказы на запрос из 1С, достаточно отметить чекбокс «Выгружать заказы».

Чуть ниже есть информация о том, какие заказы будут выгружены при следующем запросе из 1С, а также есть возможность посмотреть, содержимое, которое будет сформировано для 1С.

Ваша конфигурация может не принимать данные в utf-8, поэтому может потребоваться изменить кодировку, через пункт «Кодировка ответа».

При необходимости, вы можете ограничить нижний порог даты/времени создания заказов, чтобы не выгружать старые, даже если они изменятся. Или же, наоборот, сместить назад, дату/время последнего запроса, чтобы включить в состав выгрузки старые заказы.

Также, может потребоваться исключить из выгрузки заказы в каких-то статусах.

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

В набор данных по реквизитам заказа, добавляются данные по способу оплаты, способу доставки, адресу доставки, текущему статусу, адресу плательщика и т.д.

Если заказ на сайте находится в статусе «Отменен», то реквизит «Отменен» выгружается со значением «true», а также реквизит «ПометкаУдаления» с аналогичным значением.

Если вам требуется модифицировать набор реквизитов заказа, то вы можете воспользоваться фильтром. Передаются 2 параметра, массив текущих реквизитов, где ключ это имя реквизита, а значение — значение реквизита, а также объект заказа. Ниже пример использования.


add_filter('itglx_wc1c_order_xml_requisites_data_array', function ($requisitesArray, $order) {
    $requisitesArray['Какое-то название реквизита'] = 'Значение этого реквизита';

    // id заказа получается следующим образом - $order->get_id()

    return $requisitesArray;
}, 10, 2);
Поделиться: