0

我必须实现一些反馈客户代码才能注册到他们的商店数据库中。代码是:

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 个 sku,我如何将它们发送给我的合作伙伴?

这是实现代码的正确路径,还是在 magento 中有更好的位置,我可以在其中检索客户电子邮件和订购的 skus?

PS对不起,如果这是一个愚蠢的简单问题,新手在这里踩油门:)

4

1 回答 1

0

编辑:

“肮脏的黑客”解决方案:

billing.phtml尚未下订单时,客户可以退后一步并退出购物。插入逻辑不是好点。相反,请使用checkout/success.phtmlhack 模板。您可以在那里执行以下操作:

<?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());
};
?>

就是这样,您拥有实现自定义逻辑的所有数据。

推荐的解决方案从这里开始:

据我了解,您必须将订购产品的名称或 SKU 通过客户的电子邮件发送给外部客户。Magento 有一个事件驱动的架构,所以在这样的问题中,最好创建一个观察者来捕获事件。(链接到“如何创建观察者”)您的案例中的事件是“sales_order_place_after”。为此,您需要在模块的配置中,例如。应用程序/代码/本地/您的/模块/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订购商品的更详细示例

于 2013-02-20T11:51:17.113 回答