Bills can be confusing to customers because of the regulations asking us to display the price incl. VAT to them and at the same time forcing us to declare the tax base.

For example when offering the customer a 20.00 Euros discount (using the uc_coupon module, discount type "Price") the order total preview show the amount before taxes which in Spain would be 17.24 Euros. My solution would be to have a table with three columns: "Price excl. VAT", "VAT", "Total" and four rows "Subtotal", "Shipping fee", "Coupon", "Total". Ok that's "Total" twice, maybe labeling could be better... This idea could be pushed even further: add an extra column to show the VAT rate (as when products with different tax rates are billed, then we need to declare the tax base subtotal for each rate).

Now I don't know how feasible this is with Ubercart 2, maybe the request needs redirection to the core?

Comments

longwave’s picture

Status: Active » Postponed

I don't think this is possible without rewriting large sections of the checkout pane code, both PHP and JavaScript - Ubercart currently only expects to handle one price per row in the order total preview. uc_coupon (and probably other line item modules) also have problems when multiple tax rates are in use, as the coupon is applied as a single line item without regard to the tax rates on the applicable products. This has already been noted at #376926: Taxes incorrectly calculated when store coupons are applied but I am not sure how best to fix this, or even if it is really possible with the current way Ubercart works.

This type of feature request will likely have to wait until better VAT support is included in core, hopefully in Ubercart 3. Marked as postponed for now, unless anyone else wants to try and tackle this.

lpalgarvio’s picture

here's my idea

outputing a sample of the current behavior:

cart page:
-----------------------------------------------------
product 1 10,89€
product 1 10,89€
another fruit 25,41€

Subtotal excluding VAT: 39,00€
VAT PRT: 8,19€
Subtotal: 47,19€

checkout page with no billing/shipping address selected (defaulting to the first VAT/TAX):
-----------------------------------------------------
Qty Products Price excl. VAT VAT PRT Price
1× product 1 9,00€ 1,89€ 10,89€
1× product 1 9,00€ 1,89€ 10,89€
3× another fruit 21,00€ 4,41€ 25,41€
Subtotal: 39,00€ 8,19€ 47,19€
-----------------------------------------------------
Order total preview:
Subtotal: 47,19€
Subtotal excluding VAT: 39,00€
VAT PRT: 8,19€
Order total: 47,19€

checkout page with billing/shipping address selected:
-----------------------------------------------------
Qty Products Price excl. VAT VAT PRT Price
1× product 1 9,00€ 1,89€ 10,89€
1× product 1 9,00€ 1,89€ 10,89€
3× another fruit 21,00€ 4,41€ 25,41€
Subtotal: 39,00€ 8,19€ 47,19€
-----------------------------------------------------
Order total preview:
Subtotal: 47,19€
UPS: 10,00€
Subtotal excluding VAT: 49,00€
VAT PRT: 8,19€

Order total: 57,19€
-----------------------------------------------------

i think i would look better this way - this example bills in Portugal and ships to Spain, adding different VAT to both billing and shipping (previous outputs didn't had VAT on shipping):

Cart contents - replace "Price" with "Price incl. VAT", then it's fine ;)

Order total preview
Billing totals:
...Subtotal excl. VAT: 39,00€ ----------------------> billing subtotal without VAT (and without shipping)
...VAT PRT: 8,19€ ------------------------> the VAT part, 1.21 or 21% in PRT/Portugal (billing subtotal x 0.21)
...Subtotal incl. VAT: 47,19€ ----------------------> billing total with VAT (and without shipping) (billing subtotal x 1.21)

Shipping totals:
...UPS Shipping: 10,00€ --------------------------> shipping total (whatever values are fixed or calculated)
...VAT ESP: 1,80€ ---------------------------> the VAT part, 1.18 or 18% in ESP/Spain (shipping subtotal x 0.18)
...Shipping incl. VAT: 11,80€ ----------------------> shipping total with VAT (and without billing) (shipping subtotal x 1.18)

Order totals:
...Total excl. VAT: 49,00€ --------------------------> billing + shipping total without VAT
...VAT PRT: 8,19€ ---------------------------> the VAT from billing
...VAT ESP: 1,80€ ---------------------------> the VAT from shipping (replace with single field if same VAT)
...Total incl. VAT: 58,99€ --------------------------> billing + shipping total with VAT (the final price)

would work well with Fieldsets (set Billing Totals, Shipping Totals and Order Totals as fieldsets)

longwave’s picture

Status: Postponed » Fixed

This has been committed to CVS; if the "show VAT amounts in separate columns" option is enabled, the order preview will include these columns.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.