Magento получает настраиваемый продукт из простого продукта, даже если продукт конфигурации отключен - PullRequest
17 голосов
/ 07 февраля 2012

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

Сейчас я получаю родительский продукт, подобный этому:

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

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

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

1 Ответ

33 голосов
/ 08 февраля 2012

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

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

...