0

当我尝试以编程方式设置相关、追加销售和交叉销售产品时。所以它是第一次添加相关产品,而不是追加销售产品。在这种情况下,我再次设置产品数据,然后设置追加销售,但自动删除旧的相关产品集。

这是以下代码:-

    $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();

所以你能告诉我我在代码中做错了什么吗?

4

0 回答 0