簡體   English   中英

Magento 1.9.1 - 結帳特定 SKU 產品后更新日志文件的自定義模塊

[英]Magento 1.9.1 - Custom Module to update log file after checkout specific SKU product

我正在使用 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 簽出產品,我的日志文件不會更新..

我必須再次做什么? 這一切似乎都很清楚,但我想我錯過了一些東西..

更改此文件如下

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM