Changelogs

Follow the improvements and fixes in each product release.

GT Extensions for FluentCart

Extend FluentCart with local pricing, invoices, quotes, checkout designs and customer tools. Enable only the modules your store needs.

Explore Product

Release History

Permalink

2.6.2

GT Extensions for FluentCart 2.6.2

  • Add six invoice designs: Amount First, Letterhead, Ledger, Catalog Cards, Project Statement, and Tax Detail. Preview each layout without creating an invoice, and choose a layout per invoice or as the store default. The editor groups project name, period, and customer-facing scope beside the template choice.
  • Add project names, service periods, and item descriptions. FlowMattic invoice items can choose a bundled icon or a public HTTPS image URL; the image follows the invoice into FluentCart’s order and checkout.
  • Expand Back-in-stock alerts with status totals, per-option demand and stock state, product/SKU search, and status filtering.
  • Give invoice controls clearer action groups and icons, better manual-tax field spacing, and help text that explains what customers see and how totals are calculated.
  • Add a paused FlowMattic import for turning completed Core Forms submissions into reviewable invoice drafts. The form event ID prevents duplicate drafts on workflow retries. Drafts create no native order and send no customer email until a merchant issues them.
  • Add the gtfc/lifecycle WordPress action for quote requested, quote accepted, invoice issued, and invoice paid transitions. One flat payload carries an event type and stable event_id, with no private proposal or payment URL. A paused FlowMattic trigger import is included.
  • Point the in-plugin guides and training links to the current customer portal lesson routes.

The FlowMattic imports are under docs/flowmattic/. Open the imported Plugin Actions trigger, enter its hook, capture a sample, configure its action, and enable it after testing. The invoice draft template also requires the GTFC integration key and form-specific field mappings. See the bundled setup guide.

Requires FluentCart. Invoice and newer store modules require FluentCart 1.6.4 or later.

Permalink

2.6.0

GT Extensions for FluentCart 2.6.0

Invoice improvements

  • Create invoices from FlowMattic through the keyed, idempotent gtfc_create_invoice PHP function. Paused import templates for webhook and WordPress custom-action triggers are included under docs/flowmattic/.
  • Edit unpaid invoices while preserving their invoice number. Reissuing creates a new native FluentCart order and revokes the old payment link. Paid, partially paid, and refunded invoices stay locked.
  • Choose a template per invoice, configure the default layout and invoice numbering, and edit or hide the company registration label.
  • Apply a custom tax amount to a custom invoice item, or use FluentCart’s configured tax calculation. Billing address fields are available to automation.
  • Improve dark-mode admin text contrast and add the bundled invoice icon.

Included since the previous GitHub release

  • The 2.5.0 general-store modules: custom invoices and quote proposals, five checkout designs, service products, wishlists, back-in-stock alerts, checkout fields and add-ons, delivery scheduling, and saved carts.
  • Multi-currency checkout and gateway routing refinements, customer and seller invoice profiles, contextual documentation, and conditional minified assets.

Requires FluentCart. Invoice and newer store modules require FluentCart 1.6.4 or later. See the bundled readme.txt and docs/INVOICE-AUTOMATION.md for details.

Permalink

2.4.2

Load the External Product resolver only where a product can appear.

  • Its script and stylesheet were enqueued on every request, so about 11KB downloaded and a DOM scan ran on posts, pages, and the home page that never render a FluentCart button.
  • The decision now runs through the shared storefront check every other module already uses, so External Product also recognises the configured cart, checkout, shop and account pages and FluentCart shortcodes.
  • FluentCart blocks rendered outside post content, such as template parts and saved page blocks, still get the resolver.

Product pages, product archives and categories, the store pages, and any post embedding a FluentCart block or shortcode are unaffected.

Permalink

2.4.1

Patch release for 2.4.0.

Converts product prices a theme renders itself. 2.4.0 made the storefront currency symbol follow the visitor’s selection, so the cart drawer would stop labelling converted amounts with the store currency’s sign. Prices inside FluentCart’s own blocks were converted to match — but a theme can render a product price too, reading the cached price span straight from the database and formatting it with FluentCart’s helper. No filter can reach a number obtained that way, so such a price showed the right symbol against an unconverted amount.

Single product pages are now transcoded in one pass over the whole response, which covers theme and third-party output as well. The page pass and the per-block passes are mutually exclusive, so nothing is converted twice, and the buffer returns the original markup on any error rather than swallowing the page.

Also maps the stored price-span columns, so a product whose cached span has drifted from its variations still converts.

Everything in 2.4.0 is included.

Permalink

2.4.0

Multi-currency correctness

  • Cart totals were converted twice. FluentCart fires cart/can_purchase before cart/item_price against the same in-memory variation, so the price filter re-applied the exchange rate to an already-converted amount and a ₹480.00 line rendered as ₹46,219.00.
  • Every product-page price now converts, not only the one FluentCart exposes a filter for. The compare price, header price range, and variant cards previously kept store-currency amounts, so a converted price sat beside an unconverted one. Manual price-book entries still win over the exchange rate.
  • The currency symbol follows the selection across the whole storefront, not just checkout, so the cart drawer no longer labels converted amounts with the store currency’s sign.
  • Receipts and order confirmations report the currency the order was charged in. FluentCart’s receipt renderer formats every amount with no currency argument.

Features that were silently disabled

Seven hooks were registered under names FluentCart does not use:

  • cart/validate_add and cart/validate_update do not exist — can_purchase is the gate Cart::addItem() actually runs, so minimum/maximum quantity limits and guest purchase blocking were enforced only in the browser and a direct cart request bypassed them.
  • fluent-cart/product_stock_availability was hyphenated; product/buy_now_text, product/show_add_to_cart, variation/data and admin_js_vars do not exist at all.
  • is_singular('fct_product') tested a database table prefix rather than a registered post type, so module CSS printed on every page of the site while the matching scripts ran on none.

External Product admin screen

Rebuilt: saves over AJAX with inline status (the no-JS form post still works), card layout, dependent fields that disable while redirection is off, client-side URL validation, a live button preview, and a readout of the exact rel attribute that will ship. FluentCart’s product navigation is now styled, since FluentCart does not load its admin stylesheet on a custom submenu page.

Performance

A variation’s whole price book is read in one query and reused. The currency selector’s stylesheet, script and cart lookup load only where a price can appear, and its uncacheable status request no longer fires on pages with no selector.

Requires FluentCart 1.5.5 or newer. Verified against FluentCart 1.6.1.

Permalink

2.2.0

What’s new

  • Add External Product with per-product URL, button text, link target, nofollow, sponsored, and price-visibility controls.
  • Replace storefront purchase controls across product pages, cards, and standalone FluentCart purchase blocks.
  • Redirect legacy instant-checkout links and reject external products in local cart and checkout validation.
  • Remove the bundled FluentCart Core and Pro source; FluentCart is now an independently installed dependency.

Requirements

  • WordPress 6.0 or newer
  • PHP 7.4 or newer
  • FluentCart 1.5.5 or newer for External Product and Multi-Currency Checkout
Permalink

2.1.6

Fixes currency switches that could change only the symbol while retaining the previous numeric amount.

  • Binds currency REST reads and writes to the exact FluentCart checkout hash.
  • Reprices stale cart amounts before updating symbols or gateway routing.
  • Keeps catalog formatting from inheriting checkout-only currency symbols.
  • Preserves currency-aware gateway validation for INR, USD, EUR, and GBP.
Permalink

2.1.5

Complete local-currency support for FluentCart block checkouts.

  • Resolves currency before WordPress constructs checkout inner blocks.
  • Restores saved cart currency on every checkout request.
  • Synchronizes FluentCart normalized formatting with cart currency.
  • Keeps symbols, selector state, totals, and currency-based gateway routing aligned.
Permalink

2.1.3

Checkout currency-context restoration patch.

  • Restores the saved cart currency into FluentCart formatting on every checkout request.
  • Prevents stale base-currency symbols and selector state after automatic repricing.
  • Keeps totals and currency-based gateway routing synchronized.
Permalink

2.1.2

Checkout rendering synchronization patch.

  • Resolves local currency before WordPress pre-renders FluentCart checkout inner blocks.
  • Keeps the first response currency symbol, selector, totals, and gateway routes synchronized.
  • Retains shortcode and block-checkout compatibility from 2.1.1.
Permalink

2.1.1

Patch release for FluentCart checkout-block compatibility.

  • Resolves location currency before block checkout prices render.
  • Shows the currency selector on block and shortcode checkouts.
  • Synchronizes currency-aware payment gateway routing with block checkout totals.
Permalink

2.1.0

Local currency at checkout

  • Automatically selects an enabled local currency when checkout loads.
  • Resolves location from billing country, shipping country, then Cloudflare visitor country.
  • Reprices the full cart in the configured default currency when the local currency is disabled or cannot price every item.
  • Preserves manual customer currency choices and refreshes automatic choices when checkout country changes.
  • Keeps checkout display, gateway routing, REST hydration, cart state, and order currency synchronized.