Created Создание SQL файлов и классов обработчиков (markdown)

Alex Lushpai 2015-10-30 11:53:14 +03:00
parent f664116671
commit 0c7ac3f24a

@ -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 заказов
Остальные комбинации выборок и обработчиков строятся по аналогии с вышеприведенными, подробности в примерах