我有一个自定义实用程序任务,允许用户选择一张图像,以附带在magento跑步商店购买礼品卡时发送给收件人的礼品卡通知。在模板中,有各种可用变量,因此您可以自定义发送的电子邮件。但是,为了添加正确的图像,我需要访问礼品卡sku编号,因为我的处理方法是简单地创建许多礼品卡并为每个礼品卡应用单独的图像,然后使用javascript交换sku编号当用户点击图像时。很简单。
在app / code / core / Enterprise / GiftCard / Model / Observer.php文件中,设置了变量:
$templateData = array(
'name' => $item->getProductOptionByCode('giftcard_recipient_name'),
'email' => $item->getProductOptionByCode('giftcard_recipient_email'),
'sender_name_with_email' => $sender,
'sender_name' => $senderName,
'gift_message' => $item->getProductOptionByCode('giftcard_message'),
'giftcards' => $codeList->toHtml(),
'balance' => $balance,
'is_multiple_codes' => 1 < $goodCodes,
'store' => $order->getStore(),
'store_name' => $order->getStore()->getName(), // @deprecated after 1.4.0.0-beta1
'is_redeemable' => $isRedeemable,
);
所以我可以将产品sku添加到这个数组中,它可以在模板系统中使用。问题是,我不知道在哪里追溯到甚至知道如何获得Sku。我假设它在$ item var中以某种方式可用,但magento没有关于这个特定情况的文档,我无法猜测,因为没有测试方法。购买卡时会激活电子邮件脚本,因此我不能单击“发送测试”按钮以查看发送给用户的电子邮件中的内容。预览按钮会解除变量。
有人碰巧知道这个吗?可能类似于$ item-&gt; getSku()
任何输入都有帮助。 感谢
答案 0 :(得分:1)
该代码段来自方法Enterprise_GiftCard_Model_Observer::generateGiftCardAccounts()
,该方法已注册为sales_order_save_after
事件的处理程序。该事件与“新订单”电子邮件具有相同的“订单”对象。您可以通过更改该电子邮件模板并通过从admin中的订单页面重新发送来触发新电子邮件进行试验。
$item->getSku()
几乎肯定是对的。