当我尝试以编程方式设置相关、追加销售和交叉销售产品时。所以它是第一次添加相关产品,而不是追加销售产品。在这种情况下,我再次设置产品数据,然后设置追加销售,但自动删除旧的相关产品集。
这是以下代码:-
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productObject = $objectManager->get('Magento\Catalog\Model\Product');
$product_new = $productObject->loadByAttribute('sku', $sku);
$linkDataAll = [];
$skuLinks = "Ring1014,Ring10155";
$skuLinks = explode(",",$skuLinks);
foreach($skuLinks as $skuLink) {
//check first that the product exist
$linkedProduct = $productObject->loadByAttribute("sku",$skuLink);
if($linkedProduct) {
//The setLinkType() can be tree types “related”, “crosssell”, “upsell”,customlinked,accessory
/** @var \Magento\Catalog\Api\Data\ProductLinkInterface $productLinks */
$productLinks = $objectManager->create('Magento\Catalog\Api\Data\ProductLinkInterface');
$linkData = $productLinks //Magento\Catalog\Api\Data\ProductLinkInterface
->setSku($product_new->getSku())
->setLinkedProductSku($skuLink)
->setLinkType($links);
$linkDataAll[] = $linkData;
}
}
if($linkDataAll) {
//print(count($linkDataAll)); //gives 3
$product_new->setProductLinks($linkDataAll);
}
$product_new->save();
所以你能告诉我我在代码中做错了什么吗?