Как установить соответствующие продукты По коду для каждого продукта в magento - PullRequest
3 голосов
/ 07 сентября 2011

У меня есть магазин magento, в котором мы уже создали более 300 товаров. Дело в том, что каждые 10–15 продуктов имеют более 80% одинакового названия.

Например:

Embroidered Vine - 12<br> Embroidered Vine - 13<br> Embroidered Vine - 14<br> Embroidered Vine - 15<br> Embroidered Vine - 16<br> Embroidered Vine - 17

Здесь и сейчас я показываю другие связанные элементы, вводя эти элементы в поле описания. Вместо этого я хочу запустить сценарий, и сценарий должен будет автоматически добавить связанные продукты, потому что названия продуктов похожи, за исключением двух последних символов. Кто-нибудь может сказать мне, как я могу настроить соответствующие продукты в magento по коду автоматически.

Существует ли какая-либо функция, подобная setRelatedItems () для продукта в magento.

Использую magento 1.4.2

Ответы [ 2 ]

5 голосов
/ 04 октября 2011

Вы можете просто сделать несколько необработанных запросов SQL для этого. Я работал над набором данных, который массово импортирует продукты в magento, поэтому я знаю, как это сделать.

Вы могли бы сделать следующее:

SELECT DISTINCT cpev.entity_id

FROM catalog_product_entity_varchar cpev

WHERE value LIKE 'Embroidered Vine%'

Теперь у вас есть все идентификаторы сущностей продуктов, которые начинаются с 'Embroidered Vine' в качестве заголовка. Этот результат может быть сохранен в массиве, скажем, $result.

Затем необходимо сделать двойную петлю (для каждого продукта с вышитой лозой вы должны добавить все другие продукты с вышитой лозой в качестве сопутствующего продукта)

Сначала сделайте копию всех продуктов 'Embroidered Vine' в другом массиве для цикла foreach (это может не потребоваться, но все же просто сделайте это).

$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)");
  }
}

Если вам нужна дополнительная помощь, просто добавьте комментарий, и я посмотрю, что я могу сделать;)

Надеюсь, это помогло вам.

С уважением, Kenny

0 голосов
/ 16 августа 2012

Вы можете передать идентификатор продукта, для которого вам требуется соответствующий продукт. Здесь вы можете сделать цикл продукта и с помощью getRelatedProductIds () вы можете достичь этого

например Вам нужен соответствующий продукт для определенного продукта (скажем, $ _product)

Вы можете получить идентификаторы товара по номеру

  $_product->getRelatedProductIds()

Вы можете увидеть массив идентификаторов:

  print_r($_product->getRelatedProductIds()); 

Надеюсь, это поможет вам.

С уважением, Камеш Дж

...