计算购物车中的加拿大税,优惠券折扣后

时间:2013-09-21 07:01:27

标签: php laravel e-commerce laravel-4 shopping-cart

这确实是一场噩梦。我真的需要你的集体思想的帮助:

在加拿大,各省的税收计算方式不同:

Alberta - 5%
British Columbia - 5% GST and 7% PST

计算每种产品价格的直接税很容易......我遍历购物车中的所有商品并按产品价格计算税额。即使物品免于PST,我也可以检查......

棘手的部分是当我必须以折扣申请优惠券代码时!

显然,任何折扣都需要应用于税前金额......但我需要单独处理每个项目以计算税额。我不能扣除说,总计20美元,因为每件商品都有自己的定价...这意味着当我处理每件商品时,我需要知道折扣后价格是多少。

但请记住一些产品如何免除PST?好吧,这就是这里的复杂因素:

Item 1 - $24.99 - GST (5%) and PST (7%)
Item 2 - $11.99 - GST (5%)

Discount - $20.00

我如何才能应用购物车折扣,但保持税收的完整性?

1 个答案:

答案 0 :(得分:0)

你能做这样的事(伪代码)吗?

$item_price = $10
$final_price = ((($item_price * $discount) * $gst) * $pst)

然后将折扣设置为1的倒数。

即。没有折扣:$discount = 1.0; 20%的折扣:$discount = .8;

编辑:实际上 - 你还没有给出足够的信息。如果折扣占总数的百分比 - 那么我上面的代码就可以了。

但如果您的折扣是“固定”价格 - 那么您就有问题了。您是从第一件商品中取出价格,还是将其平均分配到购物车中的所有商品上?无论如何都会有税收影响。

假设你想在所有项目中分配价格 - 那么这样的事情就可以了:

$discount = $20;
$num_of_items_in_cart = 5;
$discount_per_item = $discount/$num_of_items_in_cart;
$final_price = ((($item_price * $discount_per_item) * $gst) * $pst)