Pregunta

Según HMRC, "la responsabilidad del IVA [del cargo de envío] se basa en la responsabilidad de los productos que se entregan" *

No parece haber una manera en Magento de basar el IVA de envío en la clase fiscal de los productos en el carrito.Sin embargo, para obtener un total preciso del IVA, así es como deben calcularse.

¿Hay una extensión o solución que cualquiera pueda saber para la versión reciente de MAGENTO CER (I.E. 1.7-1.9)?

¿Fue útil?

Solución

Al final, escribimos una extensión que cambió la forma en que Magento funciona para el envío del Reino Unido, basando la proporción del IVA en función de la responsabilidad de los artículos en el orden. Así es como HMRC espera que se reduzca el impuesto de envío del Reino Unido (consulte https://www.gov.uk/rates-of-vat-on-different-goods-and-services#postage )

Las clases / funciones que necesitaban ser anuladas para hacer que este cambio fuera:

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

En estas funciones, tomamos la tarifa calculada por:

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

Luego nos multiplicamos esto por un coeficiente basado en la proporción de artículos imponibles:

    // 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;

Esto debería dar el enfoque general, pero tenga en cuenta que hay algún código para manejar los casos de borde no incluidos aquí, ya que está más involucrado. Además, tuvimos que usar las condiciones en las funciones anuladas porque estas funciones básicas han evolucionado a lo largo del tiempo, por lo que tendría que basar esto en la versión particular de Magento que está utilizando.

La extensión, que no es gratuita, se puede encontrar aquí: https://www.c3media.co.uk/c3-uk- Envío-TAX.HTML

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top