0

Magento 1.9.1 を使用しており、ユーザーが特定の SKU 製品を注文した後にカスタム ログ ファイルに書き込みたいと考えています。モジュールの作成方法を説明するいくつかのチュートリアルに従いましたが、どのような方法でも実行できません。

まず、app/etc/modules/MyName_MyModule.xmlで作成しました

<?xml version="1.0"?>
<config>
  <modules>
    <MyName_MyModule>
      <active>true</active>
      <codePool>local</codePool>
      <version>1.0.0</version>
    </MyName_MyModule>
  </modules>
</config>

管理とモジュールが正しくアクティブ化されていることを確認しました。 詳細を表示

その後、app/code/local/MyName/MyModule/etc/config.xmlで作成しました

<?xml version="1.0"?>
<config>
    <modules>
        <MyName_MyModule>
            <version>1.0.0</version>
        </MyName_MyModule>
    </modules>
    <local>
        <models>
            <mymodule>
                <class>MyName_MyModule_Model</class>
            </mymodule>
        </models>
        <events>
            <checkout_onepage_controller_success_action>
                <observers>
                    <updatelogfile>
                        <class>mymodule/observer</class>
                        <method>updateLogFile</method>
                    </updatelogfile>
                </observers>
            </checkout_onepage_controller_success_action>
        </events>
    </local>
</config>

app/code/local/MyName/MyModule/Model/Observer.php のオブザーバー

<?php
class MyName_MyModule_Model_Observer extends Varien_Event_Observer {

    public function updateLogFile($observer) {

        $order_ids = $observer->getData('order_ids');

        if(isset($order_ids)) {
            foreach ($order_ids as $order_id) :

            $sendToMe = false;
            $order = Mage::getModel('sales/order')->load($order_id);
            if (isset($order)) {

                 $orderItems = $order->getAllItems();
                 foreach ($orderItems as $_item) {

                     $product = Mage::getModel('catalog/product')->load($item->getData('product_id'));
                     $name = $product->getName();
                     $sku = $product->getSku();
                     if($sku == ('MR002-S' || 'MR002-M' || 'MR002-L' || 'MR002-XL' || 'MR002-XXL')) { // Your SKUs
                              $sendToMe = true;
                     }

                 }
             }

             if($sendToMe) {
                 // write order data in custom log file
                 Mage::log("{$name} ({$sku}) ordered", null, 'custom_order.log');
              }

             endforeach;
        }
    }

}

var/log/および chmod 777にcustom_order.logという名前のカスタム ログ ファイルをアップロードしました。

その後、すべての Magento キャッシュをクリアして無効にしましたが、特定の $sku で製品をチェックアウトしようとすると、ログ ファイルが更新されません..

私は再び何をしなければなりませんか?それはすべてとても明確に見えますが、私は何かを見逃していると思います..

4

1 に答える 1