Использование таблиц E-Trade для работы с заказным (самописным) движком

Navigation:  Дополнительные настройки программы > Модуль интеграции E-Trade HTTP Tunnel > Настройка модуля интеграции E-Trade HTTP Tunnel для работы с заказным (самописным) движком >

Использование таблиц E-Trade для работы с заказным (самописным) движком

Previous pageReturn to chapter overviewNext page

Для обновления каталога товаров на сайте, модуль интеграции E-Trade HTTP Tunnel создаёт временные таблицы в БД MySQL, с данными учётной системы E-Trade PriceList Importer (каталог товаров).

 

Создаются следующие таблицы:

Таблица etrade_cats - справочник категорий товаров.

Таблица etrade_products - список товаров.

Таблица etrade_products_kits - список товаров-атрибутов (структура таблицы аналогична таблице etrade_products).

Таблица etrade_products_cats - справочник ссылок товаров на категории (если 1 товар необходимо отображать в нескольких категориях).

Таблица etrade_products_addon_fields - список дополнительных полей товаров (атрибутов), включая список дополнительных цен на товары.

Таблица etrade_mans - справочник производителей товаров.

Таблица etrade_currency - справочник валют и курсов.

Таблица etrade_contractor - справочник контрагентов.

 

На основании таблиц E-Trade и информации хранящейся в них можно обновлять сайт с использованием запросов SQL.

 

Структура таблиц

 

etrade_cats


 cat_id int(11)

Код категории (только числовое значение)

 parent_id int(11)

Код родительской категории (только числовое значение)

 cat_name varchar(240)

Наименование категории

 cat_desc text

Описание категории

 sort_order int(11)

Порядок (сортировка)

 meta_title text

Тег meta_title для категории

 meta_desc text

Тег meta_description для категории

 meta_keywords text

Тег meta_keywords для категории

 cat_image varchar(240)

Имя файла картинки для категории

 punkt varchar(120)

Полный путь категории в числовом виде (например 1/2/3)

 nLev int(11)

Уровень категории, в пределах дерева (иерархии)

 nLft int(11)

Левый ключ (для использования метода хранения деревьев типа "Вложенные множества" - Nested Sets)

 nRgt int(11)

Правый ключ (для использования метода хранения деревьев типа "Вложенные множества" - Nested Sets)

 CatNameFull varchar(240)

Полный путь категории в символьном виде (например Категория / Подкатегория 1 / Подкатегория 2)

 cat_seo_url varchar(240)

SEO ссылка на товар (ЧПУ)

 cat_active tinyint(1)

Активность категории. Возможные значения: 1 или 0

 cat_guid varchar(80)

Код категории UUID (только символьное значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор.

 cat_parent_guid varchar(80)

Код родительской категории UUID (только символьное значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор.

 block_id varchar(80)

Код информационного блока (каталога). Используется для интеграции с CMS 1C-Битрикс, если главные категории товаров располагаются в отдельных информационных блоках (каталогах). Так же можно использовать данный код информационного блока для создания мульти сайтового магазина, например на одном домене расположить одни категории, на другом поддомене другие категории. Для CMS Magento данное поле можно использовать для указания кодов наборов атрибутов товаров по умолчанию.

 cat_text varchar(240)

Префикс для наименования товара, например для категории "Вентиляторы" можно прописать в это поле слово "Вентилятор", затем его использовать для формирования наименования товара на сайте.

 cat_h1 varchar(240)

Тег H1

 row_exist tinyint(1)

Признак существования категории в основной таблице сайта хранящей справочник категорий. Возможные значения: 1 или 0.

 

etrade_products


 tov_id int(11)

Код товара (только числовое значение)

 tov_cat_id int(11)

Код категории, в которой находится товар (только числовое значение)

 tov_art varchar(120)

Артикул производителя товара

 tov_name text

Наименование товара. Из программы ПЛИ экспортируются значения из поля "Наименование №2".

 tov_price decimal(15,8)

Цена товара

 supply_id int(11)

Код поставщика

 manufac_id int(11)

Код производителя

 head_title text

Тег meta_title для товара

 head_desc text

Тег meta_description для товара

 head_keywords text

Тег meta_keywords для товара

 on_main_page tinyint(4)  

Признак одного из статусов товара (Спецена, Распродажа, Новинка) = 0 или 1

 desc_small text  

Описание товара (краткое)

 tov_quantity int(11)    

Количество

 content_tov_id int(11)

Код описания товара в базе данных СС

 manufac_name varchar(120)

Наименование производителя товара

 model varchar(120)

Модель товара

 desc_full text

Описание товара №2 (полное)

 img1sm varchar(240)

Имя файла картинки товара №1

 img2big varchar(240)

Имя файла картинки товара №2

 sort_order int(11)

Порядок (сортировка)

 nalich_c varchar(60)

"Статус наличия", символьное отображение наличия товара из учётной системы

 addon_prices_list varchar(240)

Дополнительная цена на товар из учётной системы. Если дополнительных цен больше одной, тогда цены перечислены через точку с запятой (;), согласно порядка установленого в справочнике дополнительных цен

 yml tinyint(1)  

Признак о том, что товар необходимо экспортировать в файл XML для рекламных площадок (яндекс маркет и т.д.). Возможные значения: 1 или 0

 tov_seo_url varchar(240)

SEO ссылка на товар (ЧПУ)

 tov_active tinyint(1)  

Активность товара. Возможные значения: 1 или 0

 tov_guid varchar(80)  

Код товара UUID (только символьные значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор.

 weight varchar(16)  

Вес товара

 warranty varchar(60)  

Гарантия на товар

 tov_art2 varchar(60)  

Артикул товара (внутренний)

 block_id varchar(80)  

Код информационного блока (каталога). Код указывает в каком информационном блоке (каталоге) находится товар. Используется для интеграции с CMS 1C-Битрикс, если главные категории товаров располагаются в отдельных информационных блоках (каталогах). Так же можно использовать данный код информационного блока (каталога) для создания мульти сайтового магазина, например на одном домене расположить одни категории, на другом поддомене другие категории. Для CMS Magento данное поле можно использовать для указания кодов наборов атрибутов товаров по умолчанию.

 tov_cat_guid varchar(80)  

Код категории товара UUID (только символьные значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор.

 best_sale tinyint(1)  

Флаг товара "Л" - лучшая покупка

 tov_dissale tinyint(1)  

Флаг товара "Р" - распродажа

 spec_price tinyint(1)  

Флаг товара "СЦ" - специальная цена

 tov_new tinyint(1)  

Флаг товара "Н" - новинка

 tov_art_supply varchar(30)

Артикул поставщика товара

 tov_size varchar(60)

Габарит (Размер)

 tov_name1 text

Наименование товара. Из программы ПЛИ экспортируются значения из поля "Наименование №1"

 tov_remain_id tinyint(1)

Ид статуса наличия. Возможные значения: 1 - Есть, 2 - Нет, 3 - Под заказ

 tov_delivery_cost decimal(15,2)

Стоимость доставки товара

 tov_color varchar(60)

Цвет товара

 tov_unit_measure varchar(16)

Единица измерения

 price_update varchar(12)

Дата обновления цены товара

 price_id int(11)

Код прайс-листа

 price_cost decimal(15,2)

Цена (себестоимость)

 podtv_skl tinyint(1)

Флаг товара "ПС" - подтверждённый склад

 recom_price decimal(15,2)

Рекомендованная цена

 tov_volume varchar(16)

Объём

 old_price decimal(15,8)

Старая цена на товар

 tov_id_kit int(11)

Код товара родителя к которому привязаны товары-атрибуты из таблицы etrade_products_kits (только числовое значение)

 tov_guid_kit varchar(80)

UUID код товара родителя к которому привязаны товары-атрибуты из таблицы etrade_products_kits (только числовое значение)

 tov_h1 varchar(240)

Тег H1

 row_exist tinyint(1)

Признак существования товара в основной таблице сайта хранящей товары. Возможные значения: 1 или 0

 

etrade_products_addon_fields


 tov_id int(11)

Код товара (только числовое значение)

 tov_guid varchar(80)

Код товара UUID (только символьные значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор

 field_name varchar(30)

Символьный идентификатор поля

 field_header varchar(60)

Название поля

 field_value text

Значение поля для товара

 field_desc varchar(240)

Примечание поля (описание)

 tov_cat_id int(11)

Код категории товара (только числовое значение)

 tov_cat_guid varchar(80)

Код категории товара UUID (только символьные значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор

 field_is_option tinyint(1)

Поле используется для создания на сайте атрибутов товаров (опции)

 field_sort_order int(11)

Порядок (сортировка)

 field_id int(11)

Числовой идентификатор поля

 field_is_price tinyint(1)

Тип поля: 0 - поле из справочника доп. полей (символьное), 1 - поле из справочника доп. цен. (числовое)

 

etrade_products_cats


 tov_id int(11)

Код товара (только числовое значение)

 tov_cat_id int(11)

Код категории, в которой находится товар (только числовое значение)

 tov_guid varchar(80)

Код товара UUID (только символьные значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор.

 tov_cat_guid varchar(80)

Код категории товара UUID (только символьные значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор.

 

etrade_mans


 man_id int(11)  

Код производителя товара (только числовое значение)

 man_name varchar(60)

Наименование производителя

 man_image varchar(240)

Имя файла картинки производителя

 meta_title varchar(240)  

Тег meta_title для производителя

 meta_desc varchar(240)

Тег meta_description для производителя

 meta_keywords varchar(240)

Тег meta_keywords для производителя

 man_url varchar(80)  

Ссылка на сайт производителя

 man_seo_url varchar(240)

SEO ссылка на производителя (ЧПУ)

 man_guid varchar(80)

Код производителя товара UUID (только символьные значение). UUID - Universally Unique Identifier, уникальный 128-битный идентификатор.

 row_exist tinyint(1)  

Признак существования производителя товара в основной таблице сайта хранящей справочник производителей. Возможные значения: 1 или 0.



etrade_currency


 currency_id int(11)  

Код валюты товара (только числовое значение)

 curr_sname varchar(20)

Международный символьный код валюты (например, USD, UAH и т.д.)

 curr_iso int(11)

Международный числово ISO код валюты

 curr_name varchar(80)  

Название валюты

 curr_kurs decimal(15,8)

Курс валюты

 curr_date varchar(12)

Дата обновления курса валюты

 curr_default tinyint(1)  

Признак валюты по умолчанию (основная валюта)

 row_exist tinyint(1)  

Признак существования валюты в основной таблице сайта хранящей справочник валют и курсов. Возможные значения: 1 или 0.

 

etrade_contractor


 contractor_id int(11)  

Код контрагента (только числовое значение)

 contractor_type int(11)  

Тип контрагента (поставщик - 1, конкурент - 2) (только числовое значение)

 contractor_name int(11)

Наименование контрагента

 contractor_url varchar(120)  

Адрес сайта

 contractor_email varchar(120)

Электронная почта

 contractor_county varchar(120)

Страна

 contractor_zone varchar(120)

Область

 contractor_city varchar(120)

Город

 contractor_addresslocation varchar(240)

Адрес

 contractor_addresslaw varchar(240)

Адрес юридический

 contractor_phones varchar(120)

Телефон

 contractor_faxes varchar(120)

Факс

 contractor_taxcode varchar(120)

Код налогоплательщика

 contractor_taxnumber varchar(120)

№ свид. налогоплательщика

 contractor_bankaccountno varchar(120)

Расчетный счет

 contractor_bankokpo varchar(120)

Код OKPO

 contractor_bankmfo varchar(120)

МФО

 contractor_bankname varchar(120)

Наименование банка

 contractor_contactperson varchar(120)

Контактное лицо

 contractor_transport_price decimal(15,8)

Стоимость доставки

 contractor_date_add varchar(120)

Дата добавления

 contractor_comment varchar(240)

Примечание

 row_exist tinyint(1)  

Признак существования контрагента в основной таблице сайта. Возможные значения: 1 или 0.

 

Типы полей таблиц
int - целые числа

tinyint - целые числа

 decimal - числа с запятой

varchar - строка заданной длины

text - строка длиной до 65535 символов
 

 

 

Пример получения каталога товаров с сайта, на базе движка osCommerce

Для разделения SQL запросов используются три символа точка с запятой (;;;).

Внимание! Для получения каталога товаров с сайта, порядок следования полей в SQL запросах должен соответствовать формату E-Trade. Описание формата "Внеш. модуль E-Trade (CSV)".

 

Получаем список производителей товаров (справочник производителей)

SELECT 'm' as op_type, manufacturers.manufacturers_id, manufacturers.manufacturers_name, manufacturers.manufacturers_image, '' as manufacturers_meta_title, '' as manufacturers_meta_description, '' as manufacturers_meta_keywords, manufacturers_info.manufacturers_url, '' as man_seo_url FROM manufacturers INNER JOIN manufacturers_info ON manufacturers.manufacturers_id=manufacturers_info.manufacturers_id WHERE manufacturers_info.languages_id=1 ORDER BY manufacturers.manufacturers_id;;;

 

Получаем список категорий товаров (справочник категорий)

SELECT 'g' as op_type, categories.categories_id, categories.parent_id, categories_description.categories_name, '' as categories_description, categories.sort_order, '' as categories_meta_title, '' as categories_meta_description, '' as categories_meta_keywords, categories.categories_image, '' as punkt, '0' as nlev, '0' as nlft, '0' as nrgt, '' as CatNameFull, '' as categories_url FROM categories INNER JOIN categories_description ON categories.categories_id=categories_description.categories_id WHERE categories_description.language_id=1 ORDER BY categories.categories_id

 

Получаем список товаров

SELECT 'p' as op_type, products.products_id, products_to_categories.categories_id, products.products_model, products_description.products_name, products.products_price, 0 as supply_id, products.manufacturers_id, '' as products_meta_title, '' as products_meta_description, '' as products_meta_keywords, '0' as product_flag, products_description.products_description, products.products_quantity, 0 as cc_link, manufacturers.manufacturers_name, '' as model, '' as desc2, products.products_image, '' as pic2, '1' as order_set, '' as stock_status, '' as addon_price, '1' as products_to_xml, products_description.products_url, products.products_status FROM products_description INNER JOIN products_to_categories ON products_description.products_id=products_to_categories.products_id INNER JOIN products ON products_description.products_id=products.products_id LEFT JOIN manufacturers ON products.manufacturers_id=manufacturers.manufacturers_id WHERE products_description.language_id=1 ORDER BY products.products_id

 

SQL запросы для получения каталога товаров с сайта необходимо вставить во вкладку "Получение каталога товаров с сайта",
окна "Ручная настройка работы модуля E-Trade HTTP Tunnel - SQL режим"

setup_etrade_tunnel_manual3

 

 

Пример обновления сайта на базе движка osCommerce

Для разделения SQL запросов используются три символа точка с запятой (;;;).

 

Отмечаем в таблицах E-Trade признак существования записей на основании основных таблиц базы данных сайта.

UPDATE etrade_cats SET row_exist=1 WHERE cat_id IN (SELECT categories_id FROM categories);;;

UPDATE etrade_products SET row_exist=1 WHERE tov_id IN (SELECT products_id FROM products);;;

UPDATE etrade_products_cats SET row_exist=1 WHERE tov_id IN (SELECT products_id FROM products);;;

UPDATE etrade_mans SET row_exist=1 WHERE man_id IN (SELECT manufacturers_id FROM manufacturers);;;

 
Вставляем новые категории из таблицы E-Trade, которых нет в основной таблице

INSERT INTO categories (date_added, categories_image, categories_id, parent_id) SELECT now() as date_added, cat_image, cat_id, parent_id, FROM etrade_cats WHERE etrade_cats.row_exist=0;;;

INSERT INTO categories_description (categories_id, language_id, categories_name) SELECT cat_id, '1' as language_id, cat_name FROM etrade_cats WHERE etrade_cats.row_exist=0;;;

 
Обновляем существующие категории из таблицы E-Trade, которых есть в основной таблице

UPDATE categories, etrade_cats SET categories.last_modified = now(), categories.parent_id = etrade_cats.parent_id WHERE etrade_cats.row_exist=1 AND etrade_cats.cat_id=categories.categories_id;;;

UPDATE categories_description, etrade_cats SET categories_description.categories_name = etrade_cats.cat_name WHERE etrade_cats.row_exist=1 AND etrade_cats.cat_id=categories_description.categories_id;;;

 

Вставляем новые товары из таблицы E-Trade, которых нет в основной таблице

INSERT INTO products (products_date_added, products_status, products_model, manufacturers_id, products_id, products_quantity, products_price, products_image) SELECT now() as products_date_added, tov_active, tov_art, manufac_id, tov_id, tov_quantity, tov_price, img1sm FROM etrade_products WHERE etrade_products.row_exist=0;;;

INSERT INTO products_description (products_id, language_id, products_name, products_description) SELECT tov_id, '1' as language_id, tov_name, desc_small FROM etrade_products WHERE etrade_products.row_exist=0;;;

INSERT INTO products_to_categories (categories_id, products_id) SELECT tov_cat_id, tov_id FROM etrade_products_cats WHERE etrade_products_cats.row_exist=0;;;

 

Обновляем существующие товары из таблицы E-Trade, которых есть в основной таблице

UPDATE products, etrade_products SET products.products_last_modified = now(), products.products_status = etrade_products.tov_active, products.manufacturers_id = etrade_products.manufac_id, products.products_quantity = etrade_products.tov_quantity, products.products_price = etrade_products.tov_price WHERE etrade_products.row_exist=1 AND etrade_products.tov_id=products.products_id;;;

UPDATE products_description, etrade_products SET products_description.products_name = etrade_products.tov_name WHERE etrade_products.row_exist=1 AND etrade_products.tov_id=products_description.products_id;;;

UPDATE products_to_categories, etrade_products_cats SET products_to_categories.categories_id = etrade_products_cats.tov_cat_id WHERE etrade_products_cats.row_exist=1 AND etrade_products_cats.tov_id=products_to_categories.products_id;;;

 

Вставляем новых производителей из таблицы E-Trade, которых нет в основной таблице

INSERT INTO manufacturers (date_added, manufacturers_id, manufacturers_name) SELECT now() as date_added, man_id, man_name FROM etrade_mans WHERE etrade_mans.row_exist=0;;;

INSERT INTO manufacturers_info (languages_id, manufacturers_id) SELECT '1' as languages_id, man_id FROM etrade_mans WHERE etrade_mans.row_exist=0;;;

 

Обновляем существующих производителей из таблицы E-Trade, которые есть в основной таблице

UPDATE manufacturers, etrade_mans SET manufacturers.last_modified = now(), manufacturers.manufacturers_name = etrade_mans.man_name WHERE etrade_mans.row_exist=1 AND etrade_mans.man_id=manufacturers.manufacturers_id;;;

 

SQL запросы для обновления сайта необходимо вставить во вкладку "Загрузка каталога товаров на сайт",
окна "Ручная настройка работы модуля E-Trade HTTP Tunnel - SQL режим"

setup_etrade_tunnel_manual2

 

 

Пример удаление записей в таблицах сайта, на базе движка osCommerce

Для разделения SQL запросов используются три символа точка с запятой (;;;).

Для указания ID используется макроподстановка {ItemID}, при отправке SQL запроса программа автоматически заменит её на ID удаляемого объекта.

 

Удаление категорий товаров

DELETE FROM products WHERE products_id IN (SELECT products_id FROM products_to_categories WHERE categories_id IN ({ItemID}));;;

DELETE FROM products_description WHERE products_id IN (SELECT products_id FROM products_to_categories WHERE categories_id IN ({ItemID}));;;

DELETE FROM products_attributes WHERE products_id IN (SELECT products_id FROM products_to_categories WHERE categories_id IN ({ItemID}));;;

DELETE FROM products_notifications WHERE products_id IN (SELECT products_id FROM products_to_categories WHERE categories_id IN ({ItemID}));;;

DELETE FROM reviews WHERE products_id IN (SELECT products_id FROM products_to_categories WHERE categories_id IN ({ItemID}));;;

DELETE FROM categories WHERE categories_id IN ({ItemID});;;

DELETE FROM categories_description WHERE categories_id IN ({ItemID});;;

DELETE FROM products_to_categories WHERE categories_id IN ({ItemID});;;

 

Удаление товаров

DELETE FROM products WHERE products_id IN ({ItemID});;;

DELETE FROM products_description WHERE products_id IN ({ItemID});;;

DELETE FROM products_to_categories WHERE products_id IN ({ItemID});;;

DELETE FROM products_attributes WHERE products_id IN ({ItemID});;;

DELETE FROM products_notifications WHERE products_id IN ({ItemID});;;

DELETE FROM reviews WHERE products_id IN ({ItemID});;;

DELETE FROM specials WHERE products_id IN ({ItemID});;;

 

Удаление производителей товаров

DELETE FROM manufacturers WHERE manufacturers_id IN ({ItemID});;;

DELETE FROM manufacturers_info WHERE manufacturers_id IN ({ItemID});;;

UPDATE products SET manufacturers_id=0 WHERE manufacturers_id IN ({ItemID});;;

 

SQL запросы для удаления записей в таблицах сайта необходимо вставить во вкладку "Удаление позиций",
окна "Ручная настройка работы модуля E-Trade HTTP Tunnel - SQL режим"

setup_etrade_tunnel_manual4