Как рассчитать цену товара после прибавления к ней комиссии платежного шлюза?

У нас есть товар на продажу стоимостью около 100 долларов. К нему применяется налог в размере 5%. Сторонний платежный шлюз берет комиссию в размере 3% от общей суммы, переданной шлюзу (т.е. 3% от 100+5%). Поскольку невозможно взимать с клиента комиссию платежного шлюза в размере 3%, мы скрываем эту дополнительную комиссию в цене товара. Таким образом, цена должна быть увеличена со 100 до суммы «Х».

(100 + 5% tax) + 3% Commission = (X + 5% Tax) ;

Обратите внимание, что при увеличении суммы от X + 5% Tax комиссия также увеличивается.

(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.

Как узнать цену товара с учетом комиссии платежного шлюза?


person tan    schedule 30.10.2017    source источник


Ответы (2)


Не думайте в терминах «добавить», думайте в терминах «умножить»:

Умножьте свою ценность на коэффициент 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 - комиссия)

Пожалуйста, ознакомьтесь с моим ответом и дайте мне знать, хотите ли вы учитывать комиссионные налоги в цене вашего магазина. Вы можете сделать это, но, на мой взгляд, это было бы неправильно с точки зрения бухгалтерского учета.

person Flocke    schedule 30.10.2017
comment
Короче говоря, вам нужна функция, обратная y=x*0,97. И это у'=х*(1/0,97). - person Flocke; 30.10.2017
comment
В какой части вы говорите неправильно? Вы можете сделать это, но, на мой взгляд, это было бы неправильно с точки зрения бухгалтерского учета. ? - person tan; 01.07.2018

В этом случае используйте из этого кода:

$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
person Majid Abbasi    schedule 30.10.2017