Migrating to Advanced Payment Flow
This article describes differences and possible required actions for migrating to the Advanced Payment Gateway flow.
Difference #1: Payment Gateway And Domain Settings
Currency is no longer selectable for payment gateway when Advanced Payment Flow is enabled.
Instead of a full currencies list you will be provided with the currency/country pairs that are taken from domain settings of all your domains.
In order to setup/change currency you should go to the domain settings and choose (or create first) a culture that contains desired currency.
When Advanced Payment Flow is enabled you have an ability to setup several stripe (or any other) payment gateways.
One gateway per one unique currency/country pair.
Required Actions
Once feature enabled this change requires you to check if your domains have proper countries and format settings selected. And apply proper once if not.
Example:
You have AUD currency selected for stripe.
Once the flag is enabled your Payment Settings page will be changed from this:
To this:
You can see that Gateway now is not selected. That’s because the system set default country to UNITED STATES and format setting to Default (that contains USD currency) by default.
In order to see and/or change these settings you should go to the domains page. You can see all your domains and their countries and format settings.
If your site is not configured for UNITED STATES and USD currency then you need to go to the CURRENCY AND FORMAT tab first and create your format setting.
Let's name it AUD and select appropriate currency and culture and click save.
Your format setting should appear in the list of format settings.
Now we go back to the SITE DOMAINS tab and for each domain just choose AUD format setting.
Due to the background transition that was applied once this flag was added - your payment gateway setting, secure zone recurring prices and event prices were converted to the following:
Currency was attached based on payment gateway settings (all is good here)
Unfortunately, the country that was attached as the default one is UNITED STATES.
This means that in order to save consistency you should not change the domain country. Otherwise you would have to reset all secure zone recurring prices and event prices.
Difference #2: General Payment Forms.
HTML layout of the form should be changed.
Then use the following required actions.
Required Actions
Go to the Edit Layout section of the form.
Remove data attributes for order name and description.
They will be set on the backend by the internal rules.
PaymentType
field was reworked to accept payment types not payment gateway as it wrongly did before.
Rename select field name attribute to Payment_Type
Replace stripe option to the CreditCard option.
Advanced Payment flow allows you to have following options:
CreditCard
Replacement of the old stripe type. Gateway will be determined by the current domain instead.
Stripe key, currency and other gateway staff now passed via get params of the payment gateway js that is automatically attached to the head of the page if page contains at least one component type form with selected accept payment field
Free
Option that is accepted only if the submitted amount is equals to 0
. Submitting such a form still creates an order-form_submission pair.
Offline
Option that allows creating order in Awaiting Payment state. So you will be capable to add offline payment on order -> Payments tab that will change order state to Success
Replace
<input type="hidden" name="paymentData" value="">
with the
{% component type:"payment_form_fields", formAlias:"{{this.alias}}" %}
Remove this liquid code. It’s not needed any more.
Amount
field was transformed to Payment_Amount
field.
Value of the this.paymentAmount
will be set based on price param if form does not contain any secure zone with paid recurring subscriptions.
If the form contains such a secure zone then price value will be overridden by sum of all paid subscriptions.
Difference #3: Recurring Subscriptions to Secure Zones
HTML layout of the form should be changed.
Then use the following required actions.
Required Actions
Replicate all actions that are described in the Difference #2.
Go to all your recurring secure zones and verify that prices were migrated to the new payment model correctly.
If it is empty then there are several possible reasons for that:
You have not set country and format settings for your domains.
In this case please follow the actions described in the Difference #1.
You set a country for the domain that is not UNITED STATES. In this case either return the country back to UNITED STATES or set and save the price manually.
Price wasn’t migrated correctly to the new model. The price should be set and saved manually.
Difference #4: Event Subscription forms (with and without payment)
HTML layout of the form, AND the Form Type, should be changed.
Then use the following required actions.
Required Actions
Go to the Form Builder section of the form and change form type from Generic to SingleItem and click save.
Then follow the guide below for the event subscription form without payment.
Go to the Edit Layout section of the form. Remove this liquid code since this is now unnecessary.
If
liquid code is unnecessary. Remove it.eventId
field should be renamed toPayment_ModuleItemId
.Value should be changed to
{{this.moduleItemId}}
.allocations
field should be renamed toPayment_ItemQuantity
Add
data-event_one_item_price="{{this.paymentAmount}}"
data attribute to the field so it will be calculated by CMS payment js.If your event subscription form also accepts payments then follow the actions described in the Difference #2 additionally.