Корректный апдейт цены Есть решение
Ребят, подскажите, какой класс использовать и метод, если нужно обновить цену, в режиме нескольких характеристик.
Есть классы моделей shopProductModel и shopProductSkusModel , как корректно при таком режиме обновлять цену на все позиции (Virtual Sku), в случаи, если 1 артикул?
Эта тема в архиве. Добавление комментариев к ней отключено.










2 ответа
Поиграйтесь в приложении Developer вот с таким кодом:
wa('shop')->setActive('shop'); // Объект для работы с продуктом по указанному product_id $p = new shopProduct(704); // Массив артикулов, sku_id => array $skus = $p['skus']; //wa_dump($skus); // удобно посмотреть // Цена указывается в валюте товара: $p['currency']. // Если $p['currency'] === null, значит, используется валюта магазина по умолчанию, // т.е. wa()->getConfig()->getCurrency(). $skus[1586]['price'] = 20; // Сохранение $p['skus'] = $skus; $p->save();Если нужно обновить один продукт, такой способ подходит как нельзя лучше. Но если у вас большой прайс-лист и обновление в цикле, то будет слишком медленно. Если так, придётся писать свой код для обновления напрямую через модели. Суть такая: обновить shop_product_skus.price и shop_product_skus.primary_price (они могут быть в разных валютах, см. как это делается в shopProductSkusModel->setData()), а также shop_product.price, shop_product.min_price, shop_product.max_price (см. shopProductModel->correct()).
Исчерпывающий ответ. Благодарю.