如何设置相关产品通过magento中每个产品的代码

时间:2011-09-07 06:46:08

标签: magento magento-1.4

我有一家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

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