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;;;
Програма для інтернет-магазину