Two currencies, one page, Cart2... Limelight?

Right, here is the problem.

This page (for my email marketing service) gives clients the option to signup for an account and pay, presently only in GBP.

https://www.mailshotmonkey.co.uk/pricing/

I want to offer payments in either GPB or Euro.

I’m using @yuzoolthemes Cart2 for the checkout stuff, works well, but can’t handle multiple currencies. To all pages with Cart2 stuff on it you must add a Cart2 base stack, this contains the currency settings, along with the Stripe/PP account details.

I use Stripe and have two accounts with them; one for pounds, one for Euros.

I can not put two Cart2 Base stacks on the same page, that won’t work. I need an alternative solution.

My thinking is Limelight.

I will build two pages, each having the Cart2 base stack plus all the other pricing stuff that makes up that central product area on that page (see attached image).

One of these pages will be in pounds, and connect to my GBP Stripe account via the Cart2 Base stack, the other will work in Euro and connect to the Euro account.

When the client gets to the payment section instead of seeing the payment section (as per that image above) they will be asked to first select the currency: Euro or GBP. Once they’ve made a selection LL will pull in the relevant page in an iframe, and they can select and checkout as usual.

The crucial thing is, LL can’t load any of the pages by default, then just display the one that is selected. To get around the problem of not being able to have two Cart2 Base stacks on the same page, LL needs to only pull in the requested page AFTER the choice is made. Or, if it does pull in one of the pages by default, if the other page is selected, it needs to dump the default content before loading the new stuff.

Make sense?

I know the obvious thing to do here is just to make two complete pages, and let the user select the euro or GBP page at the start, but that doesn’t feel a very elegant way to do things. The above idea using LL, if it will work, is more complex but will end up with a cleaner experience for the user IMO.

@tav what are you’re thoughts on this one?

1 Like

Ran some tests… Half works. But he half that doesn’t is the crucial stuff.

https://www.mailshotmonkey.co.uk/pricing-new/

Sure enough the page displays the correct info, as expected, but the Base stack and the “View Basket” stack appear to be perpetual. In that, LL loads all the content, only displaying what is selected. Opposed to only loading and displaying the selected content. So, add an item to the basket in one LL and it’s still there in the other.

Doubt there is a way around this?

Drawing board time? Two entirely separate pages?

Limelight will lazy load the content - I.e. it will still load the content, it just won’t render block the page.

I could give you the option of not loading at all until the Lightbox opens which would solve the problem but, what happens if someone changes the currency again then - can you make the page reload so that it doesn’t try to load a second cart?

Ya, that was one of the things I was trying to get my head around, the changing currency thing. Fucking indecisive c**ts, just the sort of thing they’d do.

I kinda figured this idea wouldn’t work, but want to try it out.

I’ll set about making two unique pages.

Thanks fo the input.

OK, working this one thru, and now just updating this thread in case anyone else tries to do the same thing…

Separate pages for each currency works, but you have to break the Cart2 rules.

I can’t link to a published sample yet, but I’ve tested locally and it’s working.

You need a main page, where users select currency one (GBP for me) or currency two (Euro). They then visit a unique page with the Cart2 stack on them. They can add to basket and checkout is whatever currency the Cart2 base stack is setup, or more accurately which currency the Stripe account it’s connect to works in.

Now the rule breaking bit…

To cope with people jumping between the two pages with stuff in their basket, and so completely breaking everything (the Basket Stack is perpetual over all pages the stack is on) you have to put a Cart2 Clear stack on the page AS WELL as Cart2 base and the add to basket stacks.

This in theory breaks Cart2, as it clears the basket, but when handling two difference currencies in the way I’ve done above, it’s the only option.

Simply put, if the user leaves the GBP currency page to visit the Euro one, their basket is automatically emptied, same if they go from euro to euro.

Having the Cart Clear stack on the page WITH all the other Cart2 stuff doesn’t appear to stop successful checkout. I’ll know that 100% once I can get it live and try it for real, but in testing it all works fine.

Hope that helps anyone wanting to use Cart2 for different currencies.

1 Like

Good workaround @steveb and interesting to see this in the wild 👍