2016-04-01 12 views
0

完成した注文情報をCSVファイルに書き出す拡張機能をビルドしています。エクスポートのオーダーとアイテム情報に正常にアクセスできましたが、プロモーションデータにアクセスする際に問題が発生しています。Magento:カタログとカートのルールデータへのアクセス

エクスポートでその注文に適用されるプロモーションデータ(カタログとカートのルール)を含めることを検討しています。具体的には、ルールID、名前、説明、コード、特定の注文のリストに適用されたドル額にアクセスしようとしています。

エクステンションのプロモーションデータにはどうすればアクセスできますか?

それが助け場合は、ここで私は現在、私の拡張機能(日付フレームによる予選)での注文/項目データをアクセスしていますがどのようである:あなたが提供することができます任意の助けを事前に

$rows = array(); // array to hold data that will be exported to CSV 
$read = Mage::getSingleton('core/resource')->getConnection('core_read'); 
$orders = $read->query("SELECT entity_id FROM sales_flat_order WHERE created_at >= '$from' AND created_at < '$today'"); 
while ($row = $orders->fetch()) { 
    $order = Mage::getModel('sales/order')->load($row['entity_id']); 
    $order_items = $read->query("SELECT item_id FROM sales_flat_order_item WHERE order_id={$order->getId()}"); 
    while ($item_row = $order_items->fetch()) { 
     $item = Mage::getModel('sales/order_item')->load($item_row['item_id']); 
     $rows[] = array(
     $order->getRealOrderId(), 
     $order->getCreatedAt(), 
     $item->getSky(), 
     $item->getQtyOrdered(), 
     .....); 
    ); // end item loop 
); // end order loop  

おかげで、

- マーク

答えて

0

私はこの質問が過去の別の質問で答えられたと思います。あなたは...元の質問へのリンクを見つけて、ここにかかわらず、その答えからMagento - get price rules from order

に答えることができ

//The order I want to check 
$order_id = 859; 

//Get the list of items for your order 
$items = Mage::getModel('sales/order_item') 
->getCollection() 
->addFilter('order_id',array('eq'=>$order_id)); 

//loop through each item 
foreach($items as $item){ 

    //if the item has not had a rule applied to it skip it 
    if($item->getAppliedRuleIds() == '')continue; 

    /* 
    * I cant remember in the database they might be comma separated or space if multiple rules were applied 
    * the getAppliedRuleIds() function is the one you want 
    */ 
    foreach(explode(",",$item->getAppliedRuleIds()) as $ruleID){   

     //Load the rule object 
     $rule = Mage::getModel('catalogrule/rule')->load($ruleID); 

     // Throw out some information like the rule name what product it was applied to 

     echo "<p>".$item->getSku()." had rule ".$rule->getName()."(".$item->getAppliedRuleIds().") applied </p>"; 
    } 

} 
関連する問題