У нас есть предмет на продажу стоимостью около 100 долларов. К нему применяется 5% налог. Сторонний платежный шлюз берет комиссию в размере 3% от общей суммы, предоставленной шлюзу (т. Е. 3% от 100 + 5%).
Так как невозможно взимать комиссию 3% с платежного шлюза, мы скрываем эту дополнительную комиссию под ценой товара.
Таким образом, цена должна быть увеличена со 100 до суммы «X».
(100 + 5% tax) + 3% Commission = (X + 5% Tax) ;
Обратите внимание, что при увеличении суммы с налога X + 5% комиссия также увеличивается.
(100 + 5%) + 3% = (100 + 5) + 3.15 = 108.15
Если мы отправили 108,15 к шлюзу, он взимает 3,255 с суммы 108,15, что означает дополнительно 0,105. то есть. Мы получили меньшую сумму после вычета комиссии шлюза (104.895).
Мне нужно выделить цену товара, которая не приведет к дополнительной оплате для компании.
$tax = 5 ; //5%
$itemAmount = 100 ;
$priceWithTax = $itemAmount + ($itemAmount * 5/100) ;
$commission = 3 ; //3%
//We sent 105 to gateway.. which results 105 to customer and 3.15 to company.
$priceWithTaxCommission = $priceWithTax /* or X */ + ($priceWithTax * $commission/100) ;
$ToGateway = $priceWithTax + ($priceWithTax* 3/100) ;
//Results 108.15, If we sent 108.15 to gateway it again charge 3% on 108.15. Which is wrong.
Как узнать цену товара после включения комиссии платежного шлюза?
Не думайте в терминах «добавить», думайте в терминах «умножать»:
Умножьте свою ценность на коэффициент f:
f = 1 / 0,97
100 * (1 / 0,97) * 1,05 = ~ 108,25 (цена в магазине, включая налоги)
108,25 * 0,03 = ~ 3,25 (комиссия)
-> 105,00 (что осталось и это 100 + 5% налогов).
Вы также можете параметризовать коэффициент f:
f = 100 / (100 — комиссия)
Пожалуйста, посмотрите на мой ответ и дайте мне знать, если вы хотите учесть налоги на комиссионную часть в вашей цене магазина. Вы можете сделать это, но по моему мнению, это было бы неправильно с точки зрения бухгалтерского учета.
В этом случае используйте из этого кода:
$mainPrice = 100;
$tax = 5;
$commission = 3;
$priceWithTax = $mainPrice + ($mainPrice * ($tax / 100));
echo $priceWithTax.'<hr/>';
$priceWithTaxCommission = $priceWithTax + ($priceWithTax * ($commission / 100));
echo $priceWithTaxCommission.'<hr>';
$x = $priceWithTaxCommission / (1+($tax / 100));
echo 'product price is=>'.$x.'<hr/>';
echo $x + ($x * ($tax / 100));
этот код возвращается следующим образом:
price with tax 105
price with tax and commission 108.15
product price is=>103
product price with commission 108.15