Есть ли способ изменить положение продукта для всех атрибутов, к которым он принадлежит?


Поэтому, если вы сортируете с помощью best value, он использует атрибут products position в категории для определения позиции.

Чем ниже, тем выше он отображается на странице каталога и странице поиска.

У нас есть пользовательский атрибут sold-out, который на некоторых продуктах yes.

Для этих продуктов мы хотели бы, чтобы позиция была 9999 для всех категорий, к которым она относится.

Есть ли способ изменить его на уровне каждого продукта или вам нужно менять его на каждом категория?

Если есть программный способ, это также будет следующим лучшим призом.

Author: Raphael at Digital Pianism, 2016-08-31

1 answers

Мой ответ предполагает, что вы используете Magento 1, дайте мне знать, если вы используете Magento 2

Позиции хранятся непосредственно в таблице catalog_category_product.

Мои предложения заключались бы в том, чтобы получить список идентификаторов продуктов, которые необходимо обновить с помощью такого кода:

$collection = Mage::getResourceModel('catalog/product_collection')
         ->addAttributeToFilter('sold-out','yes');

foreach ($collection as $product) {
    echo $product->getProductId() . ",";
}

Получив этот список, вы можете запустить SQL-запрос непосредственно в своей базе данных, который будет выглядеть следующим образом:

UPDATE catalog_category_product SET position = 9999 WHERE product_id IN (1,2,3)

1, 2 и 3 приведены для примера, просто замените их списком идентификаторов продуктов, которые вы получили от код я вставил и разделил их запятыми.

 1
Author: Raphael at Digital Pianism, 2016-08-31 15:05:27