mirror of
https://github.com/retailcrm/prestashop-module.git
synced 2025-03-03 19:53:19 +03:00
86 lines
5.3 KiB
Markdown
86 lines
5.3 KiB
Markdown
|
# 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 ничего не изменится
|