0 Создание SQL файлов и классов обработчиков
Alex Lushpai edited this page 2018-05-15 09:31:08 +03:00
This file contains ambiguous Unicode characters

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 заказов

Остальные комбинации выборок и обработчиков строятся по аналогии с вышеприведенными, подробности в примерах