Экспорт товаров Prestashop 1.7 через SQL запрос
Времени писать модуль не было, поэтому быстренько собрал запрос на экспорт товаров со всеми данными (с описаниями, картинками, характеристиками и т.д.) в один.
Модуль для экспорта товаров из Prestashop стоит довольно не малых денег, и как бы покупать его для единоразовых потребностей не видел смысла.
Этот запрос экспортирует все товары из заданной категории или множества категорий со всеми информационными полями, а именно:
- id_product — ид продукта
- active — активность товара
- name — имя товара
- category — категория товара
- price — цена товара
- id_tax_rules_group — ИД правил
- wholesale_price — акционная цена
- on_sale — в продаже
- discount amount — скидка в единице
- discount percent — скидка в процентах
- from
- to
- reference — артикул
- supplier reference
- supplier
- manufacturer — Производитель
- ean13
- upc
- ecotax
- width
- height
- depth
- weight
- quantity — количество
- minimal_quantity — минимальное кол-во
- visibility
- additional_shipping_cost
- unity единица — измерения
- unit_price_ratio
- description_short — краткое описание
- description — описание
- tags тэги
- meta_title
- meta_keywords
- meta_description
- link_rewrite
- link_rewrite
- available_now
- available_later
- available_for_order
- available_date
- date_add
- show_price
- url_image — адрес картинок
- delete existing img (0=no, 1=yes)
- feature(name:value:position) — Характеристики товаров
- online_only
- condition
- customizable
- uploadable_files
- text_fields
- out_of_stock
- id_shop_default
- advanced_stock_management
- depends_on_stock
- advanced_stock_management
- MIN(wpl.id_warehouse)
Запрос для экспорта товаров можно сохранить в Менеджере SQL самого Prestashop 1.7 или выполнить в phpMyAdmin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | SELECT p.`id_product`, p.`active`, pl.`name`, GROUP_CONCAT(DISTINCT(cl.`name`) ORDER BY p.`id_category_default` ASC SEPARATOR ",") AS `category`, p.`price`, p.`id_tax_rules_group`, p.`wholesale_price`, p.`on_sale`, IF(sp.`reduction_type`="amount", sp.`reduction`, "") AS `discount amount`, IF(sp.`reduction_type`="percentage", sp.`reduction`, "") AS `discount percent`, sp.`from`, sp.`to`, p.`reference`, ps.`product_supplier_reference` AS `supplier reference`, su.`name` AS `supplier`, m.`name` AS `manufacturer`, p.`ean13`, p.`upc`, p.`ecotax`, p.`width`, p.`height`, p.`depth`, p.`weight`, psa.`quantity`, p.`minimal_quantity`, p.`visibility`, p.`additional_shipping_cost`, p.`unity`, p.`unit_price_ratio`, pl.`description_short`, pl.`description`, IF(t.`name` IS NOT NULL, GROUP_CONCAT(DISTINCT(t.`name`) SEPARATOR ","), "") AS `tags`, pl.`meta_title`, pl.`meta_keywords`, pl.`meta_description`, pl.`link_rewrite`, pl.`link_rewrite`, pl.`available_now`, pl.`available_later`, p.`available_for_order`, p.`available_date`, p.`date_add`, p.`show_price`, IF(pi.`id_product` IS NOT NULL, GROUP_CONCAT(DISTINCT(CONCAT( "https://АДРЕС-САЙТА-УКАЗАТЬ/img/p/",MID(pi.id_image,1,1),"/", IF (LENGTH(pi.id_image)>1, CONCAT(MID(pi.id_image,2,1),"/"),""),IF (LENGTH(pi.id_image)>2,CONCAT(MID(pi.id_image,3,1),"/"),""),IF (LENGTH(pi.id_image)>3,CONCAT(MID(pi.id_image,4,1),"/"),""),IF (LENGTH(pi.id_image)>4,CONCAT(MID(pi.id_image,5,1),"/"),""), pi.id_image, ".jpg" )) ORDER BY pi.`cover` DESC, pi.`position` ASC SEPARATOR ","), "") AS url_image, IF(pi.`id_product` IS NOT NULL,1, "") AS `delete existing img (0=no, 1=yes)`, GROUP_CONCAT(DISTINCT(CONCAT((fl.`name`), ":", (REPLACE(fvl.`value`,","," &")), ":" , (f.position))) SEPARATOR "^") AS `feature(name:value:position)`, p.`online_only`, p.`condition`, p.`customizable`, p.`uploadable_files`, p.`text_fields`, psa.`out_of_stock`, p.`id_shop_default`, p.`advanced_stock_management`, psa.`depends_on_stock`, p.`advanced_stock_management`, MIN(wpl.`id_warehouse`) FROM `presta_product` p LEFT JOIN `presta_product_lang` pl ON (p.`id_product` = pl.`id_product`) LEFT JOIN `presta_category_product` cp ON (p.`id_product` = cp.`id_product`) LEFT JOIN `presta_category_lang` cl ON (cp.`id_category` = cl.`id_category`) LEFT JOIN `presta_category` c ON (cp.`id_category` = c.`id_category`) LEFT JOIN `presta_specific_price` sp ON (p.`id_product` = sp.`id_product`) LEFT JOIN `presta_product_supplier` ps ON (p.`id_supplier` = ps.`id_supplier`) LEFT JOIN `presta_supplier` su ON (p.`id_supplier` = su.`id_supplier`) LEFT JOIN `presta_manufacturer` m ON (p.`id_manufacturer` = m.`id_manufacturer`) LEFT JOIN `presta_stock_available` psa ON (p.`id_product` = psa.`id_product`) LEFT JOIN `presta_product_tag` pt ON (p.`id_product` = pt.`id_product`) LEFT JOIN `presta_tag` t ON (pt.`id_tag` = t.`id_tag`) LEFT JOIN `presta_image` pi ON ( p.id_product = pi.id_product) LEFT JOIN `presta_feature_product` fp ON p.`id_product` = fp.`id_product` LEFT JOIN `presta_feature_lang` fl ON fp.`id_feature` = fl.`id_feature` LEFT JOIN `presta_feature_value_lang` fvl ON fp.`id_feature_value` = fvl.`id_feature_value` LEFT JOIN `presta_feature` f ON fp.`id_feature` = f.`id_feature` LEFT JOIN `presta_feature_value` fv ON fp.`id_feature_value` = fv.`id_feature_value` LEFT JOIN `presta_warehouse_product_location` wpl ON p.`id_product` = wpl.`id_product` AND pl.`id_lang` = 1 AND cl.`id_lang` = 1 AND fl.`id_lang` = 1 AND fvl.`id_lang` = 1 AND p.`id_shop_default` = 1 AND c.`id_shop_default` = 1 WHERE c.`id_category` IN ('10','12') GROUP BY p.`id_product` |
Если у вас в этих другие значения замените на свои ( это ID языка и ID магазина )
1 2 3 4 5 6 | AND pl.`id_lang` = 1 AND cl.`id_lang` = 1 AND fl.`id_lang` = 1 AND fvl.`id_lang` = 1 AND p.`id_shop_default` = 1 AND c.`id_shop_default` = 1 |
Если нужно экспортировать товары из нескольких категорий укажите ID категории через запятую, если одна категория то просто ID нужной категории.
1 | WHERE c.`id_category` IN ('10','12') GROUP BY p.`id_product` |
Вот пожалуй и все ! Все работает и хорошо! Всем добра и мира!
Будут вопросы задавайте:-)
SQL запрос — экспорт товаров с характеристиками для ПрестаШоп 1.7 — Module Export product feature Prestashop 1.7
Может позже сделаю модуль, если будет нужен!


Внутри самой престы есть, но сколько пробовал дополнить запрос запросами чтобы выводились нужны поля а особенно характеристики, но не получалось. Спасибо, взял у вас кусочек кода к своему запросику.
Теперь я счастлив экспорт работает!
А вот на счет модуля давайте делайте готов даже чуточку финансово помочь 🙂
Да кстати, работает экспорт товаров и на Prestashop 1.6 этот запросик. Так, что двух зайцев одним выстрелом!
СУПЕР! то что доктор прописал! Спасибо тематут одназначно!
пользуйтесь на здоровьечко