Table of Contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Типовые задачи, выполянемые приложением сводятся к следующему набору:
- Генерация 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
Файлы 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 заказов
Остальные комбинации выборок и обработчиков строятся по аналогии с вышеприведенными, подробности в примерах