2012-02-07 16 views
17

親製品が無効とマークされていても、シンプルな製品から親の設定可能な製品を入手する必要があります。また、設定可能な製品(有効または無効)のステータスを取得する必要があります。Magentoは、設定製品が無効であってもシンプルな製品から設定可能な製品を入手します

今私はこのような親製品を取得しています:$ parentIds配列が空である場合、構成製品は、無効にされていない限り、

$parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($product->getId()); 
if (isset($parentIds[0])) { 
    $product = Mage::getModel('catalog/product')->load($parentIds[0]); 
} 

これは完璧に動作します。私は設定可能な製品を無効にしても、設定可能な製品が有効か無効かを判断する必要があります。

助けていただけたら幸いです!

答えて

31

少し掘り下げましたが、問題を再現できないようです。

私がgetParentIdsByChild()を設定したシンプルで呼び出すと、私はまだ親製品IDを取得します。

$parentIds = Mage::getResourceSingleton('catalog/product_type_configurable') 
     ->getParentIdsByChild(14412); 
var_dump($parentIds); 

は私を与える:

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

14446が無効の状態があります。私はまた在庫と在庫切れのようにそれを試みました。私はそれがステータスの任意のフィールドを持っていない、とあればそれゆえ、常に、親IDを返す必要があり、テーブルcatalog_product_super_linkに見えることがわかります

Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable::getParentIdsByChild() 

リソースファイルに実際の関数を見てみると

商品リンクが存在します。

+0

こんにちは、ありがとうございます!他に何が起こっているのかを調べるために私は少し研究をするだろう - 問題は製品が無効になっていることが原因で、これは共通の要素だと思われたが、おそらく私は何かを逃したと思った。 – gregdev

+0

+1これにより、無効で有効な製品IDを取得することができました。 –

+0

+1私の問題を解決するために、ありがとう! – Blaater

関連する問題