在magento中实施外部反馈表

时间:2013-02-20 11:21:04

标签: php magento user-feedback

我必须实现一些反馈客户代码才能在其商店数据库中进行编辑。 代码是:

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。对不起,如果这是一个愚蠢的过分简单的问题,这里的油门新手:)

1 个答案:

答案 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的更详细示例