{"id":19016385,"date":"2026-09-10T09:43:35","date_gmt":"2026-09-10T09:43:35","guid":{"rendered":"https:\/\/wordpress.org\/support\/topic\/remise-sur-transport\/"},"modified":"2026-09-10T09:45:54","modified_gmt":"2026-09-10T09:45:54","slug":"remise-sur-transport","status":"publish","type":"topic","link":"https:\/\/wordpress.org\/support\/topic\/remise-sur-transport\/","title":{"rendered":"Remise sur transport&#8230;"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Bonjour,<br \/>Nous avons re\u00e7u plusieurs commandes avec des r\u00e8gles de votre module, et il s&#8217;av\u00e8re que le % s&#8217;est mal mis, \u00e0 savoir qu&#8217;il a mis un % sur le transport, ce qui n&#8217;est pas normal&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici des screens de la configuration et du d\u00e9tail de 2 commandes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">https:\/\/ibb.co\/ksJRyGWS<br \/>https:\/\/ibb.co\/CKk0sTxC<br \/>https:\/\/ibb.co\/VrQ6rvm<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le probl\u00e8me est bien dans le code de <strong>Simple Discount Rules 5.16<\/strong>, et on peut expliquer les deux constats. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Pourquoi la remise appara\u00eet sur le transport<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public\/class-woo-product-category-discount-public.php<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">le plugin ne r\u00e9duit <strong>pas le prix des produits<\/strong> pour une r\u00e8gle <code>Quantity<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il calcule d\u2019abord le montant de la remise, puis fait ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if( $final_discount &gt; 0 ){\n    $cart-&gt;add_fee(\n        __('Discount', 'woo-product-category-discount'),\n        -$final_discount\n    );\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Donc la remise de 15 ou 20 % est ajout\u00e9e \u00e0 WooCommerce sous la forme d&#8217;un <strong>frais n\u00e9gatif (<code>fee<\/code>)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&#8217;est la cause du comportement observ\u00e9 : WooCommerce doit ensuite r\u00e9partir fiscalement ce montant n\u00e9gatif entre les diff\u00e9rentes classes de TVA pr\u00e9sentes dans la commande. Comme le transport est \u00e0 <strong>20 %<\/strong> et tes produits \u00e0 <strong>10 %<\/strong>, une partie de ce <code>fee<\/code> n\u00e9gatif finit affect\u00e9e \u00e0 la TVA\/part transport.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cela explique parfaitement la commande 39919 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Produits       TVA 10 %\nTransport      TVA 20 %\n       \u2193\nRemise globale sous forme de fee n\u00e9gatif\n       \u2193\nWooCommerce r\u00e9partit la remise\n       \u2193\nune partie \u00e0 10 %\nune partie \u00e0 20 %<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Le plugin calcule donc une <strong>remise sur les produits<\/strong>, mais l&#8217;applique techniquement comme une <strong>remise globale de panier<\/strong>. C&#8217;est une mauvaise m\u00e9thode pour le besoin. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Calcul peut \u00eatre incorrect<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour une r\u00e8gle Quantity <strong>sans condition<\/strong>, ce qui correspond \u00e0 la configuration puisque <code>Terms<\/code> est vide, la version 5.16 fait exactement ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if( empty( $terms ) ){\n    if(\n        WC()-&gt;cart-&gt;get_cart_contents_count() &gt;= $discount&#091;'min_cart_value']\n        &amp;&amp;\n        (\n            empty( $discount&#091;'max_cart_value'] )\n            ||\n            WC()-&gt;cart-&gt;get_cart_contents_count() &lt;= $discount&#091;'max_cart_value']\n        )\n    ){\n        $applicable_discounts&#091;] =\n            $discount&#091;'discount_amount_type'] == 0\n            ? (\n                (\n                    WC()-&gt;cart-&gt;get_subtotal()\n                    * $discount&#091;'discount_amount']\n                ) \/ 100\n            )\n            : $discount&#091;'discount_amount'];\n    }\n\n    continue;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Le point important est :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WC()-&gt;cart-&gt;get_subtotal()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il calcule donc les <strong>20 % sur le sous-total WooCommerce brut des produits<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il ne calcule pas n\u00e9cessairement 20 % du montant retrouv\u00e9 ensuite comme \u00ab Produits HT \u00bb dans la commande.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&#8217;est probablement l&#8217;origine de tes <strong>22 % apparents<\/strong> sur la commande 39962.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Par exemple, le plugin peut avoir calcul\u00e9 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sous-total utilis\u00e9 au moment du calcul : 157,15 \u20ac\n20 % = 31,43 \u20ac<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Puis la commande finale pr\u00e9sente :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Produits : 142,86 \u20ac\nRemise :   31,43 \u20ac<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Et effectivement :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>31,43 \/ 142,86 = 22 %<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Donc il faudrait regarder la commande 39962 elle-m\u00eame pour identifier ce qui a fait passer la base de calcul de ~157,15 \u20ac \u00e0 142,86 \u20ac.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pouvez-vous corriger cela ?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Merci.<\/p>\n","protected":false},"template":"","class_list":["post-19016385","topic","type-topic","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/19016385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":1,"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/19016385\/revisions"}],"predecessor-version":[{"id":19016387,"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/19016385\/revisions\/19016387"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=19016385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}