mirror of
https://github.com/retailcrm/legacy.git
synced 2024-11-23 22:06:05 +03:00
Created Создание SQL файлов и классов обработчиков (markdown)
parent
f664116671
commit
0c7ac3f24a
39
Создание-SQL-файлов-и-классов-обработчиков.md
Normal file
39
Создание-SQL-файлов-и-классов-обработчиков.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
Типовые задачи, выполянемые приложением сводятся к следующему набору:
|
||||||
|
|
||||||
|
* Генерация ICML
|
||||||
|
* Выгрузка справочников в CRM
|
||||||
|
* Выгрузка заказов и клиентов в CRM
|
||||||
|
* Получение изменений по заказам из CRM
|
||||||
|
|
||||||
|
|
||||||
|
Для реализации этих механизмов необходимо создать соответствующие sql файлы и php классы в директориях `bundle/sql` и `bundle/handler` соответственно.
|
||||||
|
|
||||||
|
###ICML
|
||||||
|
|
||||||
|
Для того что бы реализовать выгрузку ICML необходимо создать файлы:
|
||||||
|
|
||||||
|
* `bundle/sql/categories.sql`
|
||||||
|
* `bundle/sql/offers.sql`
|
||||||
|
* `bundle/handler/CategoriesHandler.php`
|
||||||
|
* `bundle/handler/OffersHandler.php`
|
||||||
|
|
||||||
|
|
||||||
|
Файл `categories.sql` должен содержать sql запрос, выбирающий всю необходимую информацию о категориях каталога, такую как id категории, ее название, id родительской категории
|
||||||
|
Файл `offers.sql` должен содержать sql запрос, выбирающий всю необходимую информацию о товарах/торговых предложениях каталога, такую как id товара/торгового приложения, id категории, название, цену/закупочную цену, ссылку на страницу товара, ссылку на изображение, аттрибуты (вес, размеры, цвет, артикул) и т.д. (необходимые поля соотносятся с форматом [ICML](http://www.retailcrm.ru/docs/%d0%a0%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b8/%d0%a4%d0%be%d1%80%d0%bc%d0%b0%d1%82ICML)
|
||||||
|
|
||||||
|
|
||||||
|
Файлы `CategoriesHandler.php` и `OffersHandler.php` содержат классы имплементирующие `HandlerInterface`, содержащие метод prepare, который обрабатывает результат выборки sql запросов в вышеописанных файлах и возвращает структурированный массив, который в последствие передается в класс `IcmlHelper` для непосредственной генерации icml выгрузки.
|
||||||
|
|
||||||
|
###Выгрузка заказов
|
||||||
|
|
||||||
|
Для того что бы реализовать выгрузку заказов необходимо создать файлы:
|
||||||
|
|
||||||
|
* `bundle/sql/orders.sql` - для выгрузки всех заказов
|
||||||
|
* `bundle/sql/orders_last.sql` - для регулярной выгрузки
|
||||||
|
* `bundle/sql/orders_uid.sql` - для выгрузки единичного заказа или диапазона заказов
|
||||||
|
* `bundle/handler/OrdersHandler`.php
|
||||||
|
|
||||||
|
Выборки различаются лишь условием `where`, в случае `orders_last` в sql передается параметр для осуществления выборки начиная с момента предыдущего запуска, для `orders_uid` передается массив id заказов
|
||||||
|
|
||||||
|
|
||||||
|
Остальные комбинации выборок и обработчиков строятся по аналогии с вышеприведенными, подробности в примерах
|
Loading…
Reference in New Issue
Block a user