Есть ли способ изменить положение продукта для всех атрибутов, к которым он принадлежит?
Поэтому, если вы сортируете с помощью best value
, он использует атрибут products position
в категории для определения позиции.
Чем ниже, тем выше он отображается на странице каталога и странице поиска.
У нас есть пользовательский атрибут sold-out
, который на некоторых продуктах yes
.
Для этих продуктов мы хотели бы, чтобы позиция была 9999
для всех категорий, к которым она относится.
Есть ли способ изменить его на уровне каждого продукта или вам нужно менять его на каждом категория?
Если есть программный способ, это также будет следующим лучшим призом.
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 приведены для примера, просто замените их списком идентификаторов продуктов, которые вы получили от код я вставил и разделил их запятыми.