我必须实现一些反馈客户代码才能在其商店数据库中进行编辑。 代码是:
try {
$Client = new TrustedShop('key');
$Client->SetEmail();
$Client->AddProduct('Name of first purchased product');
$Client->AddProduct('Name of second purchased product');
$Client->Send();
美好而简单。
逻辑是,在几天之后,他们会向我的客户发送反馈,询问他们在商店的购物体验。
我目前已将其嵌入/public_html/app/design/frontend/base/default/template/persistent/checkout/onepage/billing.phtml
使用$Client->SetEmail($this->getAddress()->getEmail());
这里没有问题,但是(并且很大但是:))我如何在结算phtml中检索客户订购的sku? 如果订购包含2或10个skus,我怎样才能将它们发送给我的合作伙伴?
这是实现代码的核心路径,还是在magento中有一个更好的位置,我可以在哪里检索客户电子邮件和订购的skus?
P.S。对不起,如果这是一个愚蠢的过分简单的问题,这里的油门新手:)
答案 0 :(得分:0)
编辑:
“肮脏的黑客”解决方案:
在尚未下订单的billing.phtml
处,客户可以退后一步并退出购物。插入逻辑不是好点。
相反,使用checkout/success.phtml
模板进行黑客攻击。您可以在那里执行以下操作:
<?php
$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
Mage::log($order->getCustomerEmail());
Mage::log($order->getCustomerFirstname());
Mage::log($order->getCustomerLastname());
foreach ($order->getAllVisibleItems() as $item) {
Mage::log($item->getSku());
};
?>
就是这样,你拥有实现自定义逻辑的所有数据。
RECOMMENDED解决方案从这里开始:
据我了解,您必须将客户的电子邮件的订购产品的名称或SKU发送给外部客户。 Magento有一个事件驱动的体系结构,所以在这样的问题中,创建一个Observer来捕获一个事件要好得多。 (link to "how to create Observer")您案例中的事件是“sales_order_place_after”。为此,您需要在模块的配置中,例如。应用程序/代码/本地/ YOUR / MODULE的/ etc / config.xml中:
<events>
<sales_order_place_after>
<observers>
<any_unique_name_of_your_observer>
<type>singleton</type>
<class>yourclass/observer</class>
<method>sendOrderInfo</method>
</any_unique_name_of_your_observer>
</observers>
</sales_order_place_after>
</events>
在你的Observer中,这是app / code / local / YOUR / MODULE / Model / Observer.php:
class YOUR_MODULE_Model_Observer extends Mage_Core_Model_Observer
{
public function sendOrderInfo($observer)
{
#get the order
$order = $observer->getEvent()->getOrder();
Mage::log($order->getBillingAddress());
Mage::log($order->getShippingAddress())
Mage::log($order->getCustomerEmail());
Mage::log($order->getCustomerFirstname());
Mage::log($order->getCustomerLastname());
foreach ($order->getAllVisibleItems() as $item) {
$sku = $item->getSku();
...
这是一个如何检索所需数据的示例,然后您可以在Observer的方法中实现自定义逻辑。
编辑:获取订购商品sku
的更详细示例