# Release 102

### Highlights

| <p>- <strong>Fast, flexible checkouts:</strong> Google Pay in checkouts, Google Pay Express Checkout, custom subcomponents in the Modular Checkout<br>- <strong>Work confidently:</strong> Builder column in the page Shop Builds table, payment manager and validation refactor<br>- <strong>Work fast:</strong> Improved filtering in offers, products, add-ons, pages v2<br><br><strong>⚠️ Please note there are breaking changes in this release. Please see the "Payment Manager refactor" below for more information</strong></p> |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

*Please remember to perform a hard refresh in your browser after upgrading your environment.*

*Note: There is no Release 101.*

### New Features and Improvements

**New Google Pay integration**

We have now introduced an out-of-the-box integration with Google Pay! This allows you to configure your checkouts to allow Google Pay as a possible payment method. Once users have followed the relevant steps in the [Google documentation](https://developers.google.com/pay/api/android/overview) to get all the credentials necessary - the configuration can all be handled from within the Limio interface.

<figure><img src="/files/5DFApSbpuzPC6oOCST2l" alt=""><figcaption></figcaption></figure>

*Screenshot: Access the Google Pay settings in Limio Settings > Google.*

If you are using Zuora, you will need to use the [Adyen](https://knowledgecenter.zuora.com/Zuora_Payments/Payment_Methods/B1_Define_Payment_Methods/B3_Set_up_Adyen_Google_Pay) or [Chase](https://knowledgecenter.zuora.com/Zuora_Payments/Payment_Methods/B1_Define_Payment_Methods/B4_Set_up_Google_Pay_on_Chase) gateways to leverage this feature.

We've made a video to help you get started more quickly on this exciting new feature:

{% embed url="<https://www.loom.com/share/d433e99720494892aaed132cb8ea7f62>" %}

**Google Pay in Express Checkout SDK**

As well as adding Google Pay as a payment option in a checkout, we have also added Google Pay to the Express Checkout SDK. This means that you can allow customers to use Google Pay to checkout directly from a landing or offers page.

<figure><img src="/files/ewxOvlKirvxGJSUQlh3M" alt=""><figcaption></figcaption></figure>

*Screenshot: Show a Google Pay button directly on an offer card, allowing your customers to skip a longer checkout screen.*

Read more about our Express Checkout SDK here: [https://docs.limio.com/developers/limio-sdk/advanced-methods/express-checkout](https://docs.limio.com/developers/limio-sdk/advanced-methods/express-checkout "mention")

**Allow for custom subcomponents in Modular Checkout**

We now support custom subcomponents in the Modular Checkout - giving a great deal more flexibility to Limio Commerce users to ensure their checkouts can meet every use case. Similar to custom components, these subcomponents can be built using our SDK and incorporated into the Form component.

Read more about getting started with custom subcomponents here: [https://docs.limio.com/developers/custom-components/custom-subcomponents](https://docs.limio.com/developers/custom-components/custom-subcomponents "mention")

**Separate Save and Page Build function**

In order to reduce stress on the build process and prepare our page builder for future improvements, we've separated out the Save functionality and the page Build functionality. Now, the Save button will not automatically build your page. Instead, you'll need to click Builds and Rebuild to trigger the page Build. Mass build and publish still works the same as before.

This affects Pages v1, Pages v2, and Campaigns.

<figure><img src="/files/C8nhWbMoSYRoQQkVQKTQ" alt=""><figcaption></figcaption></figure>

*Screenshot: Users will need to click Builds > Rebuild to build a page instead of relying on the Save button.*

**Builds view includes person who built the page**

We've added a new column to display the username of the user who last built a page. This can help distinguish between building and publishing actions.

<figure><img src="/files/n4EUUKZ8Gb5Y4Ee4p9RE" alt=""><figcaption></figcaption></figure>

*Screenshot: The Builder column is now displayed in the Shop Builds view.*

**Zuora Catalog Sync conserves Offer attributes**

We have made an improvement to the Zuora Catalog Sync for those who make changes from within the Limio offer catalogue after a synced offer is created. Now, if a user amends attributes in Limio to a synced offer, then re-runs a sync from Zuora, the offer attributes from Limio will persist and will not be overwritten by what's in Zuora.

Read more about the Zuora Catalog Sync here: [https://docs.limio.com/integrations/keeping-zuora-and-limio-in-sync/sync-between-limio-catalog-and-zuora-catalog](https://docs.limio.com/integrations/keeping-zuora-and-limio-in-sync/sync-between-limio-catalog-and-zuora-catalog "mention")

**Order\_id in order\_complete\_view event**

We have now added order\_id as a new field to the order\_complete\_view event in the data layer. This will help with tracking the customer journey from offer selection to order completion.

Read more about the Data Layer here: [How to Configure the Limio Data Layer](https://docs.limio.com/product/analytics/how-to-configure-the-limio-data-layer-to-collect-user-events-for-analytics)

**Improvements to filtering columns in the catalog**

We've been improving the overall search functionality of the Offers, Products, Pages v2, and Add-ons tabs in the catalog. Along with making the filtering functionality more robust, we've made the following specific improvements:

* Offers, Products, Pages v2, and Add-Ons: New filter by template,
* Pages v2 only: New filter by tags, published status, publish date
* Offers only: New filter by product name, product rate plan
* Filters match text in a case insensitive way
* Name is an anchored filter and is visible on page load
* Booleans filter correctly now, meaning that when you add a boolean filter and set the value to false, only results with the boolean as false will appear. Results where there the attribute is not present will no longer appear.
* Select all/clear for attribute types which allow multiple values selected.
* Choose between ALL or ANY operator for attributes with multiple selectable values. For example, if you want to show all page results where attached offer label is either OfferA OR OfferB, then you could configure the filter to show ANY. If you wanted to show all page results where attached offer label has both OfferA AND OfferB, then you could configure the filter to show ALL.
* When using a string-based filter, the order of the words no longer matters. For example, if you are searching for a page called "Digital 2024 Europe", you could search "2024 digital" and still see the result for "Digital 2024 Europe".

<figure><img src="/files/zwaDkt1azAaT90CeLWF9" alt=""><figcaption></figcaption></figure>

*Screenshot: Users can now select ANY (or) or ALL (and) functionality in filters that have multiple values selectable.*

**Payment manager refactor**

We've been working behind the scenes to improve the reliability of our payment manager. We've refactored the payment managers that drive both Single Page Checkout and the Modular Checkout, though there should be no changes in functionality to either Limio Commerce users or end customers besides the breaking change described below.

⚠️ Note: This enhancement has a breaking change regarding Apple Pay.

Previously, Limio Commerce users had to include an Apple Pay script in the Inject Code attribute on any pages they wanted to use Apple Pay. Now, these script injects must be removed in order for Apple Pay to display successfully to customers. If it is not removed, the modal will not show consistently across all browsers and devices.

In order to avoid this issue, please follow these steps:

1. Adopt Release 102.
2. Find all pages with the script.
   * If you are using Pages v2, use the Inject Code filter with value equals "applepay" to find pages using the Apple Pay script. Note that this will not include pages v1 in the search results.
3. Remove the script.
4. Save and rebuild the page.
5. Republish the page.
6. Test a purchase using Apple Pay to verify your payment methods are working properly.

**Validation refactor and improved Zuora error messaging**

We have improved the consistency of our validation methods across different components, and improved how error messages are handled from Zuora.

Previously, if a certain field was mandatory and not filled out by a customer in the Zuora iFrame, then when the customer tried to submit their order, they would receive the error message: "Required Field Not Complete". Now, the error message will also display the field that wasn't completed, for example "Required field not complete: Address Line 1". This will help customers understand what to fix in order to submit their order successfully.

**Tracking tags submitted with the order from Single Page Checkout**

In the Modular Checkout, any tracking tags that were present on a landing page will persist through to be present on the order that is submitted. Now, this functionality has been extended for Single Page Checkout too. Tags that will persist include any utm, ltm, or lmo tags plus the social media tags such as "fbclid", "dclid", "gclid", "rdt\_cid", "ttclid", "twclid".


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.limio.com/release-notes/limio-commerce-release-notes/readme/limio-release-notes-release-102.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
