Налог На Доставку Woocommerce

  • Автор темы 62fadbagsjfb52
  • Обновлено
  • 21, Oct 2024
  • #1

У меня возникла проблема с расчетом налога на доставку. Я добавляю стоимость доставки без налога, и на странице корзины/оформления все рассчитывается нормально. Также в бэк-офисе заказ отображается корректно (стоимость/налоги рассчитываются нормально).

Проблема возникает, когда вы изменить статус заказа на Выполнен и счет будет отправлен по электронной почте - автоматически изменится стоимость доставки и общая стоимость — прибавится 0,01 (Примечание. Если вы вручную создаете счет-фактуру перед изменением статуса заказа на «Завершено», счет-фактура создается в порядке — налоги/расходы в порядке как в счете-фактуре, так и в бэк-офисе).

Ниже приведены несколько скриншотов с текущими настройками и результатами: Налог на доставку WooCommerceНалог на доставку WooCommerce Налог на доставку WooCommerceНалог на доставку WooCommerceНалог на доставку WooCommerce Налог на доставку WooCommerce

Теперь, когда вы измените статус заказа на «Выполнен», счет будет отправлен по электронной почте, а налоги/расходы изменятся:Налог на доставку WooCommerce

А вот как суммы отображаются в счете-фактуре:Налог на доставку WooCommerce

Стоимость доставки составляет 15 лей с учетом налога, поэтому мне нужно настроить ее на 12,6050 (без налога), чтобы правильно рассчитать: 15 лей.

Я думаю, что проблема связана с количеством используемых десятичных знаков - в WooCommerce установлено значение 2 десятичных знака. Если я изменю настройку WooCommerce на использование 4 десятичных знаков, это нормально, но суммы выглядят ужасно и очень сбивают с толку клиентов.

С точки зрения бухгалтерского учета стоимость доставки без налога должна составлять

12,61 лея, а стоимость доставки должна составлять 2,39 лея (общая стоимость доставки с учетом налога = 15 леев) Использование WooCommerce 3.0.5 и

WooCommerce PDF-счета и упаковочные листы

(пробовал с другими плагинами выставления счетов, проблема та же).

Есть ли у вас идеи, что мне следует сделать, чтобы использовать 2 десятичных знака и сохранить стоимость доставки на уровне 15 леев (включая налоги)?

62fadbagsjfb52


Рег
17 Feb, 2008

Тем
67

Постов
184

Баллов
549
  • 25, Oct 2024
  • #2

На самом деле это не проблема WordPress, но я собираюсь на нее ответить, поскольку думаю, что суть проблемы заключается в непонимании того, что код, стоящий за тем, что видимый в качестве ошибки в результате делается именно то, что имело бы смысл, если бы введенные значения были необходимы для создания итогового значения, а не для его восстановления. Проще говоря, это проблема округления, и это происходит потому, что код ожидает (принудительно) реальные значения на определенных этапах своих вычислений.

Проблема

При округлении чисел, полученных в результате расчета, как в вашем случае:

 // Round price for .99 .01 decimals
add_filter( 'raw_woocommerce_price', function ( $price ) {
$decimals = round( $price - floor( $price ), 2 );

return ( $decimals == 0.01 || $decimals == 0.99 ) ? round( $price ) : $price;
} );
 
, the results can be unexpected.

12.60 x 1.19 = 14.994, which will round to 15.00 против 12.605042016806723 versus 12.6050 versus 12.60 , особенно если полученное значение будет округлено еще раз.

Я думаю, что проблема связана с количеством используемых десятичных знаков -

shipping + shipping tax will also be rounded to two decimals.

15.00 В WooCommerce установлено значение 2 десятичных знака. Если я изменю настройку WooCommerce 12.61 )

15.01 (which would be the rounded value if system is using two decimals) = 15.0059 (rounded to two decimals: 119% of 12.61 )

использовать 4 десятичных знака — это нормально, но суммы выглядят ужасно и очень

15.00 before that tax calculation (aka, at subtotal). Regardless, there's a simple fix:

сбивает с толку клиентов.

Я думаю, ты прав. И реальная проблема заключается в том, что результирующее значение 119% of 12.6050 = 14.99995 , rather than accurately reflect shipping + (shipping x tax rate) (округлено до двух десятичных знаков: 12.61 x 1.19 rather than 12.60 x 1.19 Я не знаю всех настроек плагина, которые вы упомянули, но, возможно, 12.6050 x 1.19 ;)

12.605042016806723 x 1.19 .

Круглый налог на уровне промежуточного итога

вариант, который вы показываете, округляет цену доставки до

[ Gross / (tax rate +1) = pre tax]
 

Welk


Рег
05 Dec, 2005

Тем
87

Постов
207

Баллов
682
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно