5.3 KiB
Raw Permalink Blame History

Orders

Create

Items

Delivery

Addresses

Для адреса оплаты id_address_invoice, если заказ сделан обычным клиентом, используются данные клиента order[customer]

CRM field / value CMS field
default alias
order[customer][firstName] firstname
order[customer][lastName] lastname
order[customer][phones][0][number] phone
order[customer][address][text] address1, address2
order[customer][address][countryIso] id_country
order[customer][address][city] city
order[customer][address][index] postcode
order[customer][address][region] id_state

Если заказ сделан корпоративным клиентом и опция "Корпоративные клиенты" включена, то используются данные контакта order[contact], а также указываются дополнительные поля — ИНН и название компании.

CRM field / value CMS field
-- alias
order[contact][firstName] firstname
order[contact][lastName] lastname
order[contact][phones][0][number] phone
order[company][address][text] address1, address2
order[company][address][countryIso] id_country
order[company][address][city] city
order[company][address][index] postcode
order[company][address][region] id_state
order[company][contragent][INN] vat_number
order[company][name] company

Для адреса доставки (id_address_delivery) используются данные заказа.

CRM field / value CMS field
default alias
order[firstName] firstname
order[lastName] lastname
order[phone] phone
order[delivery][address][text] address1, address2
order[delivery][address][countryIso] id_country
order[delivery][address][city] city
order[delivery][address][index] postcode
order[delivery][address][region] id_state

После сборки объекта адреса выполняется проверка на валидность (RetailcrmTools::validateEntity()). Если адрес валиден, то выполняется проверка наличия такого же адреса в CMS (RetailcrmTools::assignAddressIdsByFields()) и если адрес найден, то берется его id (позволяет не создавать дубль адреса). В итоге, если id не был найден, то создается новый адрес, иначе — сохраняется и используется существующий

Payments

Update

Обновление данных адреса в CMS происходит, если в заказе было изменено одно из следующих полей:

  • order[firstName]
  • order[lastName]
  • order[delivery][address]
  • order[phone]

Если были изменены поля адреса, на основе которых формируется address1 и address2 поля заказа, то делается запрос в CRM для получения полной информации по заказу (проверка осуществляется в функции RetailcrmHistoryHelper::isAddressLineChanged()). При этом данные, полученные по истории перезаписывают данные, полученные по конкретному заказу — это сделано для сохранения возможности кастомизировать поля в фильтре.

Далее в зависимости от версии CMS возможны 2 варианта:

  • На версии < 1.7.7 - происходит создание нового объекта адреса, после чего он присваивается заказу
  • На версии >= 1.7.7 - обновляются данные текущего адреса заказа

Delete

При удалении заказа из Crm в CMS ничего не изменится