обновляйте только связанные продукты программно - magento 2
Я следую этому ответу для обновления связанных продуктов, он работает, но он удалит перекрестную продажу и повышение продаж продуктов родителя. это поведение по умолчанию или я что-то не так сделал?
//For testing load one product
$target=$this->productRepository->getById(501);
//Here I collect related skus list programatically
.........................................
..........................................
$skuLinks = explode(",",$related);
$obj = \Magento\Framework\App\ObjectManager::getInstance();
foreach($skuLinks as $skuLink) {
$productLink = $obj->create('Magento\Catalog\Api\Data\ProductLinkInterface')
->setSku($target->getSku())
->setLinkedProductSku($skuLink)
->setPosition(1)
->setLinkType('related');
$linkData[] = $productLink;
}
//Set Product Link
$target->setProductLinks($linkData);
$this->productRepository->save($target);
//checking, it only display the related skus, previously it shows related,upsell,crossell
$links=$target->getProductLinks();
foreach($links as $link)
{
echo $link->getLinkType().' - '.$link->getLinkedProductSku().'<br>';
}
1
2 answers
Все ссылки будут перезаписаны, если вы вызовете метод ProductInterface::SETLINKS. Вы можете попробовать добавить новые ссылки в уже существующий массив ссылок на продукты.
Пример:
$links = $product->getProductLinks();
$links[] = $newLink;
$product->setProductLinks($links);
$this->productRepository->save($product);
2
Author: Max, 2017-02-04 15:43:27
Следующий код работает для меня. Код вставляет идентификатор продукта и связанные с ним идентификаторы продуктов непосредственно в базу данных.
try {
$q = $objectManager->get('\Magento\Framework\App\ResourceConnection');
$q->getConnection('core_write')->query("insert into catalog_product_link (linked_product_id, product_id,link_type_id) values (".$newRelatedProdId.",".$newProdId.",1)");
}
catch(Exception $e)
{
echo 'Duplicate Key'.PHP_EOL;
}
Пожалуйста, обратитесь к приведенным ниже ссылкам для получения более подробной информации. https://www.pearlbells.co.uk/programmatically-assign-related-products-magento-2/
0
Author: Liz Eipe C, 2018-11-21 01:08:43