我有一家magento商店,我们已经在其中创造了300多种产品。事情是每10到15个产品都有80%以上的同名格式。
例如:
Embroidered Vine - 12
Embroidered Vine - 13
Embroidered Vine - 14
Embroidered Vine - 15
Embroidered Vine - 16
Embroidered Vine - 17
现在通过在说明字段中输入这些项目来显示其他相关项目。相反,我想运行一个脚本,脚本将需要自动添加相关产品,因为产品名称除了最后两个字符之外是相似的。请有人告诉我如何通过代码自动在magento中设置相关产品。
是否有像 setRelatedItems()这样的函数到magento中的产品。
使用的是magento 1.4.2
答案 0 :(得分:5)
您可以为此执行一些原始SQL查询。我已经开发了一个数据集,大量将产品导入magento所以我知道如何做到这一点。
您可以做的是:
SELECT DISTINCT cpev.entity_id
FROM catalog_product_entity_varchar cpev
WHERE value LIKE 'Embroidered Vine%'
在这里,您现在拥有以'Embroidered Vine'作为标题开头的产品的所有实体ID。这个结果可以存储在一个数组中,比如$result
。
然后你必须做一个双循环(对于每个刺绣藤产品,你必须添加所有其他刺绣藤产品作为相关产品)
首先在foreach循环的另一个数组中制作所有'Embroidered Vine'产品的副本(这可能不需要,但仍然只是这样做)。
$copy = $result; // Where result is the result of the query (= the entity_id's)
foreach($result as $main_product){ //Each 'Embroidered Vine' product
foreach($copy as $related_product){
if($main_product["entity_id"] == $related_product["entity_id"])
continue; //We do not want to add the same products as related product
// Insert related product
mysql_query("INSERT INTO catalog_product_link (product_id,linked_product_id,link_type_id) VALUES ($main_product["entity_id"],$related_product["entity_id"],1)");
}
}
如果您需要更多帮助,只需添加评论,我就会看到我能做些什么;)
我希望这对你有帮助。
此致 肯尼
答案 1 :(得分:0)
您可以传递您需要相关产品的产品ID。在这里你可以制作产品循环并使用getRelatedProductIds()来实现这个
E.g 您需要特定产品的相关产品(Say $ _product)
您可以通过
获取相关的产品ID $_product->getRelatedProductIds()
您可以通过以下方式查看ID数组:
print_r($_product->getRelatedProductIds());
我希望这会对你有所帮助。
此致 Kamesh J