SQL запросы для индивидуального обновления сайта интернет-магазина
SQL запросы позволяют обновить сайт интернет-магазина под Ваши индивидуальные требования. Под каждую CMS необходимы свои SQL запросы, поэтому в этом разделе будут отдельные запросы по каждой CMS. Запросы прописываются в разделе "Настройка SQL запросов"
CMS OpenCart
Примеры даны с префиксом таблиц "oc_", если у вас другой префикс, измените его в запросе.
Обновление meta тега title для производителя товара OpenCart на основании тега title из справочника производителей Elbuz
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 товара Elbuz
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 на основании краткого описания Elbuz
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 на основании ЧПУ Elbuz
При обновлении сайта 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 ua
INNER JOIN etrade_manufacturer_temp e ON e. manufacturer_id = CAST(SUBSTRING(ua. query FROM 17) as UNSIGNED)
SET ua. keyword = e. seo_url
WHERE 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 на основании товаров-опций созданных в базовом каталоге Elbuz
Для обновления на сайте цен опций, необходимо активировать флаг "Обновлять значения опций на основании товаров-опций"
Обновление цены, префикса цены, артикула для товара-опции
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
Обновление свойста битрикса на основании обычного поля Elbuz.
Например для обновления свойства битрикса с кодом 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;;;
Программа для интернет магазина