Подтвердить что ты не робот

Magento получает настраиваемый продукт от простого продукта, даже если файл конфигурации отключен

Мне нужно получить родительский настраиваемый продукт из простого продукта, даже если родительский продукт помечен как отключенный. Мне также нужно получить статус настраиваемого продукта (включен или отключен).

Сейчас я получаю родительский продукт следующим образом:

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

Это работает отлично, если конфигурируемый продукт не отключен, где массив $parentIds пуст. Мне нужно получить настраиваемый продукт, даже если он отключен, а также определить, включен ли/отключен настраиваемый продукт.

Любая помощь будет оценена!

4b9b3361

Ответ 1

Я немного поработал, и я не могу воспроизвести вашу проблему.

Когда я вызываю getParentIdsByChild() на простой с отключенной конфигурацией, я все равно получаю идентификатор родительского продукта.

$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, которая не имеет никаких полей для статуса и поэтому должна всегда возвращать родительский идентификатор, если существует ссылка продукта.