From 0c7ac3f24af99291dd9e9596dd79ac87c6502f45 Mon Sep 17 00:00:00 2001 From: Alex Lushpai Date: Fri, 30 Oct 2015 11:53:14 +0300 Subject: [PATCH] =?UTF-8?q?Created=20=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20SQL=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BE=D0=B2=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87=D0=B8=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Создание-SQL-файлов-и-классов-обработчиков.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Создание-SQL-файлов-и-классов-обработчиков.md diff --git a/Создание-SQL-файлов-и-классов-обработчиков.md b/Создание-SQL-файлов-и-классов-обработчиков.md new file mode 100644 index 0000000..3181207 --- /dev/null +++ b/Создание-SQL-файлов-и-классов-обработчиков.md @@ -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 заказов + + +Остальные комбинации выборок и обработчиков строятся по аналогии с вышеприведенными, подробности в примерах \ No newline at end of file