Автор Тема: Где хранятся картинки товаров в PrestaShop?  (Прочитано 8163 раз)

28 Ноября 2011, 21:07:54
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • ForumVent.ru
Настраивая синхронизацию 1с-престашоп напрямую, через добавление товаров в MySQL, столкнулись с тем, что нигде не нашли папку с картинками. Кто знает местонахождение картинок товаров в PrestaShop, откликнитесь!
29 Ноября 2011, 12:05:22
Ответ #1
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
В prestashop папка где находяться картинки - /img
29 Ноября 2011, 23:59:38
Ответ #2
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • ForumVent.ru
Спасибо Виктор за быстрый ответ.
Из других источников получил следующее:
В новой версии 1.4 фотографии товаров находятся по пути:
img/p/номер_под_папки/ номер_под_папки.

А теперь, в продолжение:

Самый главный вопрос:
Где в таблицах базы данных MySQL данные об этих файлах?
 
Т.е. как интернет магазин понимает, что для конкретного товара нужно вытащить именно эту картинку?
К примеру, в связке joomla-virtuemart, в таблице базы данных указано имя файла с привязкой к этому товару.
Здесь - в PrestaShop, я ничего подобного не вижу.
30 Ноября 2011, 14:21:40
Ответ #3
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Все картинки находяться в папке img.
Картинки категорий - /img/c
Картинки товаров - /img/p
Полный путь к файлу состоит из img + ид категории и ид товара, например:
img/p/ idc_category/idc_imageесли есть под-категория, то добавляется ид под-категории.
img/p/ idc_category/ids_category/idcids_imageОпределяется путь к картинке в файле Link.php
public function getImageLink($name, $ids, $type = null)
{
   return ($this->allow == 1) ? (__PS_BASE_URI__.$ids.($type ? '-'.$type : '').'/'.$name.'.jpg') : (_THEME_PROD_DIR_.$ids.($type ? '-'.$type : '').'.jpg');
}
Данные по ид находятся в соотвествующих таблицах, например:
SELECT p.`id_product`, p.`id_category_default`, pl.`name`, pi.`id_image`
FROM `ps_product` p
LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product`)
LEFT JOIN `ps_image` pi ON (p.`id_product` = pi.`id_product`)
30 Ноября 2011, 20:23:53
Ответ #4
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • ForumVent.ru
Спасибище огромное, Виктор за быстрый, подробный и развёрнутый ответ :D!
16 Августа 2012, 14:52:05
Ответ #5
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Интересно, картинка товара отображается в странице товара, в просмотренных товарах (модуль), в главном (homefeatured)....но в категории вопросики место изображении?
Где копать - не пойму?
17 Августа 2012, 10:05:18
Ответ #6
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Панель Управления > Настройка > Изображения >  Перегенерировать изображения
20 Августа 2013, 23:08:10
Ответ #7
  • Пользователь
  • **
  • Сообщений: 68
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сделал такой запрос, он вывел все данные о всех изображениях.
А можно как-то отредактировать запрос, чтобы выводил только обложки товара (а ещё лучше второе изображение) ?
И какого-то одного размера...

Совсем не разбираюсь в sql-запросах :'(
08 Сентября 2016, 11:17:42
Ответ #8
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Воспользовался запросом:
SELECT p.`id_product`, p.`id_category_default`, pl.`name`, pi.`id_image`
FROM `ps_product` p
LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product`)
LEFT JOIN `ps_image` pi ON (p.`id_product` = pi.`id_product`)
Даный запрос выдал только ID картинок, а как получить URL к картинкам?
08 Сентября 2016, 13:59:34
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 13276
  • Репутация: +14556/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$context->link->getImageLink($product.link_rewrite, $product.id_image, 'home_default');
08 Сентября 2016, 14:09:20
Ответ #10
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$context->link->getImageLink($product.link_rewrite, $product.id_image, 'home_default');
То это, как я понимаю, вывод URL на самом сайте. А мне нужно получить все URL вложеных рисунков в БД (phpmyadmin) для дальнейшего експорта в OpenCart. В результате должен получить список (массив): ID-продукта, URL-рисунка.
08 Сентября 2016, 14:16:48
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 13276
  • Репутация: +14556/-0
  • Сообщество PrestaShop
    • Просмотр профиля
URL к изображениям создаются функцией, в бд не храняться. В phpmyadmin их получить нельзя.
Для импорта - экспорта нужно создать модуль или делать это через вебсервис. Структура в prestashop и OpenCart разная. Напрямую перенести данные нельзя.