Автор Тема: Полный экспорт товара для 1.6  (Прочитано 282 раз)

01 Сентября 2015, 18:17:16
  • Старожил
  • ****
  • Сообщений: 262
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Возникла вот такая необходимость: нужно вытащить с сайта в виде таблицы excel все товары, которые размешены на сайте. Стандартный экспорт не вытаскивает описание товара. Причина почему это нужно сделать: необходимо массово заменить параметр тэги для товаров. С помощью Excel, я бы сделал все за пару минут, а не недель, если делать через админпанель. Спасибо.


SELECT p.id_product, p.active, pl.name, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") as categories, p.price, p.id_tax_rules_group, p.wholesale_price, p.reference, p.supplier_reference, p.id_supplier, p.id_manufacturer, p.upc, p.ecotax, p.weight, p.quantity, pl.description_short, pl.description, pl.meta_title, pl.meta_keywords, pl.meta_description, pl.link_rewrite, pl.available_now, pl.available_later, p.available_for_order, p.date_add, p.show_price, p.online_only, p.condition, p.id_shop_default
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_product_tag pt ON (p.id_product = pt.id_product)
WHERE pl.id_lang = 1
AND cl.id_lang = 1
AND p.id_shop_default = 1
AND c.id_shop_default = 1
GROUP BY p.id_product

Вытянул кодом этим, загнанным в sql. Список получился корявым. Еще есть варианты?
 
01 Сентября 2015, 18:54:26
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
В чем корявость выражается?
01 Сентября 2015, 19:01:03
Ответ #2
  • Старожил
  • ****
  • Сообщений: 262
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В том что строки сползать начинают, вот прицепил к письму таблицу. Битая кодировка меня не пугает, это я исправить могу. А вот дальше есть то что я назвал корявостью, начинается со строки 206.
01 Сентября 2015, 19:11:05
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
Разделитель поменять нужно. В тексте есть ";" поэтому и смещаются колонки.
С файлами csv работать нужно в текстовом редакторе, тогда и проблем с разделителями не будет.
01 Сентября 2015, 19:15:15
Ответ #4
  • Старожил
  • ****
  • Сообщений: 262
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Coder не могли бы объяснить подробнее. Я ничего нее понял. В Notepad++ строки тоже сползшие.
01 Сентября 2015, 19:16:17
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 13276
  • Репутация: +14556/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пропуски в файле импорта нужно удалять, переход строки в тексте заменять спец. символом. Проблемы начинаются с товара у которого в описание пропуски и переход на новую строку.
01 Сентября 2015, 19:22:39
Ответ #6
  • Старожил
  • ****
  • Сообщений: 262
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно пример? Я реально ничего не понимаю.
01 Сентября 2015, 19:28:50
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
Пример неправильного формата данных - товар 311 описание.

Пример файла импорта товаров в приложении.

В конце каждой строки (это один товар) нет знака ";" а переход на новую строку.
Знак ";" - это разделитель данных.
01 Сентября 2015, 19:35:40
Ответ #8
  • Старожил
  • ****
  • Сообщений: 262
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я имел в виду пример исправления. Или подскажите мне пожалуйста другой способ для получения таблицы. Я не понимаю, как это исправить.
01 Сентября 2015, 19:43:33
Ответ #9
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
Получение данных одно. Сделали sql запрос и получили. С этим у вас все нормально.
Потом нужно привести файл импорта в нормальный вид, чтобы prestashop мог его правльно считать. Это другое. Тут каждый сам решает как делать. Одни в ручную правят, другие скрипты пишут.
Я делаю это с помощью php, убираю табуляцию, меняю кавычки и т.д. В результате должно получится такой файл как в приложении.
01 Сентября 2015, 19:49:15
Ответ #10
  • Старожил
  • ****
  • Сообщений: 262
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
То есть теперь только вручную править таблицу? Вот облом.......