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 が含まれている場合、どうすればそれらをパートナーに送ることができますか?

これはコードを実装する正しいパスですか、それとも顧客の電子メールと注文した sku の両方を取得できるより良い場所が magento にありますか?

PSこれがばかげて単純な質問である場合は申し訳ありませんが、スロットルの初心者です:)

4

1 に答える 1

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

これで、カスタム ロジックを実装するためのすべてのデータが揃いました。

推奨される解決策はここから始まります:

私が理解しているように、注文した製品の名前または 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>

app/code/local/YOUR/MODULE/Model/Observer.php にある Observer の場合:

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 のメソッド内にカスタム ロジックを実装する方法の例です。

skuEDIT:注文されたアイテムを取得するためのより詳細な例

于 2013-02-20T11:51:17.113 に答える