web-dev-qa-db-ja.com

Magentoは、構成製品が無効になっていても、単純な製品から構成可能製品を取得します

親製品が無効としてマークされている場合でも、単純な製品から親の構成可能な製品を取得する必要があります。また、構成可能な製品のステータス(有効または無効)を取得する必要があります。

現在、次のような親製品を入手しています。

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

$ parentIds配列が空である構成可能な製品が無効になっていない限り、これは完全に機能します。構成可能な製品が無効になっている場合でも取得し、構成可能な製品が有効か無効かを判断する必要があります。

何か助けていただければ幸いです!

17
gregdev

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

構成可能が無効になっている単純なものでgetParentIdsByChild()を呼び出すと、親製品IDを取得します。

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

私に与える:

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

14446のステータスは無効です。在庫ありと在庫切れの状態で試してみました。

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

Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable::getParentIdsByChild()

テーブルにあることがわかりますcatalog_product_super_linkステータスのフィールドがないため、製品リンクが存在する場合は常に親IDを返す必要があります。

34
Neil Aitken