似たようなものを開発しました。「配達済み」(完了ステータス) の最後の注文をチェックする (1 日 1 回) cron によってアクティブ化されるモジュールを作成しました。
cron magento モジュールで関数を実行するには、config.xml に追加します。
<crontab>
<jobs>
<myModule_myFunction>
<schedule><cron_expr>*/60 * * * *</cron_expr></schedule>
<run><model>emailtracker/cron::myFunction</model></run>
</myModule_myFunction>
</jobs>
</crontab>
物資を注文するには、次のコード スニペットを使用できます。
$orders = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('status', 'complete')
->addAttributeToFilter('created_at', array('gteq' => $dataForFilter));
私が作成した注文のコレクションであることに注意してください。すでに行われたすべての注文を取得しないように、日付でフィルターをかけます。
追跡メール配信を受け取る可能性のある最近の完全な注文のコレクションを使用して、重要な注文を実際に処理できます。
コレクションで実行する foreach を作成し、そのループ内で追跡番号を取得します。
foreach($orders as $order) {
$trackings = Mage::getResourceModel('sales/order_shipment_track_collection')
->setOrderFilter($order)
->getData();
for($i=0;$i<count($trackings);$i++) {
$trackingNumber = $trackings[$i]['track_number'];
//Make your php magic here
}
}
この時点から、この情報を好きなように操作できます。API 経由で追跡番号のステータスを確認し、その配送サービスがメールを送信する関数を作成するか、想像することができます。
重要: Magento cron がアクティブかどうかを必ず確認してください。注:Magento 1.6.1.0で行いました