-- HikaShop version -- : 6.0.0
-- Joomla version -- : 4.4.3
-- PHP version -- : 8.2
Hi, I realize we are running on HikaShop 6.0.0, so perhaps this bug is already fixed. If not, I am reporting it here for future versions.
Summary
When checkout has no shipping step (virtual/digital products), HikaShop can use the user’s default/session shipping address during order creation (created status), even though shipping is not selected in checkout. This causes VAT calculation/exemption differences between checkout display and created order.
Environment
HikaShop 6.0.0
Joomla site checkout with digital product (no shipping selection shown)
Config: Type of address used for tax = Shipping
Steps to Reproduce
- Set Type of address used for tax to Shipping.
- Set default shipping address to EU address without VAT ID.
- Add a digital product to cart (no shipping step available).
- Select billing address with valid EU VAT ID.
- Checkout/cart shows VAT-exempt as expected.
- Click Finish (PayPal Checkout) so order is created with created status.
Expected
For virtual-only checkout (no shipping context), order creation should use billing/fallback logic consistently, matching cart display.
Actual
Created order includes VAT (or otherwise differs), apparently using default/session shipping address for tax/VAT-type resolution.
Likely Cause
getCurrentUserAddress('shipping') in administrator/components/com_hikashop/classes/address.php can fall back to session shipping_address even when shipping is not required/selected in current checkout context.
Impact
Tax inconsistency between frontend checkout totals and backend created order, especially for EU VAT-ID scenarios on digital goods.