0

すべての製品を在庫レベルで更新した後、構成可能なすべての製品の在庫を設定する最善の方法は何ですか? 最良の方法は、サーバーへの負荷を最小限に抑えて最速を意味することです。

編集:

プログラムでこれを行う方法を言うのを忘れていました!

4

2 に答える 2

6

あなたのCatalog > Manage Products見解では:

グリッドのドロップダウンから[構成可能]を選択します。

グリッドビュー構成選択を注文する

グリッドテーブルヘッダーの[すべて選択]をクリックします。

すべて選択

グリッド上部のドロップダウンメニューから[属性の更新]を選択し、[送信]をクリックします。

ここに画像の説明を入力してください

最後に、次の画面から大量の在庫更新を実行できます。画面の左側にある[在庫]タブをクリックし、すべてを「在庫あり」および「有効」に設定します。

ここに画像の説明を入力してください

于 2012-10-30T17:00:02.077 に答える
3

バージョンによっては、管理インターフェースから、設定可能なタイプのすべての製品を選択してから、Actions -> Update Attributes -> Inventory.

例 (最後のオプションを参照): http://i.imgur.com/x03YN.png

それは、それか、まったく同じことを行う可能性が高い独自のスクリプトを作成することです(validate呼び出しなどを忘れて効果が低下しない場合、天国は、孤立したDBエントリを誤って残し、世界に導くことを禁じます負荷/時間および有効性の観点から。正直なところ、構成可能な製品の数が数万に及ぶ場合、またはサーバーの仕様が非常に貧弱な場合を除き、非常に長い時間がかかるとは想像できません。

編集:
これにより、プログラムで実行できるようになります。ただし、「Stock Item」の Magentos 機能は、その存続期間中に大幅に変更されているため、最初にバージョンでテストして、機能することを確認してください。

// Get all products with a type_id of configurable                                                                                                                                                                                          
$configurable_products = 
Mage::getModel('catalog/product')->getCollection()                                                                                                                                                                                                                           
                                 ->addAttributeToFilter('type_id', 'configurable');                                                                                                                                                                                          


foreach ($configurable_products as $configurable_product) {                                                                                                                                                                                 
  $configurable_product->load();                                                                                                                                                                                                            

  // Set is in stock attribute to 1                                                                                                                                                                                                         
  $configurable_product->getStockItem()->setIsInStock(1);                                                                                                                                                                                   

  try {                                                                                                                                                                                                                                     
    $configurable_product->getStockItem()->save();                                                                                                                                                                                                          
  } catch (Exception $e) {                                                                                                                                                                                                                  
    // Failed to save for some reason...                                                                                                                                                                                                    
  }                                                                                                                                                                                                                                         
}
于 2012-10-30T16:59:10.603 に答える