Автор Тема: Редактирование письма  (Прочитано 500 раз)

31 Март 2014, 15:57:54
  • Ветеран
  • *****
  • Сообщений: 991
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Возникла необходимость поместить в письмо изображение вместо Артикула см. картинку ниже.
Понятно что надо исправить строку       <th width="15%" style="width:15%; padding: 0.6em 0;">Артикул</th>
в файле   /modules/mailalerts/mailalerts.php     но вот на что, не понятно.

Кто ни будь такое делал?
Не боги горшки обжигают, не зачем им такой хренью заниматься.
31 Март 2014, 17:15:33
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 14085
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
2 варианта:
- ссылка на картинку на вашем сервере
- ссылка на картинку приложенную к письму.
31 Март 2014, 17:18:23
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 991
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Нет должно быть вставлено как логотип.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
01 Апрель 2014, 11:53:51
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 33071
  • Репутация: +26762/-0
    • Просмотр профиля
В модуль добавить выборку изображений для продуктов
public function getImageId($id_product_attribute)
{
  $sql = 'SELECT pai.id_image
      FROM `'._DB_PREFIX_.'product_attribute_image` pai
      WHERE pai.`id_product_attribute` = '.(int)$id_product_attribute;
  return Db::getInstance()->getRow($sql);
}
01 Апрель 2014, 12:38:59
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 991
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Тот код, который Вы предлагаете, в письме не работает.

В файле   /modules/mailalerts/mailalerts.php  вот этот код отвечает за вывод информации в письмо

$itemsTable .=
'<tr style="background-color:'.($key % 2 ? '#DDE2E6' : '#EBECEE').';">
<td style="padding:0.6em 0.4em;">'.$product['product_reference'].'</td>      В этой строке должен находиться код вывода картинки.
<td style="padding:0.6em 0.4em;"><strong>'.$product['product_name'].(isset($product['attributes_small']) ? ' '.$product['attributes_small'] : '').(!empty($customizationText) ? '<br />'.$customizationText : '').'</strong></td>
<td style="padding:0.6em 0.4em; text-align:right;">'.Tools::displayPrice($unit_price, $currency, false).'</td>
<td style="padding:0.6em 0.4em; text-align:center;">'.(int)($product['product_quantity']).'</td>
<td style="padding:0.6em 0.4em; text-align:right;">'.Tools::displayPrice(($unit_price * $product['product_quantity']), $currency, false).'</td>
</tr>';
Не боги горшки обжигают, не зачем им такой хренью заниматься.
01 Апрель 2014, 14:00:26
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 33071
  • Репутация: +26762/-0
    • Просмотр профиля
В коде, что вы приводите, нет возможности показать изображение товара. Поэтому нужно добавить функцию, которая  выберет изображения по ид товара и добавит их в письмо.
Цитировать
<td style="padding:0.6em 0.4em;">'.$product['product_reference'].'</td>      В этой строке должен находиться код вывода картинки.
В этой строке должен быть тег IMG и у атрибута SRC нужно вставить переменую с именем изображения, которое определит и вернет функция  Плюс еще нужно пристегнут эти изображения к письму, если они ссылки на ваш сайт.
01 Апрель 2014, 14:32:03
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 991
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
К сожалению эта строка не позволяет делать конструкции типа

<td style="padding:0.6em 0.4em;">'.<img src="{$link->getImageLink($viewedProduct->link_rewrite, $viewedProduct->cover, 'medium')}"  />'</td>
Не боги горшки обжигают, не зачем им такой хренью заниматься.
01 Апрель 2014, 18:32:57
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 14085
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
$image = Image::getCover((int)$product['product_id']);
...
<td style="padding:0.6em 0.4em;">'.<img src="{$image}"  />'</td>
03 Апрель 2014, 22:23:42
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 991
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.

$image = Image::getCover((int)$product['product_id']);
...
<td style="padding:0.6em 0.4em;">'.<img src="{$image}"  />'</td>

Этот код выводит не картинку, а квадратик с красным крестиком вместо картинки.
Что то по видимому вот здесь неверно,  надо вывести картинку 'medium'
   $image = Image::getCover((int)$product['product_id']);
Не боги горшки обжигают, не зачем им такой хренью заниматься.
20 Апрель 2014, 01:34:39
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 991
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Ну что, больше никто с этим не заморачивался?

Ну что, никто больше не пытался вставить картинку товара (формат medium) в письма оповещения покупателю и администратору?
Не боги горшки обжигают, не зачем им такой хренью заниматься.