{"id":338765,"date":"2026-08-15T13:33:18","date_gmt":"2026-08-15T13:33:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/eu-parcel-tariff-for-woocommerce\/"},"modified":"2026-08-15T17:53:56","modified_gmt":"2026-08-15T17:53:56","slug":"eu-parcel-tariff-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/eu-parcel-tariff-for-woocommerce\/","author":6208082,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"EU Parcel Tariff for WooCommerce","header_author":"FactuPress","header_description":"Calculates and applies the EU \u20ac3 flat customs duty (Regulation (EU) 2026\/382) at checkout for low-value consignments shipped from outside the EU customs territory \u2014 including Ceuta and Melilla \u2014 to EU customers.","assets_banners_color":"8599b1","last_updated":"2026-08-15 17:53:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/factupress.com\/eu-parcel-tariff-for-woocommerce","header_author_uri":"https:\/\/factupress.es","rating":0,"author_block_rating":0,"active_installs":0,"downloads":69,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"jairo.ochoa","date":"2026-08-15 17:53:56"}},"upgrade_notice":{"1.0.1":"<p>Code clarity fix, no functional changes.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3648851,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3648851,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-512x512.png":{"filename":"icon-512x512.png","revision":3648851,"resolution":"512x512","location":"assets","locale":"","width":512,"height":512}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3648817,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3648817,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings screen with legal conditions and starter TARIC import.","2":"Category \u2192 EU product type default mapping.","3":"Per-product override and country of origin.","4":"The duty applied as a fee at checkout."}},"plugin_section":[],"plugin_tags":[275859,127112,6974,275837,286],"plugin_category":[45],"plugin_contributors":[180343,275840,163908],"plugin_business_model":[],"class_list":["post-338765","plugin","type-plugin","status-publish","hentry","plugin_tags-2026-382","plugin_tags-customs","plugin_tags-europe","plugin_tags-taric","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-dixitalmedia","plugin_contributors-factupress","plugin_contributors-jairoochoa","plugin_committers-jairoochoa"],"banners":{"banner":"https:\/\/ps.w.org\/eu-parcel-tariff-for-woocommerce\/assets\/banner-772x250.png?rev=3648817","banner_2x":"https:\/\/ps.w.org\/eu-parcel-tariff-for-woocommerce\/assets\/banner-1544x500.png?rev=3648817","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/eu-parcel-tariff-for-woocommerce\/assets\/icon-128x128.png?rev=3648851","icon_2x":"https:\/\/ps.w.org\/eu-parcel-tariff-for-woocommerce\/assets\/icon-256x256.png?rev=3648851","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Since <strong>July 1st 2026<\/strong>, Regulation (EU) 2026\/382 removes the 150 \u20ac customs duty exemption for low-value consignments entering the EU. During the transitional period (until July 1st 2028), a <strong>flat 3 \u20ac customs duty applies per type of goods<\/strong> in each consignment of up to 150 \u20ac shipped from outside the EU customs territory (including Ceuta and Melilla) to EU consumers.<\/p>\n\n<p>This affects, among others:<\/p>\n\n<ul>\n<li><strong>Stores in Ceuta and Melilla<\/strong> selling to mainland Spain, the Balearic or the Canary Islands \u2014 since both cities are outside the EU customs territory, every parcel they send to the rest of Spain is treated as a non-EU import.<\/li>\n<li>Stores <strong>dropshipping from third countries<\/strong> (China, UK, USA\u2026) to EU customers.<\/li>\n<li><strong>Non-EU stores<\/strong> selling into the EU on DDP terms (duties paid at checkout instead of on delivery).<\/li>\n<\/ul>\n\n<p>If you sell DDP (the customer pays everything at checkout, no surprises on delivery), you need to estimate and collect this duty. That is exactly what this plugin does.<\/p>\n\n<h4>How it works<\/h4>\n\n<p>A \"type of goods\" is defined by the regulation as goods sharing the <strong>same tariff classification (TARIC\/HS subheading), description and origin<\/strong>. Three cotton t-shirts = one 3 \u20ac duty. A cotton t-shirt + a book = two types = 6 \u20ac. Two identical t-shirts made in different countries = two types = 6 \u20ac.<\/p>\n\n<p>The plugin:<\/p>\n\n<ol>\n<li>Adds an <strong>EU Product Type<\/strong> taxonomy where each term maps to a TARIC\/HS subheading (a curated starter set of over 100 common e-commerce classifications is included, covering the main HS chapters).<\/li>\n<li>Lets you assign a <strong>default EU product type per product category<\/strong>, with a per-product override (searchable select) and a per-product country of origin.<\/li>\n<li>At checkout, counts the <strong>distinct (classification, origin) tuples<\/strong> in the cart and adds <code>N \u00d7 3 \u20ac<\/code> as a fee \u2014 but only when all the legal conditions are met:\n\n<ul>\n<li>You have confirmed your goods ship from outside the EU customs territory.<\/li>\n<li>The shipping destination is inside the EU customs territory (Ceuta and Melilla destinations are automatically excluded; the Canary Islands are included, as the regulation applies there).<\/li>\n<li>The goods value does not exceed 150 \u20ac.<\/li>\n<li>The date is within the transitional window (July 1st 2026 \u2013 July 1st 2028), configurable in case of extension.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h4>Developer friendly<\/h4>\n\n<p>Filters available: <code>eupt_duty_amount<\/code>, <code>eupt_is_applicable<\/code>, <code>eupt_goods_types_count<\/code>, <code>eupt_fee_args<\/code>. HPOS and Cart\/Checkout Blocks compatible.<\/p>\n\n<h4>Disclaimer<\/h4>\n\n<p>This plugin provides an <strong>estimate<\/strong> of the flat customs duty for DDP-style checkouts. It is not legal or tax advice. The merchant remains responsible for the correct tariff classification of their goods (see the <a href=\"https:\/\/taxation-customs.ec.europa.eu\/customs\/common-customs-tariff-cct\/tariff-classification-goods\/eu-customs-tariff-taric_en\">official EU TARIC database<\/a>) and for the declaration and payment of duties.<\/p>\n\n<h4>About the authors<\/h4>\n\n<p>Built and maintained by the <a href=\"https:\/\/factupress.com\">FactuPress<\/a> team, makers of <strong>VeriFactu<\/strong> and <strong>Facturae<\/strong> for WooCommerce \u2014 Spanish AEAT invoicing compliance for WordPress stores.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin or install it from the WordPress plugin directory.<\/li>\n<li>Go to <strong>WooCommerce \u2192 EU Parcel Tariff<\/strong>.<\/li>\n<li>Import the starter TARIC classifications (or create your own EU product types).<\/li>\n<li>Map your product categories to EU product types; override per product where needed.<\/li>\n<li>Confirm your dispatch origin and enable the fee.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"my%20store%20ships%20from%20inside%20the%20eu%20%28e.g.%20mainland%20spain%29.%20do%20i%20need%20this%3F\"><h3>My store ships from inside the EU (e.g. mainland Spain). Do I need this?<\/h3><\/dt>\n<dd><p>No. The duty only applies to consignments shipped from <strong>outside<\/strong> the EU customs territory. The fee is never applied unless you explicitly confirm your goods ship from outside it.<\/p><\/dd>\n<dt id=\"i%20sell%20from%20ceuta%20or%20melilla%20to%20mainland%20spain.%20does%20this%20apply%20to%20me%3F\"><h3>I sell from Ceuta or Melilla to mainland Spain. Does this apply to me?<\/h3><\/dt>\n<dd><p>Yes. Ceuta and Melilla are outside the EU customs territory, so parcels sent from there to the Peninsula, the Balearic or the Canary Islands are treated as non-EU imports and are subject to the 3 \u20ac duty per type of goods (for consignments up to 150 \u20ac).<\/p><\/dd>\n<dt id=\"is%20the%20fee%20per%20product%20or%20per%20parcel%3F\"><h3>Is the fee per product or per parcel?<\/h3><\/dt>\n<dd><p>Neither: it is per <strong>type of goods<\/strong>. Goods sharing the same tariff classification, description and origin are grouped and charged a single 3 \u20ac duty.<\/p><\/dd>\n<dt id=\"should%20vat%20be%20charged%20on%20the%20fee%3F\"><h3>Should VAT be charged on the fee?<\/h3><\/dt>\n<dd><p>By default the fee is taxable, which mirrors how the duty is treated at customs: it is added to the import VAT taxable amount, so the recipient effectively pays VAT on top of the duty (this is also how large marketplaces present it). Under IOSS, amounts charged to the customer form part of the VAT consideration too. WooCommerce applies the rate per destination, so customers in territories without VAT are not charged it. You can switch the fee to non-taxable and select a specific tax class in the settings. This is not tax advice \u2014 check with your advisor if your situation is unusual.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20handle%20the%20customs%20declaration%20or%20pay%20the%20duty%20to%20the%20authorities%3F\"><h3>Does the plugin handle the customs declaration or pay the duty to the authorities?<\/h3><\/dt>\n<dd><p>No. It estimates and collects the amount at checkout so your customer faces no surprise charges on delivery. Declaring and remitting the duty (e.g. via your carrier's DDP service or your customs representative) remains your responsibility.<\/p><\/dd>\n<dt id=\"what%20happens%20after%20july%201st%202028%3F\"><h3>What happens after July 1st 2028?<\/h3><\/dt>\n<dd><p>The flat duty is a transitional measure. By default the plugin stops charging it after that date; if the EU extends the measure, you can disable date enforcement in the settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Clarified in code that the <code>'product'<\/code> post type passed to <code>register_taxonomy()<\/code> refers to WooCommerce's own product post type, not a plugin-defined identifier (all plugin identifiers already use the <code>eupt_<\/code>\/<code>EUPT_<\/code> prefix).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Charge the EU 3 \u20ac flat customs duty (Reg. (EU) 2026\/382) at checkout for low-value parcels shipped from outside the EU, including Ceuta and Melilla.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/338765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=338765"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jairoochoa"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=338765"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=338765"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=338765"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=338765"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=338765"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=338765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}