2012-05-01 2 views
1

私は、(Ebay Extensionから)いくつかの注文をリバースエンジニアリングして、実際にどの店舗を使用しているかを確認するよう依頼されました。Magento製品をロードし、それに割り当てられた店舗を見つけるには

例を説明します。私たちは様々な製品を販売する1つのMagentoバックエンドからいくつかの店舗を運営しています。これらはすべて、単一の商人アカウントを使用してeBayで販売されています。

それで、eBayストアに割り当てられている注文をロードし、その注文に添付されているアイテムをロードし、そのアイテムが使用されている他のストアを確認します。 これまでのところ、admin storeIDと、私が探している店舗に残るeBay storeIDを単に除外することができます。

これは私がこれまで持っているものです。

foreach($collection->getItems() as $order): 
    // need to do this to load correct order information 
    $order = Mage::getModel('sales/order')->loadByIncrementID($order->getIncrementId()); 
    $items = $order->getItemsCollection(); 
    foreach($items as $item) { 
     // need to do this to get the actual item, not the item on the order 
     $item = Mage::getModel('catalog/product')->load($item->getItemId()); 
     // do something to get the other store ids 
    } 
endforeach; 

答えて

1

が、これは私のためだけで正常に動作し、この

$item = Mage::getModel('catalog/product')->load($item->getItemId()); 

$storeId = $item->getStoreId(); 

を試してみてください。

あなたはこれらの店舗のリストを取得するMage_Catalog_Model_Product :: getStoreIds()メソッドを使用することができます
+0

を私はそれを試してみましたが、それは管理STORであるstoreId 1を返します。 eid。 アイテムが使用されている_all_ストアIDを返す必要があります。 私はそれに対してクエリを行うことができましたが、いくつかのモデルをロードするために必要なすべてのオーバーヘッドをスクリプトにロードする必要はありません。 – deepmark

4

$item = Mage::getModel('catalog/product')->load($item->getItemId()); 
$storeIds = $item->getStoreIds(); 

次に$ storeIdsは、店舗IDの配列を含んでいます、そしてあなたがそれをダンプする場合:

var_dump($storeIds) 

次の結果を取得する必要があります

array(3) { 
    [0]=> 
    string(1) "1" 
    [1]=> 
    string(1) "3" 
    [2]=> 
    string(1) "5" 
}