Автор Тема: Экспорт товаров из определенной категории  (Прочитано 665 раз)

02 Август 2018, 21:19:21
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Граждане, срочно нужна помощь)
Нужно вытащить из определенной категории все товары со всеми характеристиками и изображениями.
Есть рабочий запрос, но только на товар.
Как сделать так, чтобы через sql менеджер получить csv с заветными данными из определенной категории?
Вот пример запроса :
SELECT
p.id_product AS `ID`,
p.active AS `Active (0/1)`,
pl.`name` AS `Name`,
GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ',') AS `Categories (x,y,z...)`,
p.price AS `Price tax excluded or Price tax included`,
p.id_tax_rules_group AS `Tax rules ID`,
p.wholesale_price AS `Wholesale price`,
p.on_sale AS `On sale (0/1)`,
IF(pr.reduction_type='amount',pr.reduction,'') AS `Discount amount`,
IF(pr.reduction_type='percentage',pr.reduction,'') AS `Discount percent`,
pr.`from` AS `Discount from (yyyy-mm-dd)`,
pr.`to` AS `Discount to (yyyy-mm-dd)`,
p.reference AS `Reference #`,
pps.product_supplier_reference AS `Supplier reference #`,
ps.`name` AS `Supplier`,
pm.`name` AS `Manufacturer`,
p.ean13 AS `EAN13`,
p.upc AS `UPC`,
p.ecotax AS `Ecotax`,
p.width AS `Width`,
p.height AS `Height`,
p.depth AS `Depth`,
p.weight AS `Weight`,
pq.quantity AS `Quantity`,
p.minimal_quantity AS `Minimal quantity`,
p.visibility AS `Visibility`,
p.additional_shipping_cost AS `Additional shipping cost`,
p.unity AS `Unit for the unit price`,
p.unit_price_ratio AS `Unit price`,
pl.description_short AS `Short description`,
pl.description AS `Description`,
IF(t.`name` IS NOT NULL, GROUP_CONCAT(DISTINCT(t.`name`) SEPARATOR ','), '') AS `Tags (x,y,z...)`,
pl.meta_title AS `Meta title`,
pl.meta_keywords AS `Meta keywords`,
pl.meta_description AS `Meta description`,
pl.link_rewrite AS `URL rewritten`,
pl.available_now AS `Text when in stock`,
pl.available_later AS `Text when backorder allowed`,
p.available_for_order AS `Available for order (0 = No, 1 = Yes)`,
'' AS `Product available date`,
p.date_add `Product creation date`,
p.show_price AS `Show price (0 = No, 1 = Yes)`,
IF(pi.`id_product` IS NOT NULL, GROUP_CONCAT(DISTINCT(concat( 'http://umkarapuz.ru/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' )) SEPARATOR ','), '') AS url_image,
0 AS `Delete existing images (0 = No, 1 = Yes)`,
GROUP_CONCAT(DISTINCT(CONCAT((fl.`name`), ':', (fvl.`value`), ':' , (f.position), ':' , (fv.custom))) SEPARATOR ',') AS `Feature (Name:Value:Position:Customized)`,
p.online_only AS `Available online only (0 = No, 1 = Yes)`,
p.condition AS `Condition`,
0 AS `Customizable (0 = No, 1 = Yes)`,
0 AS `Uploadable files (0 = No, 1 = Yes)`,
0 AS `Text fields (0 = No, 1 = Yes)`,
'' AS `Action when out of stock`,
p.id_shop_default AS `ID / Name of shop`,
p.advanced_stock_management AS `Advanced Stock Management`,
'' AS `Depends on stock`,
'' AS `Warehouse`
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN ps_category c ON (cp.id_category = c.id_category)
LEFT JOIN ps_specific_price pr ON (p.id_product = pr.id_product)
LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product)
LEFT JOIN ps_tag t ON ( pt.id_tag = t.id_tag )
LEFT JOIN ps_image pi ON ( p.id_product = pi.id_product)
LEFT JOIN ps_manufacturer pm ON (p.id_manufacturer = pm.id_manufacturer)
LEFT JOIN ps_supplier ps ON (p.id_supplier = ps.id_supplier)
LEFT JOIN ps_product_supplier pps ON (p.id_supplier = pps.id_supplier)
LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product)
LEFT JOIN ps_configuration conf ON conf.`name` = 'ps_SHOP_DOMAIN'
LEFT JOIN ps_feature_product fp ON p.id_product = fp.id_product
LEFT JOIN ps_feature_lang fl ON fp.id_feature = fl.id_feature
LEFT JOIN ps_feature_value_lang fvl ON fp.id_feature_value = fvl.id_feature_value
LEFT JOIN ps_feature f ON fp.id_feature = f.id_feature
LEFT JOIN ps_feature_value fv ON fp.id_feature_value = fv.id_feature_value
WHERE p.id_product = 4569 AND pl.id_lang = 6
AND cl.id_lang = 6
AND p.id_shop_default = 1
AND c.id_shop_default = 1
GROUP BY p.id_product


03 Август 2018, 10:08:40
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
03 Август 2018, 10:22:29
Ответ #2
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
WHERE c.id_category = "ид категории"
что то пошло не так
This SQL query has no result.
SELECT
p.id_product AS `ID`,
p.active AS `Active (0/1)`,
pl.`name` AS `Name`,
GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ',') AS `Categories (x,y,z...)`,
p.price AS `Price tax excluded or Price tax included`,
p.id_tax_rules_group AS `Tax rules ID`,
p.wholesale_price AS `Wholesale price`,
p.on_sale AS `On sale (0/1)`,
IF(pr.reduction_type='amount',pr.reduction,'') AS `Discount amount`,
IF(pr.reduction_type='percentage',pr.reduction,'') AS `Discount percent`,
pr.`from` AS `Discount from (yyyy-mm-dd)`,
pr.`to` AS `Discount to (yyyy-mm-dd)`,
p.reference AS `Reference #`,
pps.product_supplier_reference AS `Supplier reference #`,
ps.`name` AS `Supplier`,
pm.`name` AS `Manufacturer`,
p.ean13 AS `EAN13`,
p.upc AS `UPC`,
p.ecotax AS `Ecotax`,
p.width AS `Width`,
p.height AS `Height`,
p.depth AS `Depth`,
p.weight AS `Weight`,
pq.quantity AS `Quantity`,
p.minimal_quantity AS `Minimal quantity`,
p.visibility AS `Visibility`,
p.additional_shipping_cost AS `Additional shipping cost`,
p.unity AS `Unit for the unit price`,
p.unit_price_ratio AS `Unit price`,
pl.description_short AS `Short description`,
pl.description AS `Description`,
IF(t.`name` IS NOT NULL, GROUP_CONCAT(DISTINCT(t.`name`) SEPARATOR ','), '') AS `Tags (x,y,z...)`,
pl.meta_title AS `Meta title`,
pl.meta_keywords AS `Meta keywords`,
pl.meta_description AS `Meta description`,
pl.link_rewrite AS `URL rewritten`,
pl.available_now AS `Text when in stock`,
pl.available_later AS `Text when backorder allowed`,
p.available_for_order AS `Available for order (0 = No, 1 = Yes)`,
'' AS `Product available date`,
p.date_add `Product creation date`,
p.show_price AS `Show price (0 = No, 1 = Yes)`,
IF(pi.`id_product` IS NOT NULL, GROUP_CONCAT(DISTINCT(concat( 'http://umkarapuz.ru/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' )) SEPARATOR ','), '') AS url_image,
0 AS `Delete existing images (0 = No, 1 = Yes)`,
GROUP_CONCAT(DISTINCT(CONCAT((fl.`name`), ':', (fvl.`value`), ':' , (f.position), ':' , (fv.custom))) SEPARATOR ',') AS `Feature (Name:Value:Position:Customized)`,
p.online_only AS `Available online only (0 = No, 1 = Yes)`,
p.condition AS `Condition`,
0 AS `Customizable (0 = No, 1 = Yes)`,
0 AS `Uploadable files (0 = No, 1 = Yes)`,
0 AS `Text fields (0 = No, 1 = Yes)`,
'' AS `Action when out of stock`,
p.id_shop_default AS `ID / Name of shop`,
p.advanced_stock_management AS `Advanced Stock Management`,
'' AS `Depends on stock`,
'' AS `Warehouse`
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN ps_category c ON (cp.id_category = c.id_category)
LEFT JOIN ps_specific_price pr ON (p.id_product = pr.id_product)
LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product)
LEFT JOIN ps_tag t ON ( pt.id_tag = t.id_tag )
LEFT JOIN ps_image pi ON ( p.id_product = pi.id_product)
LEFT JOIN ps_manufacturer pm ON (p.id_manufacturer = pm.id_manufacturer)
LEFT JOIN ps_supplier ps ON (p.id_supplier = ps.id_supplier)
LEFT JOIN ps_product_supplier pps ON (p.id_supplier = pps.id_supplier)
LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product)
LEFT JOIN ps_configuration conf ON conf.`name` = 'ps_SHOP_DOMAIN'
LEFT JOIN ps_feature_product fp ON p.id_product = fp.id_product
LEFT JOIN ps_feature_lang fl ON fp.id_feature = fl.id_feature
LEFT JOIN ps_feature_value_lang fvl ON fp.id_feature_value = fvl.id_feature_value
LEFT JOIN ps_feature f ON fp.id_feature = f.id_feature
LEFT JOIN ps_feature_value fv ON fp.id_feature_value = fv.id_feature_value
WHERE pl.id_lang = 6
WHERE c.id_category = 74
AND cl.id_lang = 6
AND p.id_shop_default = 1
AND c.id_shop_default = 1
GROUP BY p.id_product
03 Август 2018, 10:48:11
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Потому что
WHERE pl.id_lang = 6
WHERE c.id_category = 74
WHERE один должен быть, следующие условия ....AND....
03 Август 2018, 10:55:31
Ответ #4
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
исправил, но все равно ошибка прежняя
вот кусок исправленного:
WHERE c.id_category = 74 AND pl.id_lang = 6
AND cl.id_lang = 6
что я не так указал?
03 Август 2018, 11:13:06
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
03 Август 2018, 11:29:37
Ответ #6
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Упс. Как обычно, не увидел.
Но все равно...
This SQL query has no result.
WHERE c.id_category = 74 AND pl.id_lang = 6
03 Август 2018, 12:55:38
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Без языка попробуй
WHERE c.id_category = 74
03 Август 2018, 13:00:25
Ответ #8
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Без языка попробуй
WHERE c.id_category = 74
ни-фи-га

This SQL query has no result.
03 Август 2018, 14:12:46
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Значит в этой категории нет товаров.
03 Август 2018, 14:17:04
Ответ #10
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
36 товаров. Активных и не активных
03 Август 2018, 14:20:53
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Тогда проверяйте запрос на ошибки. Скорее всего синтаксическая ошибка.
03 Август 2018, 14:22:08
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
LEFT JOIN ps_configuration conf ON conf.`name` = 'ps_SHOP_DOMAIN'у вас мультмагазин?
03 Август 2018, 14:23:51
Ответ #13
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
никогда не задавался этим вопросом)))нет. обычный интернет магазин. один. с одной витриной. с одной валютой
03 Август 2018, 14:51:36
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Тогда объединение по ps_configuration_conf лишнее.