1

(Ebay Extension からの) いくつかの注文をリバース エンジニアリングして、彼らが実際に使用したスト​​アを見つけるように依頼されました。

例を具体化するには; さまざまな製品を販売する 1 つの Magento バックエンドから複数のストアを運営しています。これらはすべて、単一のマーチャント アカウントを使用して eBay で販売されています。

だから私がする必要があるのは、eBay ストアに対して割り当てられた状態で注文をロードし、その注文に添付されたアイテムをロードして、そのアイテムが使用されている他のストアを確認することです。そこまでたどり着いたら、管理者の 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;
4

2 に答える 2

5

Mage_Catalog_Model_Product::getStoreIds() メソッドを使用して、これらのストアのリストを取得できます。

$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"
}
于 2013-05-02T18:52:02.737 に答える
1

これを試して

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

$storeId = $item->getStoreId();

これは私にとってはうまくいきます。

于 2012-05-01T15:45:19.313 に答える