This is a big one. Maybe the biggest release we have shipped.
For the last two months, we worked closely with industry experts to rebuild how FluentCart handles tax. A full rebuild, not a small patch. And the part I am most proud of: it is all in the core. Free. No addon, no third-party tax service, no monthly fee to stay compliant.
If you sell in the EU, or anywhere with VAT and sales tax rules, this changes things for you.
Here is the heart of it: tax now explains itself everywhere. Checkout, thank-you page, receipt, email, PDF, admin order view, the customer's account. Every place a tax number shows up now breaks it down per item and per rate. No more "why is my tax this amount?" tickets. You just point at the receipt.
The big stuff in 1.4.0:
- Full EU B2B reverse charge. Selling across EU borders to VAT-registered businesses now works end to end. Customer enters their VAT ID, tax gets reversed correctly, and it shows up right on checkout, emails, PDF, and receipts. Even handles stores that advertise tax-inclusive prices.
- Per-item tax breakdown. Every line shows exactly how it was taxed. Clear for the customer, clear for you.
- Mixed cart handling. Tax-inclusive and tax-exclusive products in the same cart now total and display correctly. This used to be a real headache.
- Built-in tax rates for the whole world. Africa, the Americas, Asia, Europe, Oceania, all pre-loaded. New stores get a guided tax setup step in onboarding, so you are compliant from day one.
- Pick exactly which EU countries you collect VAT in, register inline, and get a clear warning when a VAT ID is missing instead of finding out later. Plus city/postcode level overrides and per-variation tax control.
Two more worth calling out:
- Store Digest emails. Opt in to a daily, weekly, or monthly summary of your store's key numbers, straight to your inbox.
- Per-item coupon breakdown. Discounts now show per item with strikethrough pricing, so customers see exactly how much each item was discounted.
Underneath all that is a deep list of fixes: 25+ on tax alone, plus solid subscription, payment, and checkout repairs (Paddle is noticeably steadier now).
Quick but important: this release has a few breaking changes if you use custom code. Two filters removed, EU VAT data moved, and a Bricks element renamed. Worth a read before updating if you have customizations. Details in the full post.
I also want to thank Juraj HudΓ‘k and Jorge de los Reyes, two people who shaped this release. Juraj's 218-field developer brief became the backbone of the tax model, and Jorge shaped how tax looks to the person actually paying, including the free EU VAT data that means FluentCart never has to call a paid tax service. This release is better because of them.
Full write-up with screenshots: https://fluentcart.com/blog/fluentcart-1-4-0/
If you sell in the EU or deal with VAT at all, update today. This is the release that makes FluentCart genuinely compliant out of the box.
More cooking π
A quick note on updating:
You may not see this latest version right away due to WordPress.org's new security cool-down period. After the 24-hour cool-down, the update will show up as normal.
If you want it instantly, you can use FluentHub (previously FluentKit) to grab the update right away.
FluentHub download: https://static.wpmanageninja.com/fluent-toolkit.zip
Is it possible to create a product type, such as a ticket? With user data - first name, last name, and a unique ID or data from checkout fields?
Hi Team,
-
Can/could we personalize the URL of a product page ?
Because by default, it seems to be "site.com/item/name-of-the-product". Since we have the opportunity to create "Categories", it would be logical (at least to me) to have the name of the category in place of "item". -
I just placed 1 image for a product, but this image is display 2 times in small at the bottom of the big one... So, 3 times the same image on the same page... What do I do wrong here ?

Hi team,
I'm currently customizing the "Customer Profile Page", and I saw this :
(Sorry if it has already been reported)

Hi,
I need to read an order's UTM values (utm_source, utm_medium, utm_campaign, utm_content, utm_id, utm_term) β the same ones shown in the order's "UTM Details" panel.
- The Webhook integration does not include UTM in its payload.
- $order->orderMeta has no UTM (only _fc_cid).
- The cart from Cart::where('order_id', $order->id)->first() has an empty utm_data.
Questions
- Where is an order's UTM data actually stored?
- How do I get those 6 UTM values for a given order in PHP (e.g. inside fluent_cart/order_paid_done)?
Thanks!
Where can I set the number of downloads for a product?
I can find activation limits, but no download limits
Happy to announce our very own EU One-Click-Withdrawal plugin for FluentCart and Woocommerce.
Full compliance and complete withdrawal and cancelation process for physical, digital and service products.
Release is planned within 2 weeks π₯³
Quick heads-up on the EU Cyber Resilience Act (CRA), because it may become relevant for people building and selling software, plugins, apps or digital products in the EU.
This is not βanother regulation for every websiteβ.
If you use a plugin like FluentCart on your own site, you are normally not the manufacturer of that product.
But if you develop and sell your own plugin, app, SaaS, AI tool or digital product under your own brand, the situation may be different. The CRA introduces cybersecurity-by-design obligations, vulnerability management, support periods, technical documentation, a vulnerability contact point, and reporting duties for actively exploited vulnerabilities or serious security incidents.
Full application starts in December 2027, but incident/vulnerability reporting obligations begin in September 2026.
Curious if the FluentCart / WPManageNinja team is already mapping how the CRA may apply to WordPress plugins sold in the EU. It could be an interesting topic for plugin makers over the next year!
Canβt wait to see the next FC updates!
I am making a fluent cart shop for one of my customer. The product loop is made with bricks query loop. I want to show product brands in loop but i cannot find dynamic value or way to do it.
Does FluentCart support migrating Membership subscriptions from another platform? In my case, the client has memberships with Bold Memberships (using Stripe payment gateway): https://boldcommerce.com/shopify/bold-memberships
Bold Memberships support says: "Unfortunately, there is no migration pathway available to migrate existing memberships from Bold to another platform.
However, you will be able to get the Stripe tokens directly from Stripe."
Do you have any documentation on how to achieve this?


