Как правильно изменить цену в корзине?
        Добрый вечер! 
Помогите, пожалуйста, разобраться с задачей!!!
На товаре указана цена за 1 кг. Упаковка весит 5 кг.
При добавлении в корзину, цена товара должна автоматически рассчитываться как price*weight
Я вношу изменения в сниппет " msCart"
Цена товара выводится правильно, но если увеличить количество, то итоговая стоимость неправильно рассчитывается.
Причем, если корзину обновить, то в значение итоговой стоимости изменяется на верное.
Подскажите, пожалуйста, как правильно сделать и исправить ошибку?
    
    
                                                                                
            Помогите, пожалуйста, разобраться с задачей!!!
На товаре указана цена за 1 кг. Упаковка весит 5 кг.
При добавлении в корзину, цена товара должна автоматически рассчитываться как price*weight
Я вношу изменения в сниппет " msCart"
if ($product['weight'] > 0) 
 {
    $product['price'] = $miniShop2->formatPrice($entry['price'])  * $product['weight'];
 }
else 
{
    $product['price'] = $miniShop2->formatPrice($entry['price']);
}
$product['cost'] = $miniShop2->formatPrice($entry['count'] * $product['price']);Цена товара выводится правильно, но если увеличить количество, то итоговая стоимость неправильно рассчитывается.
Причем, если корзину обновить, то в значение итоговой стоимости изменяется на верное.
Подскажите, пожалуйста, как правильно сделать и исправить ошибку?
Комментарии: 4
                Не надо вносить никаких изменений в сниппеты — они затрутся при обновлении.
Можно расширить класс корзины, но в Вашем случае проще создать плагин на событие msOnBeforeAddToCart.
                    Можно расширить класс корзины, но в Вашем случае проще создать плагин на событие msOnBeforeAddToCart.
//....
    if($product->get('weight') > 0){
        $price = $product->get('price') * $product->get('weight');
     } else {
        $price = $product->get('price');
    }
    $product->set('price', $price);
    $product->save();
//....            
                Спасибо, сработало!!!            
                    
                В этом случае цена у товара перезаписывается в админке, можно ли как то сделать чтобы новая цена распространялась лишь на корзину, не затрагивая товар?            
                    
                Уберите
                    $product->save();            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.