-
Notifications
You must be signed in to change notification settings - Fork 5
Создание SQL файлов и классов обработчиков
Типовые задачи, выполянемые приложением сводятся к следующему набору:
- Генерация ICML
- Выгрузка справочников в CRM
- Выгрузка заказов и клиентов в CRM
- Получение изменений по заказам из CRM
Для реализации этих механизмов необходимо создать соответствующие sql файлы и php классы в директориях bundle/sql
и bundle/handler
соответственно.
Для того что бы реализовать выгрузку 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
Файлы 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 заказов
Остальные комбинации выборок и обработчиков строятся по аналогии с вышеприведенными, подробности в примерах