@hakeryk2 Bardzo dziękuję, przeprowadzę więcej testów. Ogólnie bardzo dziwna to sprawa. Znalazłem firmę, która sprzedaje gotowy patch na to: https://www.presta-addons.net/en/content/7-incorrect-tax-rounding-and-application-in-prestashop-161
Jednak oni mają chyba inne podejście ponieważ zmieniają sposób wyliczenia ceny brutto:
switch ($ps_round_type) {
case Order::ROUND_TOTAL:
$pp = $price * (int)$product['cart_quantity'];
$products_total[$id_tax_rules_group.'_'.$id_address] += $with_taxes?$tax_calculator->addTaxes($pp):$pp; break;
case Order::ROUND_LINE:
$product_price = $price * $product['cart_quantity']; $pp = Tools::ps_round($product_price, $compute_precision);
$products_total[$id_tax_rules_group] += $with_taxes?$tax_calculator->addTaxes($pp):$pp;
break;
case Order::ROUND_ITEM:
default: $product_price = /*$with_taxes ? $tax_calculator->addTaxes($price) : */$price;
$pp = Tools::ps_round($product_price, $compute_precision) * (int)$product['cart_quantity'];
$products_total[$id_tax_rules_group] += $with_taxes?$tax_calculator->addTaxes($pp):$pp;
break;
}
Autor tego moda opisał to z resztą tutaj, ale Support PS go raczej zlekceważył: