Създавам плъгин за Prestashop и се натъкнах на този проблем с изчисляването на данъка.
Потокът на програмата е както следва:
Човек прави поръчка на уебсайта за електронна търговия, поръчката се приема, подробностите за поръчката като артикули, цени, данъци, отстъпки и т.н. се изпращат до външна API услуга за фактури.
Пример за поръчка може да бъде:
(Тези цени включват данъци)
1x тениска 20.64
1x доставка 125
1x Отстъпка -18,58 (В този конкретен тестов случай отстъпката е 90% от продукта, математиката е проста 20,64 * 0,90 = 18,58)
Обща сума на поръчката след прилагане на данък: 127.06
Всичко това е наред, но когато изпратя подробностите към API, поръчката се запазва както следва:
(Тези цени са запазени без приложен данък, данъчната ставка е 25%)
1x тениска 16.51
1x доставка 100
1x Отстъпка -14
Обща сума на поръчката след прилагане на данък: 128,14
Както виждате, общите суми на поръчката не съвпадат, разликата е 1,08, мисля, че това е проблем с отстъпка и данък.
Струва си да се отбележи, че външният сайт прави своя собствена математика за изпратените стойности, например продукти, данъци и т.н. Не мога да повлияя на начина, по който външният сайт за фактуриране прави своите изчисления. Мисля, че проблемът възниква в реда, в който се извършват операциите на различните платформи.
Също така си струва да се спомене, че кодът работи перфектно, когато няма налична отстъпка.
Какво мога да направя, преди да изпратя стойностите, така че да получа едни и същи стойности и на двете места.