Правило цены корзины Magento 2 и налоговая проблема

Технические характеристики: Magento 2.1.7

У меня проблема, и я не могу найти в Google ничего похожего на мой случай.

У меня есть правило налоговой цены, которое предусматривает бесплатную доставку, если промежуточная сумма превышает 500 евро. Правило работает нормально, без проблем применяется бесплатная доставка. Проблема возникает с продуктами, к которым применяется FPT (фиксированный налог на продукты).

Когда применяется бесплатная доставка, общая сумма налога превращается в хороший круглый ноль. Сумма налога уменьшена до нуля.

Очевидно, этого не происходит с продуктами, использующими налоговые классы. Доставка становится бесплатной, а налоги в порядке.

У меня нет идей, собираюсь погрузиться в код, но я не уверен, найду ли проблему. Спасибо за любую помощь.


person Macas    schedule 17.08.2017    source источник


Ответы (1)


Видимо FPT не суммируется с итогами, у них другая итоговая позиция.

Узнав об этом, я написал наблюдателя, который добавляет сумму FPT к общей сумме налога, и теперь все выглядит нормально.

**Event** sales_quote_address_collect_totals_after



/**
 * Adds Fixed Product Tax(FPT) to the total Taxes
 */
public function execute(Observer $observer)
{
    /** @var Magento\Quote\Model\Quote\Address\Total */
    $total = $observer->getData('total');

    /* Adds FPT to the tax totals even if it is equal to zero */
    $total->addTotalAmount('tax', $total->getWeeeAmount());

    return $this;
}
person Macas    schedule 17.08.2017