You know those issues that you come across that seem impossible to fix? This is one of them. I do work and make sales in several currencies, but mainly EUR, USD and GBP. My home/base currency is GBP, but as I say, I have billed in all these currencies, and my most used is USD. A lot of my international development and/or other work is in USD.
I have been looking for a true way to invoice using multi-currency, and I have failed every time until today. WooCommerce can do it, but it requires several add-ons, and they break often because it’s not a native solution its differnt things cobbled together to achieve the outcome and its not quite robust enough. SureCart doesn’t have true multi-currency support; it’s all converted but billed in the base currency. It does have the best invoicing module, though, and FluentCart can’t do it natively either. I have recently tried several CRM plugins like BitCRM, but again this is limited to the base currency of WooCommerce.
Today’s Progress
I was purchasing an offer from a developer I like, Gaurav Tiwari, specifically his beta booking plugin and noticed he offered an extension for FluentCart called GT Extension for FluentCart, and this was the first step in what I needed; it offers the ability to have fully independent currency collection and gateways per currency too. This is true multicurrency, not playing at it.
After a few tweets exchanged with Gaurav, I purchased it and thought I’d give this a go. Now I already have a FluentCart Invoice plugin. FluentCart Invoices, speaking to Gaurav, he will be adding his own invoices to GT Extensions at some point very soon as well as some extra modules that make this a no-brainer if you’re using FluentCart.
I have already seen the development screenshots, and it’s looking really promising. This will be what I will eventually end up using unless CartCube has functionality I need, after all, once developer-owned invoicing and multicurrency beat Woo hands down and is less likely to go wrong. But as I have already bought FluentCart Invoices, I wanted to test it out and see if I could get the two talking to each other.
I noticed a few issues with being able to update and inject new pricing and links into the emails and URL generation, and I raised a support ticket with CartCubes within about 40 minutes; not only did they respond positively, but they had pushed a new version with the added filters for me. 1.0.1 is what I needed to hook everything together. Kudos to them on this. I wish more developers would be so receptive to hooks and filters; they are the bread and butter of WordPress development, and having them is vital for what WordPress is good at: custom development.
Connecting the two
I was able to get the two to talk to each other using a snippet once I understood how GT Extensions multicurrency worked and the invoices were created in FluentCart Invoices. It allowed me to use the GT Extensions URL parameter options and lock the currency selection down on these invoices. And it worked. Now it took me a little longer to work out how to hide the currency selector from GT Extensions on invoices, i.e lock it to the multi-currency, but it was possible using some always-loading scripts on checkout
