2012-02-07 6 views
17

Tôi cần lấy sản phẩm có thể định cấu hình gốc từ một sản phẩm đơn giản, ngay cả khi sản phẩm gốc được đánh dấu là bị tắt. Tôi cũng cần nhận trạng thái của sản phẩm có thể định cấu hình (đã bật hoặc tắt).Magento nhận sản phẩm có thể định cấu hình từ sản phẩm đơn giản ngay cả khi sản phẩm cấu hình bị vô hiệu hóa

Ngay bây giờ tôi nhận được sản phẩm mẹ như thế này:

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

này hoạt động hoàn hảo trừ khi sản phẩm cấu hình đã bị vô hiệu, nơi các mảng $ parentIds trống. Tôi cần lấy sản phẩm có thể định cấu hình ngay cả khi sản phẩm bị tắt và cũng xác định xem sản phẩm có thể định cấu hình được bật/tắt hay không.

Mọi trợ giúp sẽ được đánh giá cao!

Trả lời

31

Tôi đã thực hiện một chút khám phá xung quanh và tôi dường như không thể tái tạo sự cố của bạn.

Khi tôi gọi getParentIdsByChild() trên một đơn giản với cấu hình bị vô hiệu hóa, tôi vẫn nhận được ID sản phẩm gốc.

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

Cung cấp cho tôi:

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

14446 có một trạng thái của người tàn tật. Tôi cũng đã thử nó như trong kho và hết hàng.

Nhìn vào chức năng thực tế trên các tập tin tài nguyên

Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable::getParentIdsByChild() 

Tôi có thể thấy rằng nó trông giống trong bảng catalog_product_super_link mà không có bất kỳ lĩnh vực cho tình trạng, và do đó nên luôn luôn trả lại ID phụ huynh, nếu liên kết sản phẩm tồn tại.

+0

Xin chào, cảm ơn rất nhiều vì nỗ lực của bạn! Tôi sẽ làm một ít nghiên cứu về kết thúc của tôi để xem những gì khác có thể gây ra điều này - tôi cho rằng vấn đề là do sản phẩm bị vô hiệu hóa vì đây dường như là một yếu tố phổ biến, nhưng có lẽ tôi đã bỏ lỡ điều gì đó. – gregdev

+0

+1 Tôi đã có thể nhận được cả ID sản phẩm bị vô hiệu hóa và được bật từ điều này. –

+0

+1 để giải quyết vấn đề của tôi, cảm ơn bạn! – Blaater