如何在Magento交易邮件中添加产品自定义属性barcode
在Magento交易邮件订单商品中显示自定义Barcode属性
问题背景
需要在交易邮件的SKU列后添加自定义属性barcode,涉及文件路径:public_html/app/design/frontend/base/default/template/email/order/items/order/default.phtml,当前相关代码片段如下:
<td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $this->escapeHtml($this->getSku($_item)) ?></td> <td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;">barcode echo goes here</td> <td align="center" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $_item->getQtyOrdered()*1 ?> x<!--</td>-->
解决方案
替换占位文本,通过产品模型读取barcode属性值,修改后的代码如下:
<td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $this->escapeHtml($this->getSku($_item)) ?></td> <td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"> <?php // 获取订单商品关联的产品对象 $_product = $_item->getProduct(); // 读取barcode属性值,为空时显示默认文本 $barcode = $_product->getBarcode(); // 或 $_product->getData('barcode') echo $this->escapeHtml($barcode ?: '无条码'); ?> </td> <td align="center" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $_item->getQtyOrdered()*1 ?> x<!--</td>-->
关键说明
- 订单商品对象
$_item本身不存储产品自定义属性,需通过getProduct()关联到产品模型读取 getBarcode()是属性对应的魔术方法,和getData('barcode')功能等价,可任选其一- 添加空值判断避免空白显示,同时用
escapeHtml()处理输出,防范XSS风险
内容的提问来源于stack exchange,提问作者user3891303
相关产品推荐
相关产品推荐

