Làm cách nào để có id sản phẩm gốc của trẻ em trong Magento 2 cho các sản phẩm có thể định cấu hình?
Tôi muốn lấy id sản phẩm gốc của sản phẩm con trong Magento dựa trên id sản phẩm con.
Làm cách nào để có id sản phẩm gốc của trẻ em trong Magento 2 cho các sản phẩm có thể định cấu hình?
Tôi muốn lấy id sản phẩm gốc của sản phẩm con trong Magento dựa trên id sản phẩm con.
Câu trả lời:
Để nhận id sản phẩm gốc trong tệp phtml của bạn, bạn có thể gọi mã trực tiếp bằng cách:
$productId = 52; //this is child product id
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable')->getParentIdsByChild($productId);
if(isset($product[0])){
//this is parent product id..
echo $product[0];
}
Bạn có thể gọi nó trong tệp khối, cách cụ thể của Magento bằng cách,
protected $_catalogProductTypeConfigurable;
public function __construct(
\Magento\Catalog\Block\Product\Context $context,
//for getting parent id of simple
\Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable $catalogProductTypeConfigurable,
array $data = []
) {
//for getting parent id of simple
$this->_catalogProductTypeConfigurable = $catalogProductTypeConfigurable;
parent::__construct($context, $data);
}
public function getProductData($id) {
$parentByChild = $this->_catalogProductTypeConfigurable->getParentIdsByChild($id);
if (isset($parentByChild[0])) {
//set id as parent product id...
$id = $parentByChild[0];
}
return $id;
}
Magento\Catalog\Block\Product\AbstractProduct
???