I'm trying to show product images in the order confirmation email. I edited the PaymentModule.php and added the image variable, and added a table cell for the image in order_conf_product_list.tpl. On testing it doesn't show up. Tried replacing the reference variable value with the image and it works. Is there a reason I can't add the new image variable to the order_conf_product_list.tpl? My code is posted below.
NB: I cleared the cache under PErformance in the backend, deleted class_index.php from the cache folder and checked the cache->smarty->cache folder, which was empty
PaymentModule.php
$product_var_tpl_list = array(); foreach ($order->product_list as $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')}); $product_price = Product::getTaxCalculationMethod() == PS_TAX_EXC ? Tools::ps_round($price, 2) : $price_wt; //PJC show product images in email $id_image = Product::getCover((int)$product['id_product']); if (sizeof($id_image) > 0) { $image = new Image($id_image['id_image']); $image_url = _PS_BASE_URL_._THEME_PROD_DIR_.$image->getExistingImgPath().".jpg"; $image = '<img src="'.$image_url.'" width="100" height="100"/>'; } $product_var_tpl = array( //PJC show product image in email 'image' => $image, 'reference' => $product['reference'], 'name' => $product['name'].(isset($product['attributes']) ? ' - '.$product['attributes'] : ''), 'unit_price' => Tools::displayPrice($product_price, $this->context->currency, false), 'price' => Tools::displayPrice($product_price * $product['quantity'], $this->context->currency, false), 'quantity' => $product['quantity'], 'customization' => array() ); //PJC custom individual product variables $prod_ref = $product['reference']; $prod_name = $product['name'].(isset($product['attributes']) ? ' - '.$product['attributes'] : ''); $prod_unit_price = Tools::displayPrice($product_price, $this->context->currency, false); $prod_price = Tools::displayPrice($product_price * $product['quantity'], $this->context->currency, false); $prod_quantity = $product['quantity']; //!End PJC custom individual product variables $customized_datas = Product::getAllCustomizedDatas((int)$order->id_cart); if (isset($customized_datas[$product['id_product']][$product['id_product_attribute']])) { $product_var_tpl['customization'] = array(); foreach ($customized_datas[$product['id_product']][$product['id_product_attribute']][$order->id_address_delivery] as $customization) { $customization_text = ''; 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_quantity = (int)$product['customization_quantity']; $product_var_tpl['customization'][] = array( 'customization_text' => $customization_text, 'customization_quantity' => $customization_quantity, 'quantity' => Tools::displayPrice($customization_quantity * $product_price, $this->context->currency, false) ); } } $product_var_tpl_list[] = $product_var_tpl; // Check if is not a virutal product for the displaying of shipping if (!$product['is_virtual']) { $virtual_product &= false; } } // end foreach ($products)
order_conf_product_list.tpl
{foreach $list as $product} <tr> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td> <font size="2" face="Open-sans, sans-serif" color="#555454"> {$product['image']} </font> </td> <td width="10"> </td> </tr> </table> </td> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td> <font size="2" face="Open-sans, sans-serif" color="#555454"> {$product['reference']} </font> </td> <td width="10"> </td> </tr> </table> </td> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td> <font size="2" face="Open-sans, sans-serif" color="#555454"> <strong>{$product['name']}</strong> </font> </td> <td width="10"> </td> </tr> </table> </td> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td align="right"> <font size="2" face="Open-sans, sans-serif" color="#555454"> {$product['unit_price']} </font> </td> <td width="10"> </td> </tr> </table> </td> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td align="right"> <font size="2" face="Open-sans, sans-serif" color="#555454"> {$product['quantity']} </font> </td> <td width="10"> </td> </tr> </table> </td> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td align="right"> <font size="2" face="Open-sans, sans-serif" color="#555454"> {$product['price']} </font> </td> <td width="10"> </td> </tr> </table> </td> </tr> {foreach $product['customization'] as $customization} <tr> <td colspan="2" style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td> <font size="2" face="Open-sans, sans-serif" color="#555454"> <strong>{$product['name']}</strong><br> {$customization['customization_text']} </font> </td> <td width="10"> </td> </tr> </table> </td> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td align="right"> <font size="2" face="Open-sans, sans-serif" color="#555454"> {$product['unit_price']} </font> </td> <td width="10"> </td> </tr> </table> </td> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td align="right"> <font size="2" face="Open-sans, sans-serif" color="#555454"> {$customization['customization_quantity']} </font> </td> <td width="10"> </td> </tr> </table> </td> <td style="border:1px solid #D6D4D4;"> <table class="table"> <tr> <td width="10"> </td> <td align="right"> <font size="2" face="Open-sans, sans-serif" color="#555454"> {$customization['quantity']} </font> </td> <td width="10"> </td> </tr> </table> </td> </tr> {/foreach} {/foreach}