Автор Тема: Глупый вопрос по импорту картинок товаров  (Прочитано 9248 раз)

01 Июль 2012, 19:11:06
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В какой всё-таки каталог сайта надо копировать рисунки. И как писать URL в csv файле????
Проверяю на локальном хосте.
Магазин shop.my
Копирую картинуи в папку /upload/
Пишу URL  http://shop.my/upload/картинка1.jpg (как описано в документации) и получаю ошибку 403.
02 Июль 2012, 12:24:48
Ответ #1
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Какие картинки вы хотите перенести ? Для разных картинок разные папки. Если переносите с локального сервера, то перенесите полностью папку /img/..
для темы : /themes/default/img/...
для категорий : /img/c/..
для продуктов : /img/p/..

Примеры cvs файлов можно увидеть в :
Панель управления > Инстументы > Импорт 
02 Июль 2012, 21:13:16
Ответ #2
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
извините, может что-то не понимаю.
 но где там примеры?
там только перечень доступных полей...
А мне увидеть хотя бы пример заполнения csv с импортом картинок....
Может поделетесь???? ;)
02 Июль 2012, 22:01:13
Ответ #3
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Пример файла products_import.csv
id;Active (0/1);Name*;Categories (x,y,z,...);Price tax excl. Or Price tax excl;Tax rules id;Wholesale price;On sale (0/1);Discount amount;Discount percent;Discount from (yyy-mm-dd);Discount to (yyy-mm-dd);Reference #;Supplier reference #;Supplier;Manufacturer;EAN13;UPC;Ecotax;Weight;Quantity;Short description;Description;Tags (x,y,z,...);Meta-title;Meta-keywords;Meta-description;URL rewritten;Text when in-stock;Text if back-order allowed;Image URLs (x,y,z,...);Feature;Only available online
1;1;iPod Nano;Home, iPods;49;1;;1;;;;;92458844;54778855;AppleStore;Apple Computer, Inc;;;;0.5;800;New design. New features. Now i….;Curved ahead of the curve. For those about to rock, we give you nine amazing colors. But that's only part of the story. Feel the curved, all-aluminum and glass de...;apple, ipod, nano;;;;ipod-nano;In stock;;http://youdomain.com/img.jpg, http://yourdomain.com/img1.jpg;;
2;1;iPod shuffle;Home, iPods;66.05;1;79;1;;;;;92458845;54778855;AppleStore;Apple Computer, Inc;;;;0;500;iPod shuffle, the world’s most wearabl….;;ipod, shuffle;;;;ipod-shuffle;In stock;;http://youdomain.com/img25.jpg, http://yourdomain.com/img30.jpg;;
03 Июль 2012, 20:29:29
Ответ #4
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
чтобы картинка считалась по адресу http://youdomain.com/img25.jpg она должна быть первоначально скопирована  в корень сайта?
04 Июль 2012, 14:24:57
Ответ #5
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Цитировать
Если переносите с локального сервера, то перенесите полностью папку /img/..

Вы также можете указать новую папку.
Панель управления > Настройки > Изображения
Перемещение изображений
04 Июль 2012, 15:00:40
Ответ #6
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Виктор, не поможете мне решить проблему с отображением картинок товаров в prestashop после парсинга товаров с Яндекс маркета.
Все товары на сайте отображаются, категории отображения товаров верные. Я никак не пойму, как нужно правильно указывать папки и подпапки при сохранении картинок, а также имена самих картинок.
Обратил внимание, что у моих товаров(собранных парсером) отображаются  картинки из тестового набора prestashop(айподы, макбуки), причем отображаемая картинка берется из папки, совпадающей с именем картинки, если номер картинки двухзначный, то картинка берется из папки совпадающей с первой цифрой картинки и подпапки совпадающей со 2-й цифрой в имени картинки. Те картинка с id_image = 15  из таблицы ps_image_lang берется из папки 1 и подпапки 5 с именем 15.jpg. Не ужели структура выбираемых картинок для отображения именно такая? Как тогда быть с 4-х значными цифрами? Да и при парсинге очень не удобно сохранять так картинки!
При парсинге я сохранял картинки с именем id_image по порядку таблицы ps_image_lang в папку с id категории из ps_category.
05 Июль 2012, 09:49:27
Ответ #7
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Можно сделать так, сохранять картинки в папку
/upload/imgУказывайте путь к картинки из этой папке.
05 Июль 2012, 14:36:51
Ответ #8
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, разобрался. На локальной машине просто были проблеммы с правами на файлы картинок.
05 Июль 2012, 17:49:04
Ответ #9
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно сделать так, сохранять картинки в папку
/upload/imgУказывайте путь к картинки из этой папке.
Виктор, это ответ на мой вопрос?
06 Июль 2012, 10:24:03
Ответ #10
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Цитировать
Виктор, это ответ на мой вопрос?
В prestashop можно изменять папки для картинок, см. выше.

Если не хотите использовать эту возможность, то посмотрите как формируется путь к картинке в стандартом варианте:
/***/classes/Image.php***/
...
_PS_PROD_IMG_DIR_.$this->id_product.'-'.$this->id.'.'.$this->image_format)
...

Для разных версий prestashop есть различия в классе Image.
06 Июль 2012, 11:29:14
Ответ #11
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Есть две системы хранения картинок, новая и старая. В классе Image можно посмотреть функциии совместимости.
Путь к картинке начинается с общей папке - img.
Потом добавляется папка секции, например, для продуктов - p.
Потом папка с ид товара и папка с ид картинки.
В конечную папку сохраняются картинки, в названии учитываются ид товара, ид картики, размеры (из настроек) и формат (из настроек).
Например, для товара с ид 3 и картинки с ид 8
/img/p/3/8/38-large.jpg
/img/p/3/8/38-small.jpg
и т.д.
Возможен вариант когда картинки сохраняются в папке /img/p/.
$image_path = $image_folder . '/' . $row['id_product'].'-' . $row['id_image']. '-' . $image_size . '.jpg';Тогда название будет 3-8-large.jpg.

При парсинге, используя веб сервис, разные папки для картинок:
  • /api/images/general
  • /api/images/products
  • /api/images/categories
  • /api/images/manufacturers
  • /api/images/suppliers
  • /api/images/stores
Потом также учитываются разные размеры и формат.
Например, для товара с ид 3 и картинки с ид 8
/api/images/products/3/8

После добавления картинок, смены папки и т.д. Нужно перегенерировать изображения.
Cоздание интернет сайтов Webstudio UwK
06 Июль 2012, 16:38:42
Ответ #12
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Виталий, обязательно ли создавать картинки с именами 39-large.jpg или достаточно картинки с номером 39.jpg?
07 Июль 2012, 13:25:27
Ответ #13
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Не обязательно, если не используете этот формат.
Обязательно нужно указать основную картинку.
Cоздание интернет сайтов Webstudio UwK
09 Июль 2012, 16:30:53
Ответ #14
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Никак не решается у меня проблема с отображением картинок. Использую Prestashop версии 1.4.4.0.
Вот кусок кода файла Link.php:
public function getImageLink($name, $ids, $type = NULL)
{
global $protocol_content;

// legacy mode or default image
if ((Configuration::get('PS_LEGACY_IMAGES')
&& (file_exists(_PS_PROD_IMG_DIR_.$ids.($type ? '-'.$type : '').'.jpg')))
|| strpos($ids, 'default') !== false)
{
if ($this->allow == 1)
$uri_path = __PS_BASE_URI__.$ids.($type ? '-'.$type : '').'/'.$name.'.jpg';
else
$uri_path = _THEME_PROD_DIR_.$ids.($type ? '-'.$type : '').'.jpg';
}else
{
// if ids if of the form id_product-id_image, we want to extract the id_image part
$split_ids = explode('-', $ids);
$id_image = (isset($split_ids[1]) ? $split_ids[1] : $split_ids[0]);

if ($this->allow == 1)
$uri_path = __PS_BASE_URI__.$id_image.($type ? '-'.$type : '').'/'.$name.'.jpg';
else
$uri_path = _THEME_PROD_DIR_.Image::getImgFolderStatic($id_image).$id_image.($type ? '-'.$type : '').'.jpg';
}

return $protocol_content.Tools::getMediaServer($uri_path).$uri_path;
}
В парсере пути и названия использую указанные Виталием в первом варианте 11 сообщения(вообще вариаций море перепробовал).
Перегенерация изображений не срабатывает, выдает ошибку: "Не удается записать изображение (products) директория с изображениями. Пожалуйста, проверьте права на запись."
Где я допускаю ошибку?