回答:
組み込みのRSSフィードの他に、実際に自分にメールを送信する方法は2つあります。実際の質問に対する実際の回答です。
拡張機能を購入する:
私はこの拡張機能の経験はありませんが、StackOverflowで言及されました:
http://www.magentocommerce.com/magento-connect/irzoo-lowstockreport-1278.html
自分でやれ:
cataloginventory/stock_item
saveイベントで- のオブザーバーを作成します。すべてのモデルには、によって提供される保存イベントがありMage_Core_Model_Abstract
ます。保存すると、オブザーバーが呼び出され、その時点での在庫レベルを調べることができます。
<global>
<events>
<cataloginventory_stock_item_save_after>
<observers>
<mymodule_stock_item_save>
<type>singleton</type>
<class>yourmodel/observer</class>
<method>lowStockReport</method>
</mymodule_stock_item_save>
</observers>
</cataloginventory_stock_item_save_after>
</events>
</global>
Observer.php:
<?php
class MyCompany_MyModule_Model_Observer
{
public function lowStockReport($observer)
{
$event = $observer->getEvent();
$stockItem = $event->getItem();
if($stockItem->getQty() < $stockItem->getNotifyStockQty()){
//stock is lower than the notify amount, send email
$product = Mage::getModel('catalog/product')->load($stockItem->getProductId());
$body = "{$product->getName()} :: {$product->getSku()} just Ran out of stock:\n\n";
$body .= "Current Qty: {$stockItem->getQty()}\n";
$body .= "Low Stock Date: {$stockItem->getLowStockDate()}\n";
$mail = new Zend_Mail();
$mail->setType(Zend_Mime::MULTIPART_RELATED);
$mail->setBodyHtml($body);
$mail->setFrom('lowstock@yourwebsite.com', 'Low Stock Notifier');
$mail->addTo('youremail@gmail.com', 'Your Name Here');
$mail->setSubject('[Notice] An Item Has Gone Out of Stock');
$mail->send();
}
}
}
これにより、在庫アイテムモデルが保存され、手持ちの数量が[管理]> [カタログ]> [製品の管理]で設定された通知数量よりも少なくなるたびに、電子メールが送信されます。
お役に立てば幸いです。
cataloginventory_stock_item_save_after
少なくとも最近のMagentoバージョンでは、イベントは購入時にトリガーされません。代替ソリューションについてはこちらをご覧ください:magento.stackexchange.com/questions/25207/...
古い質問ですが、本当に答えられたとは思えません。カスタムモジュールのconfig.xmlファイルにとcronjobを追加し、コレクションを作成して(以下のように)電子メールに含める必要のある製品を特定し、結果を電子メールで送信します。
$date = strtotime('yesterday');
$collection = Mage::getModel('cataloginventory/stock_item')
->getCollection()
->addFieldToFilter('backorders', 0)
->addFieldToFilter('is_in_stock', 0)
->addFieldToFilter('manage_stock', 1)
->addFieldToFilter('low_stock_date', array('date' => true, 'from' => date("Y-m-d", $date)))
->getAllIds();
在庫にネイティブRSSフィードを使用する-前日の株価との差分を実行する(つまり、変更されたもののみを見つける)-結果に基づいてメールを送信することができます。
非常にシンプルな〜10行のPHPスクリプトになります。
適切な拡張としてより洗練されたものが必要な場合は、オブザーバーをorder_save
や株価指数に追加する必要があります。つまり、値を0未満にキャプチャして、それらの値に基づいて要約を作成できるようにする必要があります。