Question

Selon HMRC, "la responsabilité de la TVA [des frais d'expédition] est basée sur la responsabilité des marchandises étant livrées" *

Il ne semble pas y avoir un moyen de fabriquer la TVA d'expédition sur la classe d'impôts des produits dans le panier.Cependant, pour obtenir un total de la TVA précise, c'est-à-dire comment ils doivent être calculés.

Y a-t-il une extension ou une solution de contournement que quiconque sait pour une version récente de Magento Cer (I.E. 1.7-1.9)?

  • de https://www.gov.uk/gouvernement/publications/vat-notice-70024-postage-and-Delivery-harges/vat-notice-70024-Postage-and-Delivery-Charges
Était-ce utile?

La solution

En fin de compte, nous avons écrit une extension qui a changé la façon dont Magento travaille pour l'expédition britannique, en basant la proportion de la TVA en fonction de la responsabilité des articles dans l'ordre. C'est ainsi que HMRC s'attend à ce que l'impôt sur l'expédition britannique soit élaboré (voir https://www.gov.uk/rates-of-vat-on-Différent-goods-and-services#postage )

Les classes / fonctions qui devaient être remplacées pour faire ce changement étaient les suivantes:

tax/sales_total_quote_tax::_calculateShippingTax
tax/ales_total_quote_shipping::collect

Dans ces fonctions, nous avons pris le taux calculé par:

$rate = $calc->getRate($addressTaxRequest);

Nous avons ensuite multiplié cela par un coefficient basé sur la proportion d'éléments taxables:

    // Iterate over all items with prices to get proportional rate
        $items = $address->getAllItems();
$totalPrice = 0.0;
$totalTax = 0.0;
foreach ($items as $item) {
    // Add to total tax and price
    $totalTax += $item->getTaxAmount();
    $totalPrice += $item->getRowTotalInclTax() - $item->getDiscountAmount();
}

// Divide total tax by price in order to get weighted tax rate
$weightedTaxRate = ($totalPrice > 0.0) ? ($totalTax / $totalPrice) : 0.0;

// Convert rate to shipping tax rate (invert tax)
$rate = (1.0 / (1.0 - $weightedTaxRate)) - 1.0;

return $rate * 100.0;

Cela devrait donner à l'approche générale, mais notez qu'il existe un certain code pour gérer les cas de bord non inclus ici car il est plutôt plus impliqué. De plus, nous avons dû utiliser des conditions dans les fonctions remplacées car ces fonctions essentielles ont évolué au fil du temps, vous devez donc la baser sur la version particulière de Magento que vous utilisez.

L'extension, qui n'est pas gratuite, peut être trouvée ici: https://www.c3media.co.uk/c3-uk- expédition-tax.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top