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 で製品をチェックアウトしようとすると、ログ ファイルが更新されません..
私は再び何をしなければなりませんか?それはすべてとても明確に見えますが、私は何かを見逃していると思います..