Программное обновление продукта позиции для одной позиции [дубликат]


Потому что я пока не могу ответить на этот вопрос: Как программно обновить позицию (номер) продукта в определенной категории из-за моей репутации. Настоящим новый вопрос об обновлениях для позиции одной категории.

Как бы вы обновляли продукты только в этой категории с помощью положение занавеса, например положение 0. Таким образом, только продукты с позицией 0 изменятся на новый номер, а продукты с позицией 10 сохранят там позицию.

Надеюсь, кто-нибудь сможет помочь.

Author: Community, 2015-02-19

1 answers

Вы можете использовать тот же сценарий из ответа на вопрос, на который вы ссылались, и просто добавить условие.

Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
$categoryId = 22; //replace with your category id
$newPosition = 100; //replace with your new position
$category = Mage::getModel('catalog/category')->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID)->load($categoryId);
$products = $category->getProductsPosition();
foreach ($products as $id=>$value){
    if ($value == 2) {//change position only if `$value` 2
        $products[$id] = $newPosition;
    }
}
$category->setPostedProducts($products);
$category->save();
 2
Author: Marius, 2015-02-19 11:58:32