Prestashop : image produit dans le mail de confirmation
Bonjour
pour inaugurer mon nouveau site voici un petit tuto : remplacer la zone référence par l’image du produit dans le mail de confirmation de commande.
Prestashop 1.5
pas testé sur 1.6 mais à priori ça doit fonctionner aussi : à tester donc
dans classes/PaymentModule.php
function validateOrder (override vivement conseillé)
ligne 352 foreach ($order->product_list as $key => $product)
insérer avant $customization_quantity = 0;
global $link;
$img_link = Product::getCover((int)($product['id_product']));
if($img_link > 0){
$img_link = Context::getContext()->link->getImageLink($product['link_rewrite'], $img_link['id_image'], 'small');
ensuite dans le td du tableau
<td style="padding: 0.6em 0.4em;width: 15%;"><img src="'.$img_link.'" alt="'.$product['name'].'" /></td>
la portion du code
foreach ($order->product_list as $key => $product)
{
$price = Product::getPriceStatic((int)$product['id_product'], false, ($product['id_product_attribute'] ? (int)$product['id_product_attribute'] : null), 6, null, false, true, $product['cart_quantity'], false, (int)$order->id_customer, (int)$order->id_cart, (int)$order->{Configuration::get('PS_TAX_ADDRESS_TYPE')});
$price_wt = Product::getPriceStatic((int)$product['id_product'], true, ($product['id_product_attribute'] ? (int)$product['id_product_attribute'] : null), 2, null, false, true, $product['cart_quantity'], false, (int)$order->id_customer, (int)$order->id_cart, (int)$order->{Configuration::get('PS_TAX_ADDRESS_TYPE')});
// remplace la référence par l'image du produit dans les mails html
// $link en global
global $link;
$img_link = Product::getCover((int)($product['id_product']));
if($img_link > 0){
$img_link = Context::getContext()->link->getImageLink($product['link_rewrite'], $img_link['id_image'], 'small');
}
// la suite dans le foreach
$customization_quantity = 0;
$customized_datas = Product::getAllCustomizedDatas((int)$order->id_cart);
if (isset($customized_datas[$product['id_product']][$product['id_product_attribute']]))
{
$customization_text = '';
foreach ($customized_datas[$product['id_product']][$product['id_product_attribute']][$order->id_address_delivery] as $customization) {
if (isset($customization['datas'][Product::CUSTOMIZE_TEXTFIELD]))
foreach ($customization['datas'][Product::CUSTOMIZE_TEXTFIELD] as $text)
$customization_text .= $text['name'].': '.$text['value'].'<br />';
if (isset($customization['datas'][Product::CUSTOMIZE_FILE]))
$customization_text .= sprintf(Tools::displayError('%d image(s)'), count($customization['datas'][Product::CUSTOMIZE_FILE])).'<br />';
$customization_text .= '---<br />';
}
$customization_text = rtrim($customization_text, '---<br />');
$customization_quantity = (int)$product['customization_quantity'];
// <img src="'.$img_link.'" /> à la place de $product['reference']
$products_list .='<tr style="background-color: '.($key % 2 ? '#f8f8f8' : '#ffffff').';border-left:1px solid #D6D4D4;border-right:1px solid #D6D4D4;">
<td style="padding: 0.6em 0.4em;width: 15%;"><img src="'.$img_link.'" alt="'.$product['name'].'" /></td>
<td style="padding: 0.6em 0.4em;width: 30%;font-family: Arial;"><strong>'.$product['name'].(isset($product['attributes']) ? ' - '.$product['attributes'] : '').' - '.Tools::displayError('Customized').(!empty($customization_text) ? ' - '.$customization_text : '').'</strong></td>
<td style="padding: 0.6em 0.4em; width: 20%;font-family: Arial;">'.Tools::displayPrice(Product::getTaxCalculationMethod() == PS_TAX_EXC ? Tools::ps_round($price, 2) : $price_wt, $this->context->currency, false).'</td>
<td style="padding: 0.6em 0.4em; width: 15%;font-family: Arial;">'.$customization_quantity.'</td>
<td style="padding: 0.6em 0.4em; width: 20%;font-family: Arial;">'.Tools::displayPrice($customization_quantity * (Product::getTaxCalculationMethod() == PS_TAX_EXC ? Tools::ps_round($price, 2) : $price_wt), $this->context->currency, false).'</td>
</tr>';
}
if (!$customization_quantity || (int)$product['cart_quantity'] > $customization_quantity)
$products_list .='<tr style="background-color: '.($key % 2 ? '#f8f8f8' : '#ffffff').';border-left:1px solid #D6D4D4;border-right:1px solid #D6D4D4;">
<td style="padding: 0.6em 0.4em;width: 15%;font-family: Arial;"><img src="'.$img_link.'" alt="'.$product['name'].'" /></td>
<td style="padding: 0.6em 0.4em;width: 30%;font-family: Arial;"><strong>'.$product['name'].(isset($product['attributes']) ? ' - '.$product['attributes'] : '').'</strong></td>
<td style="padding: 0.6em 0.4em; width: 20%;font-family: Arial;">'.Tools::displayPrice(Product::getTaxCalculationMethod((int)$this->context->customer->id) == PS_TAX_EXC ? Tools::ps_round($price, 2) : $price_wt, $this->context->currency, false).'</td>
<td style="padding: 0.6em 0.4em; width: 15%;font-family: Arial;">'.((int)$product['cart_quantity'] - $customization_quantity).'</td>
<td style="padding: 0.6em 0.4em; width: 20%;font-family: Arial;">'.Tools::displayPrice(((int)$product['cart_quantity'] - $customization_quantity) * (Product::getTaxCalculationMethod() == PS_TAX_EXC ? Tools::ps_round($price, 2) : $price_wt), $this->context->currency, false).'</td>
</tr>';
etc...