diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php index 8dda060c4f75ff4428bb4ebede6985265c61def2..6eb76c83d0a1b104c70acf47b9d6121941ad7609 100644 --- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php +++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php @@ -62,7 +62,10 @@ class Configurable extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { $isProductInstance = false; if ($mainProduct instanceof \Magento\Catalog\Model\Product) { - $mainProductId = $mainProduct->getId(); + $mainProductId = $mainProduct->getData( + $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField() + ); + $isProductInstance = true; } $old = []; @@ -88,9 +91,9 @@ class Configurable extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb } $this->getConnection()->insertMultiple($this->getMainTable(), $data); } - $linkField = $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField(); + // configurable product relations should be added to relation table - $this->_catalogProductRelation->processRelations($mainProduct->getData($linkField), $productIds); + $this->_catalogProductRelation->processRelations($mainProductId, $productIds); return $this; }