5.3 KiB
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 ничего не изменится