2012-02-07 18 views
17

Potrzebuję uzyskać konfigurowalny produkt nadrzędny z prostego produktu, nawet jeśli produkt nadrzędny jest oznaczony jako wyłączony. Muszę również uzyskać status konfigurowalnego produktu (włączony lub wyłączony).Magento dostaje konfigurowalny produkt z prostego produktu, nawet jeśli produkt konfiguracyjny jest wyłączony

Teraz dostaję produkt nadrzędny tak:

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

Działa to doskonale, chyba że produkt konfigurowalny został wyłączony, gdzie tablica $ parentIds jest pusty. Muszę uzyskać konfigurowalny produkt, nawet jeśli jest wyłączony, a także określić, czy konfigurowalny produkt jest włączony/wyłączony.

Każda pomoc zostanie doceniona!

Odpowiedz

31

Zrobiłem trochę kopania i nie mogę odtworzyć twojego problemu.

Gdy wywołuję metodę getParentIdsByChild() na prostym z wyłączoną konfigurowalną, nadal otrzymuję identyfikator produktu nadrzędnego.

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

daje mi:

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

14446 ma status wyłączony. Próbowałem również, jak w magazynie i na stanie.

Patrząc na rzeczywistej funkcji w pliku zasobów

Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable::getParentIdsByChild() 

widzę, że to wygląda w tabeli catalog_product_super_link który nie ma żadnego pola do stanu, a zatem powinny zawsze powrócić identyfikator nadrzędny, jeżeli link do produktu istnieje.

+0

Cześć, wielkie dzięki za wysiłek! Zrobię trochę badań na mój temat, aby zobaczyć, co jeszcze może być przyczyną tego - założyłem, że problem został spowodowany przez wyłączenie produktu, ponieważ wydawało się, że jest to częsty element, ale być może coś przeoczyłem. – gregdev

+0

+1 Z tego powodu mogłem uzyskać zarówno wyłączone, jak i włączone identyfikatory produktów. –

+0

+1 za rozwiązanie mojego problemu, dziękuję! – Blaater

Powiązane problemy