Magento 2 - Программно Отменить Специальную цену


У меня есть скрипт импорта, который импортирует конфигурации и варианты.

Установлена специальная цена , если она установлена в моем XML-документе импорта. Если специальная цена не установлена, я пытаюсь удалить специальную цену. - Но это не работает! - Специальная цена уже установлена, после сохранения!

if ($oProductGroupVariantProductItem->getSpecialpriceBrutto() > 0) {
    $oSimpleProduct->setSpecialPrice($oProductGroupVariantProductItem->getSpecialpriceBrutto());
} else {
    $oSimpleProduct->setSpecialPrice('');
}

Что я делаю не так?

Спасибо Андре

Author: Dipesh Rangani, 2017-01-20

2 answers

Сохранение цены и принудительное обновление атрибута продукта с использованием модели ресурсов, разработанной в моей ситуации:

$product->setSpecialPrice(null);
$product->getResource()->saveAttribute($product, 'special_price');

Примечание: Убедитесь, что объект $product имеет store_id =0. Атрибут special_price является глобальным атрибутом. Если store_id не будет равен 0, этот метод не будет работать, тогда вы попытаетесь сбросить значение special_price.

 9
Author: Giel Berkers, 2020-04-20 04:02:21

Вам просто нужно сохранить продукт после обновления атрибутов.

Попробуйте это:

$oSimpleProduct->save();
 1
Author: LeopardFist, 2017-05-10 15:03:59