Store 5.0 Update Notes

Store 5 includes upgrades to all payment gateways. One of the main areas that this release addresses is the new European strong customer authentication (SCA) directive.

New Server Requirements

Store 5 aligns it’s minimum requirements with ExpressionEngine 5. https://docs.expressionengine.com/latest/installation/requirements.html#recommended-requirements

Stripe Payment Gateway Changes

For the Stripe payment gateway, a number of specific changes are needed for this upgrade. To be SCA compliant, Store has been upgraded to use the Stripe Payment Intents API in conjunction with Stripe Elements. To help with this transition, we have provided a sample template and an easier way to add required Javascript to your page.

  • To add the necessary Javascript for Stripe Elements, there is a module tag that you can add to your checkout page to easily set up what you need. {exp:store:stripe_js} This tag accepts a single argument publishable_api_key which will contain your public Stripe key. Example: {exp:store:stripe_js publishable_api_key="pk_test_stripe_key"}

  • To help you get started, there is now a Stripe specific checkout template sample. This can be found under templates/checkout-stripe.html. If you are installing the default template set as a starting point, you can edit the templates/checkout2.html file and modify the {exp:store:checkout} tag to redirect to that template instead of checkout3. Just add next="store_example/checkout-stripe" as the template to redirect to.

  • Note: by default, Store only provides the minimum fields required for a Stripe payment to be processed. Store is not opinionated about the end users implementation or what additional fields are collected during checkout (such as name, address, etc.). If you wish to customize or style your checkout form differently, add additional fields or meta data, you can follow normal Stripe guidelines based on their documentation at https://stripe.com/docs. This may mean that you won’t be able to apply the example {exp:store:stripe_js} tag, and instead add your own custom javascript to your website markup.

####Stripe Multilingual notes Stripe Elements will accept a two letter language abbreviation if you need to change the English language default. Stripe’s current supported values are: ar, da, de, en, es, fi, fr, he, it, ja, lt, ms, nl, no, pl, ru, sv, zh

If you opted to use the {exp:store:stripe_js} template tag solution, there is a language parameter available if you’d like to specify a different language. As an example, if you have specified a language in a global variable, such as $assign_to_config['global_vars']['language'] = "de";, then you could call the template tag like {exp:store:stripe_js publishable_api_key="pk_test_stripe_key" language="{language}"}. Similarly, if you have enabled other third party multilingual extensions, you could pass in options such as {transcribe:language_abbreviation} or {publisher:current_language_code} to the language parameter to change the default.