Обновление на сайте интернет-магазина цен, наличия, фото через модуль E-Trade Tunnel для самописной CMS (SQL запросы)

Для создания шаблона выгрузки на сайт через модуль интеграции E-Trade Tunnel откройте окно "Выгрузка каталога товаров" кликнув на рабочем столе по ярлыку

или выбрав пункт меню

далее нажмите "+" и выберите формат "E-Trade Tunnel"


После создания шаблона выгрузки вы можете перейти в режим редактирования, для этого нажмите на кнопку "Карандаш".

Если вы ранее не устанавливали модуль E-Trade Tunnel на вашем хостинге, тогда это необходимо сделать по этой инструкции (до пункта загрузка данных).

Выбрать "Ручной режим (SQL)", настроить доступ к сайту и к базе данных сайта

Далее открыть раздел обновления сайта на основании SQL запросов

 

Пример обновления сайта на базе CMS OpenCart

Единоразово добавьте поля uuid для таблиц БД сайта для хранения идентификатора из Jumper

ALTER TABLE oc_category ADD uuid VARCHAR(36) NOT NULL, ADD INDEX (uuid);;;
ALTER TABLE oc_product ADD uuid VARCHAR(36) NOT NULL, ADD INDEX (uuid);;;
ALTER TABLE oc_manufacturer ADD uuid VARCHAR(36) NOT NULL, ADD INDEX (uuid);;;
ALTER TABLE oc_attribute ADD uuid VARCHAR(36) NOT NULL, ADD INDEX (uuid);;;
ALTER TABLE oc_attribute_group ADD uuid VARCHAR(36) NOT NULL, ADD INDEX (uuid);;;

 

Обновите идентификатор в поле uuid на основании таблиц БД сайта

UPDATE oc_category SET uuid=category_id WHERE uuid='';;;
UPDATE oc_product SET uuid=product_id WHERE uuid='';;;
UPDATE oc_manufacturer SET uuid=manufacturer_id WHERE uuid='';;;        
UPDATE oc_attribute SET uuid=attribute_id WHERE uuid='';;;


Отмечаем записи во временных таблицах E-Trade, которые есть в БД сайта

Категории

UPDATE etrade_category_temp etrade_temp, oc_category c SET etrade_temp.category_id = c.category_id WHERE etrade_temp.uuid = c.uuid;;;
UPDATE etrade_category_temp etrade_temp, oc_category c SET etrade_temp.parent_id = c.category_id WHERE etrade_temp.uuid_parent = c.uuid;;;
UPDATE etrade_category_temp SET row_exist = 1 WHERE category_id>0;;;

 

Товары

UPDATE etrade_product_temp etrade_temp, oc_product p SET etrade_temp.product_id = p.product_id WHERE etrade_temp.uuid = p.uuid;;;
UPDATE etrade_product_to_category_temp etrade_temp, oc_product p SET etrade_temp.product_id = p.product_id WHERE etrade_temp.product_uuid = p.uuid;;;
UPDATE etrade_product_to_category_temp etrade_temp, oc_category c SET etrade_temp.category_id = c.category_id WHERE etrade_temp.category_uuid = c.uuid;;;
UPDATE etrade_product_temp etrade_temp, oc_category c SET etrade_temp.category_id = c.category_id WHERE etrade_temp.category_uuid = c.uuid;;;
UPDATE etrade_product_temp etrade_temp, oc_manufacturer m SET etrade_temp.manufacturer_id = m.manufacturer_id WHERE etrade_temp.manufacturer_uuid = m.uuid;;;
UPDATE etrade_product_temp SET row_exist = 1 WHERE product_id>0;;;

 

Производители

UPDATE etrade_manufacturer_temp etrade_temp, oc_manufacturer m SET etrade_temp.manufacturer_id = m.manufacturer_id WHERE etrade_temp.uuid = m.uuid;;;
UPDATE etrade_manufacturer_temp SET row_exist = 1 WHERE manufacturer_id>0;;;

 

Атрибуты и значения

UPDATE etrade_attribute_block_temp etrade_temp, oc_attribute_group ag SET etrade_temp.attribute_block_id = ag.attribute_group_id WHERE etrade_temp.uuid = ag.uuid;;;
UPDATE etrade_attribute_temp etrade_temp, oc_attribute a SET etrade_temp.attribute_id = a.attribute_id WHERE etrade_temp.uuid = a.uuid;;;
UPDATE etrade_attribute_temp etrade_temp, oc_attribute_group ag SET etrade_temp.attribute_block_id = ag.attribute_group_id WHERE etrade_temp.block_uuid = ag.uuid;;;
UPDATE etrade_product_attribute_temp etrade_temp, oc_attribute a SET etrade_temp.attribute_id = a.attribute_id WHERE etrade_temp.attribute_uuid = a.uuid;;;
UPDATE etrade_product_attribute_temp etrade_temp, oc_product p SET etrade_temp.product_id = p.product_id WHERE etrade_temp.product_uuid = p.uuid;;;
UPDATE etrade_attribute_block_temp SET row_exist = 1 WHERE attribute_block_id>0;;;
UPDATE etrade_attribute_temp SET row_exist = 1 WHERE attribute_id>0;;;


 

SQL запросы для вставки и обновления записей в БД сайта

UPDATE oc_category, etrade_category_temp etrade_temp
SET oc_category.date_modified = NOW(), oc_category.sort_order = etrade_temp.sort_order, oc_category.status = etrade_temp.status
WHERE etrade_temp.row_exist = 1 AND etrade_temp.category_id = oc_category.category_id;;;

UPDATE oc_category_description, etrade_category_temp etrade_temp
SET oc_category_description.name = etrade_temp.name
WHERE etrade_temp.row_exist = 1 AND etrade_temp.category_id = oc_category_description.category_id AND oc_category_description.language_id = 1;;;

UPDATE oc_manufacturer, etrade_manufacturer_temp etrade_temp
SET oc_manufacturer.name = etrade_temp.name
WHERE etrade_temp.row_exist = 1 AND etrade_temp.manufacturer_id = oc_manufacturer.manufacturer_id;;;

UPDATE oc_product, etrade_product_temp etrade_temp
SET oc_product.date_modified = NOW(), oc_product.manufacturer_id = etrade_temp.manufacturer_id, oc_product.model = etrade_temp.model, oc_product.sku = etrade_temp.mpn, oc_product.price = etrade_temp.price, oc_product.quantity = etrade_temp.quantity, oc_product.status = etrade_temp.status, oc_product.weight = etrade_temp.weight
WHERE etrade_temp.row_exist = 1 AND etrade_temp.product_id = oc_product.product_id AND etrade_temp.type_id=1;;;

UPDATE oc_product_description, etrade_product_temp etrade_temp
SET oc_product_description.name = etrade_temp.name
WHERE etrade_temp.row_exist = 1 AND etrade_temp.product_id = oc_product_description.product_id AND etrade_temp.type_id = 1 AND oc_product_description.language_id = 1;;;

INSERT INTO oc_category (date_added, sort_order, status, uuid)
SELECT NOW() as `date_added`, sort_order, status, uuid
FROM etrade_category_temp
WHERE row_exist = 0
GROUP BY uuid;;;

UPDATE etrade_category_temp etrade_temp, oc_category site_table SET etrade_temp.category_id = site_table.category_id WHERE etrade_temp.row_exist = 0 AND etrade_temp.uuid = site_table.uuid;;;
UPDATE etrade_category_temp, (SELECT category_id, uuid FROM etrade_category_temp) as t2 SET etrade_category_temp.parent_id = t2.category_id WHERE t2.uuid = etrade_category_temp.uuid_parent;;;
UPDATE etrade_category_temp, oc_category site_table SET site_table.parent_id = etrade_category_temp.parent_id WHERE site_table.uuid = etrade_category_temp.uuid;;;
UPDATE etrade_product_temp etrade_temp, oc_category site_table SET etrade_temp.category_id = site_table.category_id WHERE etrade_temp.category_uuid = site_table.uuid;;;
UPDATE etrade_product_to_category_temp etrade_temp, oc_category site_table SET etrade_temp.category_id = site_table.category_id WHERE etrade_temp.category_uuid = site_table.uuid;;;

INSERT INTO oc_category_description (category_id, description, language_id, meta_description, meta_keyword, name)
SELECT category_id, description_short, 1 as language_id, meta_description, meta_keyword, name
FROM etrade_category_temp
WHERE row_exist = 0;;;

INSERT INTO oc_manufacturer (name, uuid)
SELECT name, uuid
FROM etrade_manufacturer_temp
WHERE row_exist = 0
GROUP BY uuid;;;

UPDATE etrade_manufacturer_temp etrade_temp, oc_manufacturer site_table SET etrade_temp.manufacturer_id = site_table.manufacturer_id WHERE etrade_temp.row_exist = 0 AND etrade_temp.uuid = site_table.uuid;;;
UPDATE etrade_product_temp etrade_temp, oc_manufacturer site_table SET etrade_temp.manufacturer_id = site_table.manufacturer_id WHERE etrade_temp.manufacturer_uuid = site_table.uuid;;;

INSERT INTO oc_product (date_added, date_available, manufacturer_id, model, sku, price, quantity, status, uuid, weight)
SELECT NOW() as `date_added`, NOW() as `date_available`, manufacturer_id, model, mpn, price, quantity, status, uuid, weight
FROM etrade_product_temp
WHERE row_exist = 0 AND etrade_product_temp.type_id=1
GROUP BY uuid;;;

UPDATE etrade_product_temp etrade_temp, oc_product site_table SET etrade_temp.product_id = site_table.product_id WHERE etrade_temp.row_exist = 0 AND etrade_temp.uuid = site_table.uuid  AND etrade_temp.type_id=1;;;
UPDATE etrade_product_to_category_temp etrade_temp, oc_product site_table SET etrade_temp.product_id = site_table.product_id WHERE etrade_temp.product_uuid = site_table.uuid;;;
UPDATE etrade_image_temp etrade_temp, oc_product site_table SET etrade_temp.item_id = site_table.product_id WHERE etrade_temp.row_type="product" AND etrade_temp.item_uuid = site_table.uuid;;;

INSERT INTO oc_product_description (description, language_id, meta_description, meta_keyword, name, product_id)
SELECT description_full, 1 as language_id, meta_description, meta_keyword, name, product_id
FROM etrade_product_temp
WHERE row_exist = 0 AND etrade_product_temp.type_id=1;;;

UPDATE etrade_image_temp etrade_temp, oc_product site_table
SET site_table.image = etrade_temp.image
WHERE etrade_temp.row_type = "product" AND
etrade_temp.item_id = site_table.product_id;;;


 

Описание временных таблиц и полей создаваемых при обновлении сайта

Название поля Описание
currency_id ID валюты
uuid Уникальный символьный идентификатор
code Код валюты
name Название валюты
rate Курс валюты
is_default Флаг - валюта по умолчанию
 
Название поля Описание
language_id ID языка
uuid Уникальный символьный идентификатор
code Код языка
name Название языка
is_default Язык по умолчанию
code_from_site Код языка загруженный с сайта
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
contractor_id ID контрагента
uuid Уникальный символьный идентификатор
group_name Название группы контрагентов
name Название контрагента
status Активность
county Страна
city Город
address Адрес
address_law Адрес юридический
phones Телефон
url Ссылка на сайт
email Эл. почта
contact_person Контактная персона
description Примечание
sort_order Порядок сортировки
  Далее могут присутствовать поля созданнные пользователем
 
Название поля Описание
uuid Уникальный символьный идентификатор
code Код
name Название
is_base_unit Флаг - базовая единица
status Активность
unit_name Название
unit_name_alias Название синоним
unit_name_local Название локально
type Тип
koef Коеффициент пересчёта
 
Название поля Описание
store_id ID магазина
uuid Уникальный символьный идентификатор
name Название магазина
is_default Флаг - по умолчанию
url Ссылка на сайт
 
Название поля Описание
warehouse_id ID склада
store_id ID магазина
uuid Уникальный символьный идентификатор склада
name Название склада
is_default Флаг - по умолчанию
store_uuid Уникальный символьный идентификатор магазина
description Примечание
c_latitude Координата широта
c_longitude Координата долгота
sort_order Порядок сортировки
is_virtual Флаг - виртуальный склад
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
category_id ID категории
parent_id ID родительской категории
language_id ID языка
name Название категории
status Активность
image Ссылка на картинку
uuid Уникальный символьный идентификатор категории
uuid_parent Уникальный символьный идентификатор родительской категории
seo_url ЧПУ
product_count Количество товаров в категории
sort_order Порядок сортировки
description_short Описание краткое
description_full Описание полное
meta_title SEO meta заголовок
meta_description SEO meta описание
meta_keyword SEO meta ключевые слова
seo_h1 Текст для тега h1
name_full Список всех категорий куда входит эта категория
language_uuid Уникальный символьный идентификатор языка
left_key Левый ключ
right_key Правый ключ
level Уровень вложенности
id_path Перечисление ID категорий
id_path_uuid Перечисление uuid категорий
seo_url _full ЧПУ со всеми категориями
category_id_jumper ID категории в базе данных Jumper
parent_id_jumper ID родительской категории в базе данных Jumper
  Далее могут присутствовать поля созданнные пользователем
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
category_id ID категории
store_id ID магазина
category_uuid Уникальный символьный идентификатор категории
store_uuid Уникальный символьный идентификатор магазина
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
product_id ID товара
language_id ID языка
category_id ID категории
manufacturer_id ID производителя
sku Внутренний артикул
price Цена
price_rrp РРЦ
quantity Количество
model Модель
upc Штрихкод
ean Штрихкод
jan Штрихкод
isbn Штрихкод
mpn Артикул производителя
stock_location Расположение на складе
points Количество баллов
date_available Дата доступности
warranty Гарантия
weight Вес
length Длина
width Ширина
height Высота
subtract_quantity Флаг - вычитать со склада при заказе товара
order_minimum Минимальное количество для заказа
sort_order Порядок сортировки
status Активность
viewed Количество просмотров
price_old Старая цена
delivery_cost Стоимость доставки
contractor_id ID контрагента
uuid Уникальный символьный идентификатор
category_uuid Уникальный символьный идентификатор категории
manufacturer_uuid Уникальный символьный идентификатор производителя
sku_supply Артикул контрагента (поставщика)
seo_url ЧПУ
ext_url Внешняя ссылка на товар
product_id _ext ID товара на внешнем сайте
name Наименование товара
description_short Описание краткое
description_full Описание полное
meta_description SEO meta описание
meta_keyword SEO meta ключевые слова
meta_title SEO meta заголовок
seo_h1 Текст для тега h1
tag Список тегов
language_uuid Уникальный символьный идентификатор языка
flag_archive Флаг - архивный товар
flag_xml_export Флаг - выгружать на торговую площадку
flag_popular Флаг - популярный товар
flag_best_deal Флаг - лучшая покупка
flag_fix_price Флаг - фиксиронная цена
stock_status_id ID статуса наличия
stock_status_name Название статуса наличия
stock_status_image Картинка статуса наличия
stock_status_color Цвет статуса наличия
manufacturer_name Название производителя
contractor_name Название контрагента
profit_value Прибыль, значение
profit_persent Прибыль, процент
price_cost Цена себестоимость
flag_new_product Флаг - новый товар (новинка)
type_id Тип товара, 1 - обычный товар, 2 - товар-опция.
uuid_parent Уникальный символьный идентификатор родительского товара
id_parent Уникальный числово идентификатор родительского товара
measure_uuid Уникальный символьный идентификатор единицы измерения
product_id_jumper ID товара в базе данных Jumper
  Далее могут присутствовать поля созданнные пользователем
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
product_id ID товара
store_id ID магазина
product_uuid Уникальный символьный идентификатор товара
store_uuid Уникальный символьный идентификатор магазина
quantity Количество
price Цена
price_rrp РРЦ
price_cost Цена себестоимость
stock_status_name Статус наличия
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
product_id ID товара
warehouse_id ID склада
product_uuid Уникальный символьный идентификатор товара
warehouse_uuid Уникальный символьный идентификатор склада
quantity Количество
price Цена
stock_status_name Статус наличия
 
Название поля Описание
product_id ID товара
category_id ID категории
product_uuid Уникальный символьный идентификатор товара
category_uuid Уникальный символьный идентификатор категории
sort_order Порядок сортировки
is_main Флаг - главная категория
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
manufacturer_id ID производителя
language_id ID языка
name Название производителя
image Логотип
url Ссылка на сайт производителя
seo_url ЧПУ ссылка
uuid Уникальный символьный идентификатор
description_short Описание краткое
description_full Описание полное
meta_title SEO meta заголовок
meta_description SEO meta описание
meta_keyword SEO meta ключевые слова
seo_h1 Текст для тега h1
language_uuid Уникальный символьный идентификатор языка
address Адрес
address_service Адрес сервиных центров
tag Список тегов
  Далее могут присутствовать поля созданнные пользователем
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
manufacturer_id ID производителя
store_id ID магазина
manufacturer_uuid Уникальный символьный идентификатор производителя
store_uuid Уникальный символьный идентификатор магазина
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
attribute_block_id ID блока атрибутов
language_id ID языка
name Название блока атрибутов
description Описание блока атрибутов
sort_order Порядок сортировки
image Картинка
uuid Уникальный символьный идентификатор блока атрибутов
language_uuid Уникальный символьный идентификатор языка
code Код блока атрибутов (ЧПУ)
status Активность
flag_exported Флаг - факт выгрузки данных на сайт
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
row_exist _option Флаг - запись об опции найдена в базе данных сайта
attribute_id ID атрибута товаров
attribute_block_id ID блока атрибутов
language_id ID языка
option_id ID опции
name Название атрибута
description Описание атрибута
sort_order Порядок сортировки
image Картинка атрибута
required Флаг - обязательно для заполнения
type_code Тип атрибута
type_code_filter Тип атрибута для фильтра
block_uuid Уникальный символьный идентификатор блока атрибутов
uuid Уникальный символьный идентификатор атрибута
language_uuid Уникальный символьный идентификатор языка
code Код атрибута (ЧПУ)
show_on_page Флаг - показывать на странице
status Активность
attribute_uuid_parent Уникальный символьный идентификатор родительского атрибута
attribute_main Флаг - главный атрибут
flag_option Флаг - опция товара
flag_expand Флаг - список значений раскрыт (для фильтра)
filter_max_attribute (для фильтра)
filter_max_attribute_value (для фильтра)
group_by_value Флаг - группировать по значениям (для фильтра)
flag_exported Флаг - факт выгрузки данных на сайт
postfix Добавочный текст
flag_multiline Флаг - многостроковые значения
type_code_site Тип атрибут полученный с сайта
 
Название поля Описание
category_id ID категории
attribute_id ID атрибута
category_uuid Уникальный символьный идентификатор категории
attribute_uuid Уникальный символьный идентификатор атрибута
sort_order Порядок сортировки
filter Флаг Использовать для фильтра
flag_global Для всех категорий
row_exist Флаг - запись найдена в базе данных сайта
filter_max_attribute (для фильтра)
filter_max_attribute_value (для фильтра)
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
product_id ID товара
id_parent ID родительского атрибута
attribute_id ID атрибута товаров
attribute_block_id ID блока атрибутов
language_id ID языка
option_id ID опции
attribute_main Флаг - главный атрибут
type_code Тип атрибута
attribute_value Значение атрибута
product_uuid Уникальный символьный идентификатор товара
uuid_parent Уникальный символьный идентификатор родительского атрибута
attribute_uuid Уникальный символьный идентификатор атрибута
language_uuid Уникальный символьный идентификатор языка
flag_option Флаг - опция товара
required Флаг - обязательно для заполнения
attribute_value_id ID значения атрибута
value_crc32 Контрольная сумма CRC значения атрибута
flag_exported Флаг - факт выгрузки данных на сайт
sort_order Порядок сортировки
attribute_color Цвет атрибута
measure_uuid Уникальный символьный идентификатор единицы измерения
attribute_block_uuid Уникальный символьный идентификатор блока атрибутов
stock_status_id_main Статус наличия от товара
stock_status_id Статус наличия от опции
quantity Количество
price Цена
price_prefix Тип добавления цены (=-+) при выборе опции
points_prefix Тип добавления баллов (=-+) при выборе опции
weight_prefix Тип добавления веса (=-+) при выборе опции
points Баллы
weight Вес
subtract Флаг - вычитать со склада при заказе
sku Артикул опции
row_uuid Уникальный символьный идентификатор записи
  Далее могут присутствовать поля созданнные пользователем
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
attribute_value_id ID значения для атрибута
attribute_id ID атрибута товаров
language_id ID языка
attribute_uuid Уникальный символьный идентификатор атрибута
language_uuid Уникальный символьный идентификатор языка
sort_order Порядок сортировки
code Код атрибута (ЧПУ)
attribute_value Значание атрибута
postfix Добавочный текст
description Описание значения
value_crc32 Контрольная сумма CRC значения
measure_uuid Уникальный символьный идентификатор единицы измерения
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
row_type Тип записи (category - категория, product - товар)
item_id ID элемента (ID категории, ID товара)
image Имя файла с директорией
image_cloud_url Ссылка на фото
image_original Ссылка на фото полученное с сайта
image_site_path Путь хранения на сайте
image_path Путь хранения
image_file_name Имя файла
image_path_original Путь хранения на сайте (полученное с сайта)
image_file_name_original Имя файла полученное с сайта
saved_path Путь сохранения
saved_file_name Имя файла для сохранения
sort_order Порядок сортировки
uuid Уникальный символьный идентификатор фотографии
item_uuid Уникальный символьный идентификатор элемента (категории, товара)
downloaded Флаг - фото закачено на сайт
flag_from_site Флаг - фото получено с сайта
 
Название поля Описание
row_type Тип записи (category - категория, product - товар)
item_id ID элемента (ID категории, ID товара)
alt Текст для тега alt
title Текст для тега title
product_image_id ID фотографии
item_uuid Уникальный символьный идентификатор элемента (категории, товара)
language_uuid Уникальный символьный идентификатор языка
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
product_id ID товара
uuid Уникальный символьный идентификатор товара
video_id ID ссылки на видео
url Ссылка на видео
 
Название поля Описание
row_exist Флаг - запись найдена в базе данных сайта
article_id ID статьи
parent_id ID родительской категории (раздела)
uuid Уникальный символьный идентификатор статьи
uuid_parent Уникальный символьный идентификатор родительской категории (раздела)
is_category Флаг - это категория (раздел)
status Активность
sort_order Порядок сортировки
product_id ID товара (привязка к товару)
language_uuid Уникальный символьный идентификатор языка
description Примечание
seo_url ЧПУ
flag_comment Флаг - комментарий
name Название статьи
description_short Описание краткое
description_full Текст статьи
meta_title SEO meta заголовок
meta_keyword SEO meta ключевые слова
meta_description SEO meta описание
seo_h1 Текст для тега h1
tag Список тегов
 


Как получить числовой ID категории для товаров, который хранится в БД Jumper
SELECT t2.category_id_jumper, t2.parent_id_jumper, t1.product_id_jumper
FROM etrade_product_temp t1
INNER JOIN etrade_category_temp t2 ON t1.category_uuid = t2.uuid
 


Далее