UPDATES: All new article

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.

Payment Settings - Currency/Country pairs

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.

Stripe currency selection example

Once the flag is enabled your Payment Settings page will be changed from this:

Payment Settings page before change over

To this:

Payment Settings page after change over

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.

Domain Country and Currency/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.

Create Currency/Format settings

Let's name it AUD and select appropriate currency and culture and click save.

Currency/Format settings example

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.

Apply Currency/Format settings to domain

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:

  1. Currency was attached based on payment gateway settings (all is good here)

  2. 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.

Adjusting Form layout

Then use the following required actions.

Required Actions

General Form layout changes

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.

Adjusting Form layout

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.

Recurring Secure Zone payment settings

If it is empty then there are several possible reasons for that:

  1. You have not set country and format settings for your domains.

    Domain Country and Currency/Format settings
  2. In this case please follow the actions described in the Difference #1.

  3. 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.

  4. 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.

Adjusting Form layout

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.

SingleItem form type change

Then follow the guide below for the event subscription form without payment.

Event Subscription Form layout changes
  1. Go to the Edit Layout section of the form. Remove this liquid code since this is now unnecessary.

  2. If liquid code is unnecessary. Remove it.

  3. eventId field should be renamed to Payment_ModuleItemId.

    Value should be changed to {{this.moduleItemId}}.

  4. allocations field should be renamed to Payment_ItemQuantity

    Add data-event_one_item_price="{{this.paymentAmount}}" data attribute to the field so it will be calculated by CMS payment js.

  5. If your event subscription form also accepts payments then follow the actions described in the Difference #2 additionally.



Related Articles

  • Payment Settings
  • Orders
  • {{ order }} object
    This liquid object will output the order details of a submitted payment. {% capture data...
  • module (Catalogs)
    This module component fetches data relating to eCommerce Catalogs and can be used to render Catalog structures and Products within them.
  • module (Products)
    This module component fetches data relating to eCommerce Products and can be used to render Product information.
  • ecommerce_add_to_cart
    This component renders an anchor element allowing the javascript function to add the item to the shopping cart.
  • ecommerce_buy_now
    This component renders an anchor element allowing the javascript function to add the item to the shopping cart and then proceeding directly to the shopping cart page.
  • ecommerce_item_quantity
    This component renders a form input element allowing a quantity to be set for when the source item is added to the shopping cart.
  • item_attributes
    This component fetches all attributes/options for a specified product. By default, each attribute group is rendered, with its options and any prices, according to their specified form inputs.
  • related_items
    This component fetches related items of a specific source item, such as a Product that has had Related Products assign to it.
  • grouped_items
    This component fetches grouped items of a specific source item, such as a Product that has been Grouped with other Products and allows the ability to navigate between grouped items.
  • currencies
    This component renders a form select element of all currency names, codes and symbols by default, and can also be used to output currency data to a Liquid collection.
  • shopping_cart
    This component fetches data relating to the shopping cart, such as any products added, order totals, tax, shipping, etc.
  • shipping_options
    This component renders a form select element of all shipping options configured on the site, and can also be used to output shipping option data to a Liquid collection.
  • tax_codes
    This component renders a form select element of all tax codes configured on the site, and can also be used to output tax code data to a Liquid collection.
  • payment_form_fields
    This component is used to render payment fields, and payment related validation errors, within a form using the capabilities provided by your configured payment gateway.
  • orders
    This component fetches Orders from the CRM, either owned by the logged-in user or for all customer Orders.
  • Getting Started
    With the recent release of eCommerce features there are some advanced system components that are...
  • Products
    Products are one of the most powerful and flexible modules in Treepl CMS. Create customised product schemas with multiple price points, catalogs, inventory tracked attributes/variables, SEO optimisation and more.
  • Catalogs
    When organising any eCommerce store, Catalogs are crucial to your Products structure and browserbility. Easily create and customise unlimited product catalogs for your online store.
  • Gift vouchers
    Gift vouchers can be issued to your customers or purchased by them online via the shopping cart.
  • countries
    This component renders a form select element of all country names and country codes by default, and can also be used to output country codes/names to a Liquid collection.
  • domain_settings
    This module component retrieves settings associated with the current domain, or optionally from another specified domain configured in the site instance.
  • Shipping options
    Treepl CMS provides the ability to configure custom shipping options based on a variety of conditions during the shopping cart stage.

External Resources

There are currently no external resources available.

Please let us know if you have any other contributions or know of any helpful resources you'd like to see added here.


Questions?

We are always happy to help with any questions you may have.
Send us a message at support@treepl.co and we will consult you as soon as possible.