Skip to main content

Our goal with FluentCart is to be conversion-focused at the core and accessible for everyone. Video support in the product gallery is part of that. For a lot of products, a short video sells better than anything you can write, and now you can use one.

With FluentPlayer, the free one is enough, and a Video tab shows up in the gallery dialog. Paste a YouTube or Vimeo link, a direct video URL, or pull something from your FluentPlayer library. You can drag it among your images and it plays inline where the main image goes. Put it first and that is what people see when the page loads.

A few other things in this release:

  • Your staging site can't bill your live customers anymore. Test mode blocks renewals, scheduled charges and reminder emails.
  • Stripe hosted checkout shows a line per product instead of one lump total.
  • Product pages load faster. A huge performance improvement.
  • Zero-decimal currencies like JPY and HUF finally behave across PayPal, Stripe, Mollie, and Authorize.Net.

Plus some smaller fixes and improvements.

Full notes: https://fluentcart.com/blog/fluentcart-1-6-4/

PS: We have a few more exciting features lined up for next week. Let me know what you think of this one in the comments.

There are a few features I'd love to see in FluentCart that don't quite exist yet. Is anyone using any third-party plugins (for pre-orders or wishlist for example) for fluent cart that they really enjoy? I'm looking for some features specifically but am also just looking to survey the landscape a bit.

Hello Team,

We would like to limit how many times a customer can download a file after purchase, and how long the download stays available.

The documentation already describesΒ fct_order_download_permissions, withΒ download_count,Β download_limit, andΒ access_expires:Β dev.fluentcart.com/database/models/order…ownload-permission.html

The table exists on our site, but it does not receive any rows when a customer downloads a file from the customer portal. The API also acceptsΒ download_limitΒ andΒ download_expiryΒ on downloadable files, but these fields are not shown in the product editor.

Could you let us know if download limits (count and expiry) are planned for a future FluentCart update, including a setting in the product editor?

Is anyone using Amazon FBA for their store fulfilment and require a direct integration with FluentCart?

Hello
How can we add a processing fee to digital or physical products?

Hello everyone,

Some store owners need to bill for work, retainers, or custom amounts that are not catalog products. CartCubes Invoices for FluentCart covers that.

You write a custom invoice, then copy or email a Pay Now link. The client pays in FluentCart instant checkout. Prices come from the invoice, not the URL.

Custom invoices, not catalog products

Invoice lines are not shop products. You do not add them to your catalog.

  • One-time: multiple lines, each with a title, amount, and quantity
  • Subscription: one amount, billed on a schedule, with optional trial days and a signup fee
  • During a trial, checkout charges only the signup fee or $0 until the trial ends

Search an existing FluentCart customer, or add a name and email for this invoice. Save as draft or pending, then send the Pay Now link.

Ghost product (how Pay Now uses FluentCart checkout)

FluentCart instant checkout needs an item to charge. Invoice lines are not catalog products, so the plugin builds a temporary custom item at checkout. That is the ghost product.

  • It exists only for that Pay Now checkout. It does not appear in your shop or product list.
  • Title, quantity, and price come from the invoice on the server. Changing the URL does not change the total.
  • A one-time invoice with several lines becomes several checkout lines. A subscription invoice stays one recurring amount, with trial and signup fee when you set them.
  • After payment, FluentCart creates a normal order. The invoice is marked paid and linked to that order.

Also included

  • Copy link, email Pay Now, or send a reminder from the list or the edit screen
  • Optionally block coupons on that invoice checkout
  • Pay Now and Reminder email templates
  • Optional automatic reminder after an invoice has been pending for a set number of days
  • Mark paid without checkout, or cancel so the Pay Now link stops working
  • Admin notes stay private

Details and screenshots:Β https://cartcubes.com/fluentcart/invoices/

1.00

1.00

Ok, so I'm trying to build out a store using Bricks Builder and Fluent Cart. I've discovered that nearly all of the elements available to me in the Builder rely on inserting FluentCart elements to a page. And of the available dynamic data fields, the only one that seems to work for me is the Product Title and Product Price. All of the other fields like Product View or Product Excerpt (is that supposed to be the same as product description?) don't populate dynamic values. And the only reason I have the product image populated is because I used the wordpress standard Featured Image. I've included a link to a product with my in-progress template applied.

Is there something I need to do to get these value to show on the front end? It would be nice to be able to populate my Bricks Builder elements with Fluent Cart values so that I have complete control over styling and functionality. Any insight would be helpful. Thanks!

https://knotenoughstitches.com/item/make-along-market-bag/

Is it possible to set an end date for a subscription so that it does not renew or recur?

We really would like people to trial without putting their credit card info in and then sending them reminders about their trial ending and have them pay if they want to continue.

Many of the people that sign up forget or their life changes and do not want to continue. However, since the charge gets processed (cuz many, many people don't actually read their emails), we keep having to refund money and that is costing us money.

I will be offering single stand-alone video clips and clip packages. I have Fluent Player Pro to help show preview videos of the for sale clips. If anyone is available to help me, I can pay you for your services.

First of all, thank you for fixing the stray text domains. Under 1.6.3 there
were still 49 translation calls sitting in the fluent-cart-bricks-blocks
domain, which is never loaded, so those strings could not be translated at all.
Under 1.6.4 there are none left. That one is closed, and it is good to see.

I re-measured the other five points from my August post against FluentCart
1.6.4 and FluentCart Pro 1.6.4
on our staging site. All five are unchanged,
so here they are again, short.

1. Apply and More carry two meanings each and have no msgctxt

8 calls of Apply and 2 of More, none of them with a context argument.
Apply is both "apply a coupon" (German: EinlΓΆsen) and "apply a filter"
(German: Anwenden), and a single msgid cannot be both. Adding _x() with a
context would solve it without touching the English text.

2. Country names are sorted by their English spelling

app/Services/Localization/i18n/countries.php returns 250 __() calls in
English alphabetical order, and the select list keeps that order. On a German
store the list therefore starts with Afghanistan, Γ„gypten, Albanien, where
Γ„gypten belongs under Γ„. Sorting the labels after translation, with the site
locale's collation, would fix this for every language.

3. The order heatmap reports country names, not ISO codes

DashBoardReportService.php:225 emits 'name' => $countryName. The map
component matches on that string, so a translated name no longer matches.
Passing the ISO code alongside the label would let the map keep working in any
language.

4. text-transform: capitalize in the shipped CSS

30 occurrences in the core plugin, 1 in Pro. German capitalizes nouns but not
adjectives or verbs, so capitalize turns a correct German label into an
incorrect one, and there is nothing the translation can do about it. We switch
it off from our plugin, which is why we noticed.

5. Currency symbol and amount are joined with no separator

In assets/chunks/CurrencyFormatter.js all three places build the string as
${sign}${amount} or ${amount}${sign}. German writes the amount first and
the symbol after it, separated by a non-breaking space: 19,99 €, not 19,99€.

The bundled framework already knows the idea: Support/Number.php:86 has a
space_with_currency flag in toCurrency(), but nothing calls it, because the
formatting happens in JS.


On dates and times: those are not part of this post. The beta build I
received on 11 September covers them and the 1.6.4 release does not, so I am
giving that feedback in the support channel instead.

Everything above was measured on our staging install running 1.6.4 and Pro
1.6.4. Glad to test a patch there whenever it helps.