У меня странная проблема, когда я делаю $ Cart-> обновление (); после смены валюты
например в фунтах общая сумма из корзины составляет £ 896,32
с текущим коэффициентом конверсии 1.388889 (в евро)
в евро это должно быть 896,32 * 1,388889 = 1244,89 (округлено до 2)
НО, если я нахожусь на кассе и на модуле оплаты, я делаю:
$cookie->id_currency = 1; //1 for EUR
$cart->id_currency = $cookie->id_currency;
$cart->update();
//and then...
$amount = number_format($cart->getOrderTotal(true, 3), 2, '.', '');
все идет совсем не так … финал $ общая переменная неверна.
КОНТРОЛЬ ОТЛАДКИ:
ДО $ cart-> update ();
$cart Smarty_Variable Object (3)
->value = Cart Object (14)
->id = 2899
->id_address_delivery = "5"->id_address_invoice = "5"->id_currency = "3"->id_customer = "3"->id_guest = "998683"->id_lang = "1"->id_carrier = "14"->recyclable = "1"->gift = "0"->gift_message = ""->date_add = "2015-12-09 10:08:27"->secure_key = "5b5c81dbecc7b7e1d9603752071321b7"->date_upd = "2015-12-09 17:17:15"->nocache = false
->scope = "Smarty root"
$total Smarty_Variable Object (3)
->value = "£896.32"->nocache = false
->scope = "Smarty root"
ПОСЛЕ $ cart-> update ();
$cart Smarty_Variable Object (3)
->value = Cart Object (14)
->id = 2899
->id_address_delivery = "5"->id_address_invoice = "5"->id_currency = 1
->id_customer = "3"->id_guest = "998683"->id_lang = "1"->id_carrier = "14"->recyclable = "1"->gift = "0"->gift_message = ""->date_add = "2015-12-09 10:08:27"->secure_key = "5b5c81dbecc7b7e1d9603752071321b7"->date_upd = "2015-12-09 17:19:41"->nocache = false
->scope = "Smarty root"
$total Smarty_Variable Object (3)
->value = "1 239,67 €"->nocache = false
->scope = "Smarty root"
как вы можете видеть, что 1 239,67 € неправильно и должно быть 1 244,89 €, вместо.
Пожалуйста, где ошибка? Я схожу с ума от этого.
Большое спасибо за Вашу помощь.
НАЙТИ проблему
Здесь additional_shipping_cost поле в базе данных, которое не обновляется при смене валюты.
Я не знаю, если в последних версиях PS поведение отличается, но разработчики наверняка упускают это из виду.
Других решений пока нет …