Правило цен на корзину в Magento 2 и налоговый вопрос

Спецификации: Magento 2.1.7

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

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

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

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

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

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;
}
Другие вопросы по тегам