1

製品のxmlファイルを作成しましたが、問題があります。

Magentoショップでは、単純な製品の数量が0の場合でも、構成可能なすべての製品の在庫があります。この機能は、管理/在庫システムに必要です。在庫のないすべての製品を除外するフィルターセットがあります(以下を参照)。ここで、在庫のある構成可能な製品用のフィルターも必要ですが、単純な製品は在庫がなく、数量は0です。

在庫切れの商品を表示しないようにフィルタリングする

->joinField('is_in_stock',
                'cataloginventory/stock_item',
                'is_in_stock',
                'product_id=entity_id',
                'is_in_stock=1',
                '{{table}}.stock_id=1',
                'left');

        $products->addAttributeToFilter('is_in_stock', array('eq' => 1));

例:

Configurable product: is in stock
Simple 1, simple 2, simple 3: are out of stock

在庫切れまたはqty0のステータスを持つすべての単純な製品で構成可能な製品を除外する必要があります

解決策がわからないので、誰かが答えを持っていれば素晴らしいと思います。

4

1 に答える 1

4

これは、在庫のある単純なものを持たない構成可能なものをすべて見つけることができるスクリプトです。その後、そのIDの配列を使用して、フィルターでそれらを除外できます。

<?php
require_once('app/Mage.php');
umask(0);
Mage::app();

$collectionConfigurable = Mage::getResourceModel('catalog/product_collection')->addAttributeToFilter('type_id', array('eq' => 'configurable'));

$outOfStockConfis = array();
foreach ($collectionConfigurable as $_configurableproduct) {
    $product = Mage::getModel('catalog/product')->load($_configurableproduct->getId());
    if (!$product->getData('is_salable')) {
       $outOfStockConfis[] = $product->getId();
    }
}

次に、これを使用して、コレクションから販売できない構成可能な製品を削除します。

$products->addAttributeToFilter('entity_id',array('nin' => $outOfStockConfis));
于 2013-01-11T15:16:39.500 に答える