2020-12-22
19319
70
6781
2 мин.


SQL запросы для индивидуального обновления сайта интернет-магазина

SQL запросы позволяют обновить сайт интернет-магазина под Ваши индивидуальные требования. Под каждую CMS необходимы свои SQL запросы, поэтому в этом разделе будут отдельные запросы по каждой CMS. Запросы прописываются в разделе "Настройка SQL запросов"

CMS OpenCart

Примеры даны с префиксом таблиц "oc_", если у вас другой префикс, измените его в запросе.

Обновление meta тега title для производителя товара OpenCart на основании тега title из справочника производителей E-Trade Jumper

UPDATE oc_manufacturer_description md INNER JOIN etrade_manufacturer_temp t2 ON md.manufacturer_id = t2.manufacturer_id SET md.meta_title = t2.meta_title;;;

Обновление модели товара OpenCart на основании ID товара E-Trade Jumper
UPDATE oc_product t1, etrade_product_temp t2 SET t1.model = t2.product_id_jumper WHERE t2.product_id>0 AND t2.product_id = t1.product_id;;;

Обновление описания товара OpenCart на основании краткого описания E-Trade Jumper

UPDATE oc_product_description t1, etrade_product_temp t2 SET t1.description = t2.description_short WHERE t1.product_id = t2.product_id AND t1.language_id = t2.language_id;;;

Обновление SEO URL (ЧПУ) OpenCart на основании ЧПУ E-Trade Jumper
При обновлении сайта OpenCart, ЧПУ прописываются только для новых записей (новых категорий, товаров), чтобы обновить текущие ЧПУ на сайте используйте эти SQL запросы.

OpenCart версии 2.X
# Категории
UPDATE oc_url_alias ua INNER JOIN etrade_category_temp e ON e.category_id = CAST(SUBSTRING(ua.query FROM 13) as UNSIGNED) SET ua.keyword = e.seo_url WHERE e.row_exist = 1 AND e.seo_url!='' AND ua.query LIKE 'category_id=%';;

# Товары
UPDATE oc_url_alias ua INNER JOIN etrade_product_temp e ON e.product_id = CAST(SUBSTRING(ua.query FROM 12) as UNSIGNED) SET ua.keyword = e.seo_url WHERE e.row_exist = 1 AND e.seo_url!='' AND ua.query LIKE 'product_id=%';;

# Производители
UPDATE oc_url_alias uaINNER JOIN etrade_manufacturer_temp e ON e.manufacturer_id = CAST(SUBSTRING(ua.query FROM 17) as UNSIGNED)SET ua.keyword = e.seo_urlWHERE e.row_exist = 1 AND e.seo_url!='' AND ua.query LIKE 'manufacturer_id=%';;

OpenCart версии 3.X
# Категории
UPDATE oc_seo_url su INNER JOIN etrade_category_temp e ON e.category_id = CAST(SUBSTRING(su.query FROM 13) as UNSIGNED) SET su.keyword = e.seo_url WHERE e.row_exist = 1 AND e.seo_url!='' AND su.query LIKE 'category_id=%';;

# Товары
UPDATE oc_seo_url su INNER JOIN etrade_product_temp e ON e.product_id = CAST(SUBSTRING(su.query FROM 12) as UNSIGNED) SET su.keyword = e.seo_url WHERE e.row_exist = 1 AND e.seo_url!='' AND su.query LIKE 'product_id=%';;

# Производители
UPDATE oc_seo_url su INNER JOIN etrade_manufacturer_temp e ON e.manufacturer_id = CAST(SUBSTRING(su.query FROM 17) as UNSIGNED) SET su.keyword = e.seo_url WHERE e.row_exist = 1 AND e.seo_url!='' AND su.query LIKE 'manufacturer_id=%';;

Обновление на сайте OpenCart минимального количества товаров для заказа
UPDATE etrade_product_temp t1, oc_product t2 SET t2.minimum = t1.order_minimum WHERE t1.uuid = t2.uuid;;;

Обновление цен для опций товаров OpenCart на основании товаров-опций созданных в базовом каталоге E-Trade Jumper
Для обновления на сайте цен опций, необходимо активировать флаг "Обновлять значения опций на основании товаров-опций"

Обновление цены, префикса цены, артикула для товара-опции
UPDATE oc_product_option_value pov INNER JOIN etrade_product_attribute_temp pa ON pa.product_id = pov.product_id AND pov.product_option_id = pa.product_option_id AND pov.option_id = pa.option_id AND pov.product_option_value_id = pa.product_option_value_id INNER JOIN etrade_product_temp p ON p.uuid = pa.product_uuid AND p.type_id=2 SET pov.price = p.price, pov.price_prefix = '=', pov.sku = p.mpn;;;
Вы можете для товаров опций обновлять разницу цены, между основным товаром и товаром опцией, если каждая опция имеет свою цену
UPDATE oc_product_option_value pov INNER JOIN etrade_product_attribute_temp pa ON pa.product_id = pov.product_id AND pov.product_option_id = pa.product_option_id AND pov.option_id = pa.option_id AND pov.option_value_id = pa.product_option_value_id INNER JOIN (SELECT uuid, price FROM etrade_product_temp WHERE type_id=1) p ON p.uuid = pa.product_uuid INNER JOIN (SELECT uuid_parent, price FROM etrade_product_temp WHERE type_id=2) p_option ON p_option.uuid_parent = p.uuid SET pov.price = p_option.price - p.price;;;

CMS 1C-Bitrix

Обновление свойста битрикса на основании обычного поля E-Trade Jumper.
Например для обновления свойства битрикса с кодом SUPPLIER для инфоблока ID = 2 на основании поля "Название контрагента" необходимо использовать эти SQL запросы

SET @iblock_id = 2;;; SET @property_code = 'SUPPLIER';; SET @property_id = (SELECT b_iblock_property.id FROM b_iblock_property WHERE b_iblock_property.code = @property_code AND b_iblock_property.IBLOCK_ID = @iblock_id LIMIT 1);;; INSERT INTO b_iblock_element_property (iblock_property_id, iblock_element_id, value) SELECT  @property_id, b_iblock_element.id, etrade_product_temp.contractor_name FROM b_iblock_element, etrade_product_temp WHERE b_iblock_element.xml_id = etrade_product_temp.uuid AND b_iblock_element.iblock_id = @iblock_id AND b_iblock_element.id NOT IN (SELECT iblock_element_id FROM b_iblock_element_property WHERE iblock_property_id = @property_id GROUP BY iblock_element_id);;; UPDATE b_iblock_element_property, b_iblock_element, etrade_product_temp SET b_iblock_element_property.value = etrade_product_temp.contractor_name WHERE b_iblock_element.id = b_iblock_element_property.iblock_element_id AND b_iblock_element.xml_id = etrade_product_temp.uuid AND b_iblock_element.iblock_id = @iblock_id AND b_iblock_element_property.iblock_property_id = @property_id;;;


Программа для интернет магазина


Копирайтер ElbuzGroup


Оглавление:



Сохрани ссылку на эту статью