Magento 2'de ana ürün kimliği nasıl alınır?


11

Yapılandırılabilir ürünler için Magento 2'de bir çocuğun ana ürün kimliğini nasıl alabilirim?

Magento'da alt ürün kimliğine dayalı alt ürün ana ürün kimliğini almak istiyorum.

Yanıtlar:


26

Ana ürün kimliğini phtml dosyanıza almak için kodu doğrudan şu numaradan arayabilirsiniz:

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

görünümü dosyasında iyi çalışıyor.

7
Nesne yöneticisi dizinini kullanmamalısınız. -> create yöntemini kullanarak bir fabrikaya enjekte edin
CarComp

@ Yapılandırılabilir ürün kimliği aldıktan sonra @Rakesh, belirli yapılandırılabilir ürün hakkında yalnızca tüm ayrıntıları nasıl alabilirim? Üst ürün kimliği ile ürün modelini yükleyebilir miyim?
Sanjay Gohil

12

Blok dosyada, Magento'ya özel bir şekilde,

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

Üst sınıf belirtilmedi! Bence bu Magento\Catalog\Block\Product\AbstractProduct???
Imran Zahoor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.