Сумма товара при включенных опциях Opencart

Здраствуйте! Написал скрипты для анимации пересчета суммы на странице товара, при изменении количества. Но если я выбираю опцию и пытаюсь изменить количество товара, то сумма перестает изменятся. В видео я меняю кол-во товара, но при переключении опции - оно сбрасывается, хотя консоль все нормально выводит, то есть проблема в самой анимации. Видео

код смены кол-ва товара и вызова анимаций

  <?php if (!$autocalc_not_mul_qty) { ?>
if (input_quantity > 0) {
  option_price *= input_quantity;
  main_price *= input_quantity;
  special *= input_quantity;
  yousave *= input_quantity;
  tax *= input_quantity;
}
  <?php foreach ($discounts as $discount) { ?>
    if (input_quantity >= <?php echo $discount['quantity']; ?>) {
  special = <?php echo $discount['price']; ?>;
  special *= input_quantity;
  yousave = main_price - special;
}<?php  } ?>
// Display Main Price
animateMainPrice(main_price);
<?php if ($special) { ?>
console.log("Специальная цена", special)
  animateSpecialPrice(special);
  animateYousave(yousave);
<?php } ?>
<?php } ?>
}

Одна из анимаций (они все одинковые):

main_price_final = calculate_tax(<?php echo $price_value; ?>);
main_price_start = calculate_tax(<?php echo $price_value; ?>);
main_step = 0;
main_timeout_id = 0;

  function animateMainPrice_callback() {
  main_price_start += main_step;

if ((main_step > 0) && (main_price_start > main_price_final)){
    main_price_start = main_price_final;
} else if ((main_step < 0) && (main_price_start < main_price_final)) {
    main_price_start = main_price_final;
} else if (main_step == 0) {
    main_price_start = main_price_final;
}

$('.autocalc-product-price').html( price_format(main_price_start) );

if (main_price_start != main_price_final) {
    main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay);
}
}

function animateMainPrice(price) {
main_price_start = main_price_final;
main_price_final = price;
main_step = (main_price_final - main_price_start) / 10;

clearTimeout(main_timeout_id);
main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay);
}

Ответы (0 шт):