วิธีรับรหัสผลิตภัณฑ์หลักใน magento 2


11

วิธีรับรหัสผลิตภัณฑ์หลักของเด็ก ๆ ใน Magento 2 สำหรับผลิตภัณฑ์ที่กำหนดค่าได้

ฉันต้องการรับรหัสผลิตภัณฑ์หลักของผลิตภัณฑ์สำหรับเด็กใน Magento ตามรหัสผลิตภัณฑ์เด็ก

คำตอบ:


26

สำหรับการรับรหัสผลิตภัณฑ์หลักในไฟล์ phtml ของคุณคุณสามารถเรียกรหัสโดยตรงโดย

    $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];
    }

มันทำงานได้ดีในไฟล์มุมมอง

7
คุณไม่ควรใช้ไดเรกทอรีตัวจัดการวัตถุ ฉีดโรงงานโดยใช้ -> สร้างวิธีการ
CarComp

@Rakesh หลังจากรับรหัสผลิตภัณฑ์ที่กำหนดค่าได้ฉันจะได้รับรายละเอียดทั้งหมดเกี่ยวกับผลิตภัณฑ์ที่กำหนดค่าเฉพาะได้อย่างไร ฉันสามารถโหลดรุ่นผลิตภัณฑ์ผ่านรหัสผลิตภัณฑ์หลักได้หรือไม่
Sanjay Gohil

12

คุณสามารถเรียกมันว่าในไฟล์บล็อกวิธีเฉพาะวีโอไอพีโดย

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???
Imran Zahoor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.