2012-02-07 19 views
17

Ana ürün devre dışı olarak işaretlenmiş olsa bile, ana yapılandırılabilir ürünü basit bir üründen almam gerekir. Ayrıca yapılandırılabilir ürünün durumunu (etkin veya devre dışı) almam gerekiyor.Yapılandırma ürünü devre dışı bırakılmış olsa bile basit bir üründen yapılandırılabilir ürün alabilirsiniz.

Şu anda böyle ebeveyn ürünü alıyorum:

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

Bu $ parentIds dizisi boş olduğu yapılandırılabilir bir ürün devre dışı bırakıldı sürece mükemmel çalışıyor. Yapılandırılabilir ürünü devre dışı bırakılmış olsa bile almam ve ayrıca yapılandırılabilir ürünün etkin/devre dışı olup olmadığını belirlemem gerekiyor.

Herhangi bir yardım için teşekkür ederiz!

cevap

31

Biraz araştırma yaptım ve sorununuzu yeniden üretemiyorum.

GetParentIdsByChild() öğesini devre dışı bırakılabilir yapılandırılabilir bir ürünle çağırdığımda, hala ana ürün kimliğini alıyorum.

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

beni verir:

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

14446 engelli bir duruma sahiptir. Bunu stokta ve stokta da denedim. Ben her zaman üst kimliği dönmelidir nedenle statü için tüm alanları var ve yok masanın catalog_product_super_link görünüyor görebilirsiniz

Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable::getParentIdsByChild() 

kaynak dosya üzerinde fiili işlevine baktığımızda

, eğer Ürün linki var.

+0

Merhaba, çabalarınız için çok teşekkürler! Buna başka ne neden olabileceğini görmek için biraz araştırma yapacağım - problemin ürünün devre dışı bırakılmasından kaynaklandığını düşünmüştüm, çünkü bu ortak bir unsur gibi görünüyordu, ama belki de bir şeyleri özledim. – gregdev

+0

+1 Hem devre dışı hem de etkinleştirilmiş ürün kimliklerini buradan alabildim. Sorunumu çözmek için –

+0

+1, teşekkürler! – Blaater

İlgili konular