{% endraw %}
```
## Practical Example: Product Ratings with Judge.me
### Prerequisites
1. Install Judge.me app on your Shopify store:
* Go to Shopify App Store and install Judge.me
* Enable the app integration in your store settings
2. Enable Judge.me in Glood:
* Navigate to Glood Product Recommendations
* Go to Settings >> Integrations >> Product Review Apps
* Enable the Judge.me app integration
After completing the setup, the rating metafields will be available in your GraphQL queries. You can query these metafields using the reviews namespace wherever needed.
To display product ratings in your template, simply use the Judge.me liquid tag:
```liquid
{% raw %}
{% product_ratings product_id: product.id %}
{% endraw %}
```
## Related Resources
* [Section Template Introduction](/for-developers/section-template/introduction)
* [Template Tags](/for-developers/section-template/tags)
* [Template Hooks](/for-developers/section-template/hooks)
# Add Checkout Upsell on Checkout Screen
Source: https://docs.glood.ai/for-developers/how-to-guides/add-checkout-upsell
Checkout upsells display personalized product recommendations at strategic points in the checkout flow. These recommendations can significantly increase average order value by suggesting products that complement items already in the customer's cart.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "Checkout Upsell" section from the app menu.
→ This will open the "Checkout & Post Purchase Upsell" dashboard screen (as shown in the image), where you can manage and create upsell campaigns.
#### 3. Click on the "New Campaign" button at the top right corner to start creating a new upsell campaign.
→ Once you click, the Create Campaign screen will open, where you can enter your campaign details and configure the upsell settings.
#### 4. After clicking on "New Campaign", the Create Campaign screen will open (as shown in the image).
→ On this screen, you'll need to fill in the following details to set up your Checkout Upsell campaign:
* **Name**: Add a name for your campaign to easily identify it.
* **Time Duration**: Set the start and end date for when the campaign should be active.
* **Status**: Keep this set to Active if you want the upsell campaign to show on the checkout screen.
* **Trigger**: Choose whether this campaign should be shown to all customers or conditionally based on certain rules.
* **Checkout Upsell Products**: Click on the + Add button to select the product(s) that will be promoted as upsell items during checkout.
* **Save**: Click on Save button
#### 5. Once these steps are completed, the Checkout Upsell will automatically appear on your checkout screen for customers.
## Troubleshooting
### Unable to See the Checkout Upsell?
If you've set up your campaign but don't see the upsell appearing on your checkout screen, you'll need to add the Checkout app section in your Shopify store.
Follow these steps to configure the Checkout Upsell on desktop devices:
1. From your Shopify admin, navigate to **Settings > Checkout**
2. In the Configurations section, find and click **Customize** next to your desired configuration
3. In the checkout editor, select the page where you want the upsell to appear
4. Click **Sections** to open the sidebar
5. Click **⊕ Add app block** in your chosen section
6. Select the Glood.AI upsell app block
7. Customize the app block settings:
* Drag and drop to reposition
* Click the block to adjust available settings
8. Click **Save** to apply your changes
### Additional Resources
For more detailed information about configuring app blocks across devices, refer to [Add app blocks from installed apps](https://help.shopify.com/en/manual/checkout-settings/customize-checkout-configurations/checkout-apps#add-app).
## Additional Configuration Settings
### Checkout Upsell Configuration
#### Upsell Products
The Upsell Products section provides two main functionalities:
1. **Checkout Editor Integration**
* Access the Shopify Checkout Visual Editor to position the upsell block
* Drag and drop the "Glood: Checkout Upsell" section to your desired location
* Customize the block's appearance and layout within the checkout flow
* Preview how the upsell will appear to customers
2. **Product Selection and Management**
* Add products to be shown as recommendations on the checkout screen
* Add products manually or use AI generated product
#### Manual 1:1 Recommendations
Configure specific product pairs to be shown together during checkout:
* Enable "Override Recommendations with Manual Recommendations when available"
* Select a trigger product that when added to cart will show specific recommendations
* Choose the recommended product(s) to be displayed when that trigger product is in the chekout-screen
#### Excluded Products
Configure which products should not appear in checkout upsell recommendations:
* Exclude individual products by selecting them from your product catalog
* Exclude groups of products by specifying product tags (e.g. exclude all products tagged as "subscription")
* Set up exclusion rules using product attributes like price range, vendor, or collection
* Excluded products will never appear as recommendations, even if they match other recommendation criteria
#### Placement and Layout
Click the "Open Checkout Editor" button to configure the placement and layout of the checkout upsell section:
* Access Shopify's checkout editor to position the upsell block
* Drag and drop the "Glood: Checkout Upsell" section to your desired location
* Customize appearance settings like fonts, colors and spacing
* Preview how the upsell will appear across different devices
## Support
If you need help with setting up or customizing checkout upsells, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Add Checkout Upsell on Post Checkout Screen
Source: https://docs.glood.ai/for-developers/how-to-guides/add-checkout-upsell-post-checkout
Post checkout upsells display personalized product recommendations immediately after purchase completion. These recommendations can significantly increase average order value by suggesting products that complement items the customer has just purchased.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "Checkout Upsell" section from the app menu.
→ This will open the "Checkout & Post Purchase Upsell" dashboard screen (as shown in the image), where you can manage and create upsell campaigns.
#### 3. Click on the "New Campaign" button at the top right corner to start creating a new upsell campaign.
→ Once you click, the Create Campaign screen will open, where you can enter your campaign details and configure the upsell settings.
#### 4. After clicking on "New Campaign", the Create Campaign screen will open (as shown in the image).
→ On this screen, you'll need to fill in the following details to set up your Post Checkout Upsell campaign:
* **Name**: Add a name for your campaign to easily identify it.
* **Time Duration**: Set the start and end date for when the campaign should be active.
* **Status**: Keep this set to Active if you want the upsell campaign to show on the post checkout screen.
* **Trigger**: Choose whether this campaign should be shown to all customers or conditionally based on certain rules.
* **Post Checkout Upsell Products**: Click on the + Add button to select the product(s) that will be promoted as upsell items after checkout.
* **Save**: Click on Save button
#### 5. Ensure Post Checkout Upsell is Enabled
* After filling in all the campaign details, make sure the Post Purchase Upsell section is enabled.
* Enable the toggle inside the Post Purchase Upsell section (as shown in the image).
* Once enabled, click the Save button.
#### 6. This will ensure that the selected upsell product(s) are shown on the post-checkout screen, right after the customer completes their order.
## Troubleshooting
### Unable to See the Checkout Upsell?
If your checkout upsell still isn't showing, verify that your post-purchase configuration is set correctly:
* From your Shopify admin, go to **Settings > Checkout**
* Scroll down to the **Post-purchase page** section
* Under Add tracking scripts and other customizations, ensure **Glood Product Recommendations** app is selected/configured to run post-purchase experiences
* If nothing is selected, choose the **Glood Product Recommendations** app to handle Post Checkout Upsell
* Once configured, this will ensure that your upsell campaigns display on the post-checkout screen.
## Additional Configuration Settings
#### Post Purchase Upsell Configuration
Control whether post-purchase upsells appear after checkout completion:
* Enable or disable post-purchase upsells using the "Control Post Purchase Upsell" toggle
* When enabled, recommended products will be shown to customers on the order confirmation page
* When disabled, no additional product recommendations will appear after purchase completion
#### Excluded Products
Configure which products should not appear in checkout upsell recommendations:
* Exclude individual products by selecting them from your product catalog
* Exclude groups of products by specifying product tags (e.g. exclude all products tagged as "subscription")
* Set up exclusion rules using product attributes like price range, vendor, or collection
* Excluded products will never appear as recommendations, even if they match other recommendation criteria
## Support
If you need help with setting up or customizing post checkout upsells, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Add Sections to Mini Cart
Source: https://docs.glood.ai/for-developers/how-to-guides/add-sections-to-mini-cart
This guide walks you through the process of adding Glood.AI product recommendations to your store's mini cart (also known as AJAX cart).
## Overview
AJAX cart recommendations appear when customers view their cart in a slide-out drawer or popup. These recommendations update dynamically as customers add or remove items from their cart.
## Implementation Steps
### 1. Create AJAX Section
First, create a new section in your Glood.AI dashboard:
1. Go to **Sections** in your Glood.AI admin
2. Click **Create New Section**
3. Select **AJAX Cart** as the page type
4. Configure your desired recommendation strategy
5. Save the section
### 2. Place Section in Mini Cart
Add the section html (from section details page) to your theme's mini cart template:
### 3. Configure Load/Unload Hooks
To control when the AJAX cart recommendations load and unload, implement these hooks in your section template:
```js
// Load recommendations when mini cart opens
loadAjaxCart: (bodyElem) => {
const ajaxCart = bodyElem.querySelector('cart-drawer');
return ajaxCart.classList.contains("active");
},
// Unload recommendations when mini cart closes
unloadAjaxCart: (bodyElem) => {
const ajaxCart = bodyElem.querySelector('cart-drawer');
return !ajaxCart.classList.contains("active");
}
```
## Testing
To verify your implementation:
1. Add an item to your cart
2. Open the mini cart
3. Verify that recommendations appear
4. Close the mini cart
5. Verify that recommendations are removed
6. Test with different cart contents to ensure recommendations update
## Troubleshooting
Common issues and solutions:
* **Recommendations don't load**: Verify your section ID and ensure the mini cart element selector matches your theme
* **Recommendations don't update**: Check that loadAjaxCart and unloadAjaxCart hooks are properly configured
* **Performance issues**: Consider adjusting the number of recommended products shown
## Next Steps
* Customize the recommendation layout to match your theme
* Add tracking to measure recommendation performance
* Configure product filtering rules
For more details on hooks and configuration options, see the [Template Hooks](/for-developers/section-template/hooks) documentation.
# Enable Custom Events in V3 Template
Source: https://docs.glood.ai/for-developers/how-to-guides/enable-custom-events
Learn how to enable and configure custom events to control section visibility on your store
## Overview
Custom events provide a flexible way to control section behavior in your store. This guide demonstrates how to set up and use custom events to manage section rendering based on various scenarios and conditions.
Custom events enable you to:
* Control section visibility based on specific triggers
* Manage section rendering timing
* Implement custom loading behaviors
* Create dynamic user experiences
## Configuration
### Set Up Init Event Name
In your app-embed settings, locate the "Init Event Name" section inside the app-embed and in the input field write your desired event name (e.g., initialize\_app).

This setting tells Glood AI which event to listen for before initializing the sections.
## Usage
### Basic Implementation
1. Set your desired event name in the "Init Event Name" field
2. By default, no sections will be visible on the store
3. Trigger the event to show sections
### Example
Here's a simple example of how to trigger the custom event. When this event is dispatched, Glood AI will initialize all sections that are configured to listen for this event:
```javascript
// This will trigger the sections to become visible
dispatchEvent(new CustomEvent("initialize_app"));
```
### Common Use Cases
1. **Scroll-Based Loading**
```javascript
window.addEventListener('scroll', () => {
if (isScrolledToBottom()) {
dispatchEvent(new CustomEvent("initialize_app"));
}
});
```
2. **User Interaction Based**
```javascript
document.querySelector('.load-recommendations').addEventListener('click', () => {
dispatchEvent(new CustomEvent("initialize_app"));
});
```
3. **Time-Based Loading**
```javascript
setTimeout(() => {
dispatchEvent(new CustomEvent("initialize_app"));
}, 3000); // Show sections after 3 seconds
```
## Best Practices
1. **Event Naming**
* Use clear, descriptive event names
* Follow a consistent naming convention
* Avoid generic names that might conflict with other events
2. **Performance**
* Trigger events at appropriate times to optimize page load
* Consider user experience when deciding when to show sections
* Avoid triggering events too early or too late
3. **Error Handling**
* Always check if the event was successfully dispatched
* Provide fallback behavior if needed
* Log events for debugging purposes
## Troubleshooting
If sections aren't appearing as expected:
1. Verify that V3 sections are enabled
2. Check that the event name matches exactly in both settings and code
3. Ensure the event is being dispatched correctly
4. Check browser console for any errors
5. Verify that the sections are properly configured
## Support
If you need help with setting up or customizing events, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Enable Labels on Store
Source: https://docs.glood.ai/for-developers/how-to-guides/enable-labels
Learn how to configure and enable product labels in your store
## Configuration
### Settings Configuration
Configure your labels in `settings.json`. Each label has a name, text color, and background color:
```json
"labels": [
{
"name": "new",
"textColor": "#ffffff",
"backgroundColor": "#333333"
},
{
"name": "trending",
"textColor": "#ffffff",
"backgroundColor": "#444444"
},
{
"name": "bestseller",
"textColor": "#ffffff",
"backgroundColor": "#222222"
}
],
"maxLabelsCount": 2
```
### Template Implementation
Add this code to your `theme.liquid` to display labels on products. The code checks for matching tags and applies the configured styling:
```liquid
{% assign labels_cnt = 0 %}
{% for label in template.settings.labels %}
{% if labels_cnt < template.settings.max_labels_count and product.tags contains label.name %}
{{- translations[label.name] | default: label.name -}}
{% assign labels_cnt = labels_cnt | plus: 1 %}
{% endif %}
{% endfor %}
```
## How It Works
1. Add tags to your products (e.g., "new", "trending", "bestseller") - These tags should match the label names in your settings
2. Labels will automatically appear on products with matching tags - The system checks product tags against configured label names
3. Each product shows max 2 labels (configurable via `maxLabelsCount`) - Adjust this number in settings to show more or fewer labels
4. Labels use the colors defined in settings - Each label type has its own text and background colors
5. Supports translations through the `translations` object - Use translations to display labels in different languages
## Support
Need help with labels? Contact [support@glood.ai](mailto:support@glood.ai)
# Enable Swatch in V3 Template
Source: https://docs.glood.ai/for-developers/how-to-guides/enable-swatch-v3-template
Learn how to enable and configure swatch functionality in your v3 template
Swatches provide a visual way for customers to select product variants, especially useful for color and material options. This guide will show you how to enable and configure swatches in your v3 template.
## 1. Basic Configuration
To enable swatches in your template, you need to modify the `variantSelectorType` setting to "swatch". This will automatically convert your variant selectors to swatch format.
```json
{
"variantSelectorType": "swatch"
}
```
## Color Mapping
When using swatches for colors, Glood first checks if the product color is a valid CSS color. If it's not valid, it looks up the color in the color mapping configuration.
### Why Use Color Mapping?
Color mapping is essential when your store uses custom color names that aren't valid CSS colors. For example, if your store uses color names like "limestone green" or "cityscape", you'll need to map these to valid CSS colors.
### Example Configuration
Here's how to set up color mapping:
```json
{
"colorMapping": {
"limestoneGreen": "#348221"
}
}
```
### How Color Mapping Works
1. When a product variant has a color option, Glood first checks if it's a valid CSS color
2. If the color is valid (e.g., "red", "#FF0000", "rgb(255, 0, 0)"), it's used directly
3. If the color is not valid (e.g., "limestone green"), Glood looks up the corresponding value in the colorMapping
4. The mapped color is then used for the swatch display
## Troubleshooting
If swatches aren't displaying correctly:
1. Verify that `variantSelectorType` is set to "swatch"
2. Check that all custom color names are properly mapped
3. Ensure the color values in the mapping are valid CSS colors
4. Clear your store's cache to ensure changes take effect
## 2. Quick Add-to-Cart Swatches
For a more streamlined shopping experience, you can enable swatches that automatically add products to cart when clicked. This is particularly useful in recommendation sections or quick-shop scenarios.
### Configuration
To enable quick add-to-cart swatches, set the `variantSelectorType` to "swatch\_with\_atc":
```json
{
"variantSelectorType": "swatch_with_atc"
}
```
### How It Works
1. When a customer clicks on a swatch, the system automatically:
* Selects the corresponding variant
* Adds the product to cart immediately
### Troubleshooting Quick Add-to-Cart Swatches
If the automatic add-to-cart isn't working:
1. Verify that `variantSelectorType` is set to "swatch\_with\_atc"
2. Ensure the variant is in stock
3. Check that the cart is properly initialized
4. Clear the store's cache after making configuration changes
## Support
If you need help with enabling or customizing swatches in your v3 template, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Bestsellers section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-bestsellers-section
The Bestsellers section displays your store's most popular products based on sales data. This feature helps showcase your top-performing items and can increase conversion rates by highlighting products that other customers frequently purchase.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen, where you can create and manage personalized product recommendation sections powered by AI.
#### 3. Click on the "Create Section" button on the top-right corner
* This will open the Create AI Recommendation Section screen
* Select the page where you want to display the section
* Choose the experience type and give the section a title (e.g., Best Selling Products)
* Under **Select Recommendation Type**, choose **Bestsellers** to display your top-selling products
#### 4. Click on the Save button to create the section
* After selecting Bestsellers as your recommendation type and filling out the necessary details, click on the Save button
* This will create the section and open the section detail page
* **Note:** The section is disabled by default until you enable it
#### 5. Configure Your Section (Section Detail Page)
→ Once saved, you'll be redirected to the Section Detail Page:
→ Enable your section by clicking on the enable section button.
Here are the key configuration options available:
**→ Basic Info**
* **Section Name:** Customize the name of your section
* **Set Translations:** Add translations for different languages
**→ Recommendation Configuration**
* **Show Sold Out Items as Recommendations:** If enabled, even out-of-stock items may appear in the suggestion list.
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Price (high to low)
* Price (low to high)
* New products first
* Personalized for viewer
* Random
**2. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Trending
* No criteria
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for displayed products
* **Maximum Price:** Set a ceiling price for displayed products
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button based on your assigned template
* Customize layout, styling and content through the editor interface
* Configure template-specific settings by clicking the "Click Here" link
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuration, preview and test the section to ensure it works as expected:
## Support
If you need help with setting up or customizing Bestsellers sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to Create Bundles
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-bundle
This guide explains how to create bundles in your store using Glood.AI. Bundles allow you to group related items together and offer them at a special price, helping increase average order value and provide more value to your customers.
# Creating a Bundle
Learn how to create and configure bundles that will automatically be recommended to your customers based on their shopping behavior.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "Bundles" section from the app menu
→ This will open the Bundles screen (as shown in the image), where you can create and manage bundles for your store. Bundling helps increase the average order value and boost product sales by offering multiple items together.
#### 3. Create and Configure a Bundle
1. Click the “+ Create Bundle” button on the Bundles page.
2. Fill in the following details on the Bundle Details page:
→ **Bundle Title:** Enter the name of the bundle.
→ **Products:** Click “+ Add Products” to include items in the bundle.
→ **Discounts:** (Optional) Select a discount and set a percentage.
→ **Images:** Add images to represent the bundle.
→ **Status:** Set as Draft or Active.
→ **Product Tags / Type / Collection:** Organize the bundle by adding relevant metadata.
3. Save your progress once all fields are filled.
#### 4. Final Step
After completing all the steps above, your bundle will be successfully created. It will now appear on the Bundles screen, where you can manage it, make edits, track its performance, and monitor how it contributes to your store’s conversions.
## Support
If you need help with creating or managing bundles, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Collections Widget section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-collection-widget-section
The Collection Widget section allows you to showcase products from specific collections on your store. This feature helps highlight curated product groups and makes it easier for customers to discover items from particular collections, improving navigation and potentially increasing sales.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen, where you can create and manage personalized product recommendation sections powered by AI.
#### 3. Click on the "Create Section" button on the top-right corner
* This will open the Create AI Recommendation Section screen
* Select the page where you want to display the section
* Choose the experience type and give the section a title (e.g., Featured Collection)
* Under **Select Recommendation Type**, choose **Collection Widget** to display products from specific collections
#### 4. Click on the Save button to create the section
* After selecting Collection Widget as your recommendation type and filling out the necessary details, click on the Save button
* This will create the section and open the section detail page
* **Note:** The section is disabled by default until you enable it
#### 5. Configure Your Section (Section Detail Page)
→ Once saved, you'll be redirected to the Section Detail Page:
→ Enable your section by clicking on the enable section button.
Here are the key configuration options available:
**→ Basic Info**
* **Section Name:** Customize the name of your section
* **Set Translations:** Add translations for different languages
**→ Collection Selection**
* Choose which collections to display in the widget
* Select multiple collections if desired
* Set display order for collections
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings:
**1. Product Ranking Criteria**
* Choose how products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* New products first
* Random
**2. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* Trending
* No criteria
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for displayed products
* **Maximum Price:** Set a ceiling price for displayed products
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button
* Customize layout, styling and content through the editor interface
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuration, preview and test the section to ensure it works as expected and your selected collections are displaying correctly.
## Support
If you need help with setting up or customizing Collection Widget sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Cross Sell section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-cross-sell-section
The Cross Sell section helps drive additional sales by recommending complementary or related products that enhance the value of the customer's current selection. This AI-powered recommendation section analyzes purchase patterns and product relationships to suggest items that work well together, encouraging customers to discover relevant products they may need or want.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen (as shown in the image), where you can create and manage personalized product recommendation sections powered by AI. These sections can be added to any page of your store to display relevant product suggestions based on user behavior.
#### 3. Click on the "Create Section" button on the top-right corner of the AI Recommendations Setup screen
* This will open the Create AI Recommendation Section screen (as shown in the image), where you can configure and customize your recommendation section.
* Select the page where you want to display the section, choose the experience type, and give the section a title (e.g., Cross Sell).
* Under **Select Recommendation Type**, choose **Cross Sell** to display complementary products that enhance the currently viewed item.
#### 4. Click on the Save button to create the section
* After selecting Cross Sell as your recommendation type and filling out the necessary details, click on the Save button at the top right corner.
* This will create the AI-powered recommendation section and the section detail page will open.
* **Note:** The section is disabled by default—it won't be visible to visitors until you enable it.
#### 5. Configure Your Section (Section Detail Page)
→ Once you've saved your section, you'll be redirected to the Section Detail Page, which looks like this:
→ Firstly Enable your section on your store by clicking on the enable section button.
Here, you can fine-tune how your Cross Sell recommendations behave on your store. Here's a quick rundown of the editable options:
**→ Basic Info**
* **Section Name:** You can rename your section here if needed.
* **Set Translations:** Customize how the title appears in different languages.
**→ Recommendation Configuration**
This section allows you to customize how product recommendations are generated for your Cross Sell section. You can combine multiple methods to ensure accurate and dynamic suggestions.
**1. Rule-Based Recommendation**
* Click Configure to recommend products based on specific collections, tags, product types, or vendors.
* Useful for creating category-based cross-selling rules.
**2. 1-1 Manual Recommendation**
* Click Configure to manually select cross-sell products for individual items.
* Highest priority – these recommendations override others if set.
**3. Advanced Configuration**
→ Includes extra options:
* **Automatic Recommendation:** Enable this to let the system automatically suggest products based on your store's real-time sales data using proprietary algorithms.
* **Enable Random Recommendations:** Use fallback random suggestions when no data is available.
* **Show Sold Out Items as Recommendations:** If enabled, even out-of-stock items may appear in the suggestion list.
**→ Excluded Products and Tags**
* Excluded Products and Tags are used to remove specific products or tags from being recommended only within this particular section.
* For detailed instructions on excluding products and tags, see our [How to Exclude Products and Tags guide](/for-developers/how-to-guides/how-to-exclude-products-and-tags).
* **Note:** Excluded items won't appear in recommendations for this section only. To exclude items globally, configure them in your store settings.
**→ Disabled Products and Tags**
* Disabled Products and Tags are used to prevent the recommendation section from appearing on specific product pages or pages with specific tags.
* For detailed instructions on disabling products and tags, see our [How to Disable Products and Tags guide](/for-developers/how-to-guides/how-to-disable-products-and-tags).
* **Note:** When a product or tag is disabled, the entire recommendation section will not be shown on those product pages.
**→ Whitelist Products and Tags**
* Whitelist Products and Tags are used to restrict recommendations to only show specific products or products with specific tags within this section.
* **Note:** When using whitelists, only the specified products or products with the specified tags will be eligible to appear as recommendations in this section.
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings to fine-tune how recommendations are generated and displayed:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* New products first
* Personalized for viewer
* Random
**2. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* No criteria
* Trending
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for recommended products
* **Maximum Price:** Set a ceiling price for recommended products
* Helps ensure recommendations stay within desired price ranges
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button based on your assigned template
* Customize layout, styling and content through the editor interface
* Configure template-specific settings by clicking the "Click Here" link
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuring your section, you can preview and test it to ensure it works as expected:
## Support
If you need help with setting up or customizing Cross Sell sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to Create Frequently Bought Together Section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-fbt-section
The Frequently Bought Together section helps boost sales by recommending complementary products that are often purchased alongside the one currently being viewed. These smart, data-driven suggestions appear on the product page or during checkout, encouraging customers to add more items to their cart in a single click — increasing average order value and enhancing the overall shopping experience.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen (as shown in the image), where you can create and manage personalized product recommendation sections powered by AI. These sections can be added to any page of your store to display relevant product suggestions based on user behavior.
#### 3. Click on the "Create Section" button on the top-right corner of the AI Recommendations Setup screen
* This will open the Create AI Recommendation Section screen (as shown in the image), where you can configure and customize your recommendation section.
* Select the page where you want to display the section, choose the experience type, and give the section a title (e.g., Frequently Bought Together).
* Under **Select Recommendation Type**, choose **Frequently Bought Together** to display complementary products that customers often purchase together.
#### 4. Click on the Save button to create the section
* After selecting Frequently Bought Together as your recommendation type and filling out the necessary details, click on the Save button at the top right corner.
* This will create the AI-powered recommendation section and the section detail page will open.
* **Note:** The section is disabled by default—it won’t be visible to visitors until you enable it.
#### 5. Configure Your Section (Section Detail Page)
→ Once you've saved your section, you’ll be redirected to the Section Detail Page, which looks like this:
→ Firstly Enable your section on your store by clicking on the enable section button.
Here, you can fine-tune how your Frequently Bought Together recommendations behave on your store. Here’s a quick rundown of the editable options:
**→ Basic Info**
* **Section Name:** You can rename your section here if needed.
* **Set Translations:** Customize how the title appears in different languages.
**→ Recommendation Configuration**
This section allows you to customize how product recommendations are generated for your Frequently Bought Together section. You can combine multiple methods to ensure accurate and dynamic suggestions.
**1. Rule-Based Recommendation**
* Click Configure to recommend products based on specific collection types, tags, product types, or vendors.
* Ideal for category- or tag-specific bundling logic.
**2. 1-1 Manual Recommendation**
* Click Configure to manually select product recommendations for individual products.
* Highest priority – these recommendations override others if set.
**3. Advanced Configuration**
→ Includes extra options:
* **Automatic Recommendation:** Enable this to let the system automatically suggest products based on your store's real-time sales data using proprietary algorithms.
* **Enable Random Recommendations:** Use fallback random suggestions when no data is available.
* **Show Sold Out Items as Recommendations:** If enabled, even out-of-stock items may appear in the suggestion list.
**→ Excluded Products and Tags**
* Excluded Products and Tags are used to remove specific products or tags from being recommended only within this particular section.
* For detailed instructions on excluding products and tags, see our [How to Exclude Products and Tags guide](/for-developers/how-to-guides/how-to-exclude-products-and-tags).
* **Note:** Excluded items won't appear in recommendations for this section only. To exclude items globally, configure them in your store settings.
**→ Disabled Products and Tags**
* Disabled Products and Tags are used to prevent the recommendation section from appearing on specific product pages or pages with specific tags.
* For detailed instructions on disabling products and tags, see our [How to Disable Products and Tags guide](/for-developers/how-to-guides/how-to-disable-products-and-tags).
* **Note:** When a product or tag is disabled, the entire recommendation section will not be shown on those product pages. To disable items globally, configure them in your store settings.
**→ Whitelist Products and Tags**
* Whitelist Products and Tags are used to restrict recommendations to only show specific products or products with specific tags within this section.
* **Note:** When using whitelists, only the specified products or products with the specified tags will be eligible to appear as recommendations in this section. This provides precise control over what can be recommended.
**→ Discount Configuration (Optional)**
The Discount Configuration allows you to set up automatic discounts for products purchased together through this section. You can configure discounts in two ways:
**1. Percentage Discount**
* Set a percentage discount that will be applied to the section
* Example: 10% off when buying recommended items together
**2. Fixed Amount Discount**
* Set a specific amount to be deducted from the total price
* Example: \$20 off when purchasing recommended products together
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings to fine-tune how recommendations are generated and displayed:
**1. Price Percentage Threshold**
* Set a threshold percentage to control which products appear as recommendations
* Example: Setting 200% means only products costing up to twice the main product's price will be shown
* Helps maintain relevant price ranges in recommendations
**2. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* New products first
* Personalized for viewer
* Random
**3. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* No criteria
* Trending
**4. Price Range Limits**
* **Minimum Price:** Set a floor price for recommended products
* **Maximum Price:** Set a ceiling price for recommended products
* Helps ensure recommendations stay within desired price ranges
**Note:** These advanced settings are optional. The recommendation system will work with default values if not configured.
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section from the section details page
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button based on your assigned template
* Customize layout, styling and content through the editor interface
* Configure template-specific settings by clicking the "Click Here" link
* Select a default layout style:
* Carousel
* Horizontal Grid
* Amazon like Bought Together
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel, Horizontal Grid, or Amazon like Bought Together layout
* Medium screens (tablet): Select Carousel, Horizontal Grid, or Amazon like Bought Together layout
* Large screens (desktop): Select Carousel, Horizontal Grid, or Amazon like Bought Together layout
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuring your section, you can preview and test it to ensure it works as expected:
## Support
If you need help with setting up or customizing FBT sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Personalized for You section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-pfy-section
The Personalized for You section provides tailored product recommendations based on each visitor's browsing history, preferences, and behavior. This AI-powered feature helps create a personalized shopping experience that can significantly increase engagement and conversion rates.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen, where you can create and manage personalized product recommendation sections powered by AI.
#### 3. Click on the "Create Section" button on the top-right corner
* This will open the Create AI Recommendation Section screen
* Select the page where you want to display the section
* Choose the experience type and give the section a title (e.g., Personalized for You)
* Under **Select Recommendation Type**, choose **Personalized for You** to display AI-tailored recommendations
#### 4. Click on the Save button to create the section
* After selecting Personalized for You as your recommendation type and filling out the necessary details, click on the Save button
* This will create the section and open the section detail page
* **Note:** The section is disabled by default until you enable it
#### 5. Configure Your Section (Section Detail Page)
→ Once saved, you'll be redirected to the Section Detail Page:
→ Enable your section by clicking on the enable section button.
Here are the key configuration options available:
**→ Basic Info**
* **Section Name:** Customize the name of your section
* **Set Translations:** Add translations for different languages
**→ Excluded Products and Tags**
* Excluded Products and Tags are used to remove specific products or tags from being recommended only within this particular section.
* For detailed instructions on excluding products and tags, see our [How to Exclude Products and Tags guide](/for-developers/how-to-guides/how-to-exclude-products-and-tags).
* **Note:** Excluded items won't appear in recommendations for this section only. To exclude items globally, configure them in your store settings.
**→ Disabled Products and Tags**
* Disabled Products and Tags are used to prevent the recommendation section from appearing on specific product pages or pages with specific tags.
* For detailed instructions on disabling products and tags, see our [How to Disable Products and Tags guide](/for-developers/how-to-guides/how-to-disable-products-and-tags).
* **Note:** When a product or tag is disabled, the entire recommendation section will not be shown on those product pages. To disable items globally, configure them in your store settings.
**→ Whitelist Products and Tags**
* Whitelist Products and Tags are used to restrict recommendations to only show specific products or products with specific tags within this section.
* **Note:** When using whitelists, only the specified products or products with the specified tags will be eligible to appear as recommendations in this section. This provides precise control over what can be recommended.
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* New products first
* Random
**2. Fallback Criteria**
* Define what happens when personalized recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* Trending
* No criteria
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for displayed products
* **Maximum Price:** Set a ceiling price for displayed products
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button based on your assigned template
* Customize layout, styling and content through the editor interface
* Configure template-specific settings by clicking the "Click Here" link
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuration, preview and test the section to ensure it works as expected:
## Support
If you need help with setting up or customizing Personalized for You sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Promoted Products section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-promoted-products-section
The Promoted Products section allows you to manually curate and display specific products that you want to highlight to your customers. This feature gives you complete control over which products appear in the recommendation section, making it perfect for showcasing new launches, seasonal items, or special promotions.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen, where you can create and manage product recommendation sections.
#### 3. Click on the "Create Section" button on the top-right corner
* This will open the Create AI Recommendation Section screen
* Select the page where you want to display the section
* Choose the experience type and give the section a title (e.g., Special Collection, Promoted Collections etc...)
* Under **Select Recommendation Type**, choose **Promoted Products** to manually select products
#### 4. Click on the Save button to create the section
* After selecting Promoted Products as your recommendation type and filling out the necessary details, click on the Save button
* This will create the section and open the section detail page
* **Note:** The section is disabled by default until you enable it
#### 5. Configure Your Section (Section Detail Page)
→ Once saved, you'll be redirected to the Section Detail Page:
→ Enable your section by clicking on the enable section button.
Here are the key configuration options available:
**→ Basic Info**
* **Section Name:** Customize the name of your section
* **Set Translations:** Add translations for different languages
**→ Object Recommendation**
* Click "Add Recommendation" button to define recommendation strategies
* Enter page URL in the input field that appears
* Once URL is entered, "Add Products" button will be enabled
* Click "Add Products" to select products for the recommendation
* Products will be displayed based on the defined recommendation strategies
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* New products first
* Personalized for viewer
* Random
**2. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* Trending
* No criteria
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for displayed products
* **Maximum Price:** Set a ceiling price for displayed products
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button
* Customize layout, styling and content through the editor interface
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuration, preview the section to ensure products are displaying correctly and the layout meets your requirements.
## Support
If you need assistance setting up or customizing Promoted Products sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Recent Launch section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-recent-launch-section
The Recent Launch section showcases your store's newest products, helping customers discover fresh additions to your catalog. This feature is particularly effective for stores that regularly update their inventory and want to highlight their latest offerings to customers.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen, where you can create and manage personalized product recommendation sections powered by AI.
#### 3. Click on the "Create Section" button on the top-right corner
* This will open the Create AI Recommendation Section screen
* Select the page where you want to display the section
* Choose the experience type and give the section a title (e.g., Recently Launched products / New Arrivals)
* Under **Select Recommendation Type**, choose **Recent Launch** to display your newest products
#### 4. Click on the Save button to create the section
* After selecting Recent Launch as your recommendation type and filling out the necessary details, click on the Save button
* This will create the section and open the section detail page
* **Note:** The section is disabled by default until you enable it
#### 5. Configure Your Section (Section Detail Page)
→ Once saved, you'll be redirected to the Section Detail Page:
→ Enable your section by clicking on the enable section button.
Here are the key configuration options available:
**→ Basic Info**
* **Section Name:** Customize the name of your section
* **Set Translations:** Add translations for different languages
**→ Recommendation Configuration**
* **Show Sold Out Items as Recommendations:** If enabled, even out-of-stock items may appear in the suggestion list.
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* Personalized for viewer
* Random
**2. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* Trending
* No criteria
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for displayed products
* **Maximum Price:** Set a ceiling price for displayed products
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button based on your assigned template
* Customize layout, styling and content through the editor interface
* Configure template-specific settings by clicking the "Click Here" link
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuration, preview and test the section to ensure it works as expected.
## Support
If you need help with setting up or customizing Recent Launch sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Recently Viewed section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-recently-viewed-section
The Recently Viewed section helps enhance the shopping experience by displaying products that customers have previously viewed during their browsing session. This feature makes it easy for customers to return to items they were interested in, potentially increasing engagement and conversion rates.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen, where you can create and manage personalized product recommendation sections powered by AI.
#### 3. Click on the "Create Section" button on the top-right corner
* This will open the Create AI Recommendation Section screen
* Select the page where you want to display the section
* Choose the experience type and give the section a title (e.g., Recently Viewed)
* Under **Select Recommendation Type**, choose **Recently Viewed** to display products that visitors have previously viewed
#### 4. Click on the Save button to create the section
* After selecting Recently Viewed as your recommendation type and filling out the necessary details, click on the Save button
* This will create the section and open the section detail page
* **Note:** The section is disabled by default until you enable it
#### 5. Configure Your Section (Section Detail Page)
→ Once saved, you'll be redirected to the Section Detail Page:
→ Enable your section by clicking on the enable section button.
Here are the key configuration options available:
**→ Basic Info**
* **Section Name:** Customize the name of your section
* **Set Translations:** Add translations for different languages
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* New products first
* Personalized for viewer
* Random
**2. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* No criteria
* Trending
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for displayed products
* **Maximum Price:** Set a ceiling price for displayed products
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button based on your assigned template
* Customize layout, styling and content through the editor interface
* Configure template-specific settings by clicking the "Click Here" link
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuration, preview and test the section to ensure it works as expected:
## Support
If you need help with setting up or customizing Recently Viewed sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Similar Products Section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-similar-products-section
The Similar Products section helps enhance product discovery by showcasing items that share characteristics with the product currently being viewed. This AI-powered recommendation section analyzes product attributes, categories, and user behavior patterns to suggest relevant alternatives, helping customers find exactly what they're looking for while increasing engagement and potential sales.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen (as shown in the image), where you can create and manage personalized product recommendation sections powered by AI. These sections can be added to any page of your store to display relevant product suggestions based on user behavior.
#### 3. Click on the "Create Section" button on the top-right corner of the AI Recommendations Setup screen
* This will open the Create AI Recommendation Section screen (as shown in the image), where you can configure and customize your recommendation section.
* Select the page where you want to display the section, choose the experience type, and give the section a title (e.g., Similar Products).
* Under **Select Recommendation Type**, choose **Similar Products** to display products that share characteristics with the currently viewed item.
#### 4. Click on the Save button to create the section
* After selecting Similar Products as your recommendation type and filling out the necessary details, click on the Save button at the top right corner.
* This will create the AI-powered recommendation section and the section detail page will open.
* **Note:** The section is disabled by default—it won't be visible to visitors until you enable it.
#### 5. Configure Your Section (Section Detail Page)
→ Once you've saved your section, you'll be redirected to the Section Detail Page, which looks like this:
→ Firstly Enable your section on your store by clicking on the enable section button.
Here, you can fine-tune how your Similar Products recommendations behave on your store. Here's a quick rundown of the editable options:
**→ Basic Info**
* **Section Name:** You can rename your section here if needed.
* **Set Translations:** Customize how the title appears in different languages.
**→ Recommendation Configuration**
This section allows you to customize how product recommendations are generated for your Similar Products section. You can combine multiple methods to ensure accurate and dynamic suggestions.
**1. 1-1 Manual Recommendation**
* Click Configure to manually select similar products for individual items.
* Highest priority – these recommendations override others if set.
**2. Advanced Configuration (Expandable)**
→ Includes extra options:
* **Automatic Recommendation:** Enable this to let the system automatically suggest products based on your store's real-time sales data using proprietary algorithms.
* **Enable Random Recommendations:** Use fallback random suggestions when no similar products are found.
* **Show Sold Out Items as Recommendations:** If enabled, even out-of-stock items may appear in the suggestion list.
**→ Excluded Products and Tags**
* Excluded Products and Tags are used to remove specific products or tags from being recommended only within this particular section.
* For detailed instructions on excluding products and tags, see our [How to Exclude Products and Tags guide](/for-developers/how-to-guides/how-to-exclude-products-and-tags).
* **Note:** Excluded items won't appear in recommendations for this section only. To exclude items globally, configure them in your store settings.
**→ Disabled Products and Tags**
* Disabled Products and Tags are used to prevent the recommendation section from appearing on specific product pages or pages with specific tags.
* For detailed instructions on disabling products and tags, see our [How to Disable Products and Tags guide](/for-developers/how-to-guides/how-to-disable-products-and-tags).
* **Note:** When a product or tag is disabled, the entire recommendation section will not be shown on those product pages.
**→ Whitelist Products and Tags**
* Whitelist Products and Tags are used to restrict recommendations to only show specific products or products with specific tags within this section.
* **Note:** When using whitelists, only the specified products or products with the specified tags will be eligible to appear as recommendations in this section.
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings to fine-tune how recommendations are generated and displayed:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* Similarity score (default)
* Price (high to low)
* Price (low to high)
* New products first
* Bestsellers first
* Random
**2. Product Filter Criteria**
* Filter which products can be recommended based on specific attributes
* Options include:
* Collection: Only recommend products from the same collection
* Products: Only recommend specific products
* Product Type: Only recommend products with matching product type
* Vendor: Only recommend products from the same vendor
* No criteria (default): No filtering applied
**3. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* No criteria
* Trending
**4. Price Range Limits**
* **Minimum Price:** Set a floor price for recommended products
* **Maximum Price:** Set a ceiling price for recommended products
* Helps ensure recommendations stay within desired price ranges
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button based on your assigned template
* Customize layout, styling and content through the editor interface
* Configure template-specific settings by clicking the "Click Here" link
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuring your section, you can preview and test it to ensure it works as expected:
## Support
If you need help with setting up or customizing Similar Products sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Slot Based Recommendation section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-slot-based-recommendation-section
The Slot Based Recommendation section allows you to create customized recommendation slots with different recommendation types. This feature gives you the flexibility to combine multiple recommendation strategies in a single section, helping you create more dynamic and targeted product displays.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen, where you can create and manage personalized product recommendation sections powered by AI.
#### 3. Click on the "Create Section" button on the top-right corner
* This will open the Create AI Recommendation Section screen
* Select the page where you want to display the section
* Choose the experience type and give the section a title (e.g., You May Also Like, Featured Products, etc...)
* Under **Select Recommendation Type**, choose **Slot Based Recommendation** to create customized recommendation slots
#### 4. Click on the Save button to create the section
* After selecting Slot Based Recommendation as your recommendation type and filling out the necessary details, click on the Save button
* This will create the section and open the section detail page
* **Note:** The section is disabled by default until you enable it
#### 5. Configure Your Section (Section Detail Page)
→ Once saved, you'll be redirected to the Section Detail Page:
→ Enable your section by clicking on the enable section button.
Here are the key configuration options available:
**→ Basic Info**
* **Section Name:** Customize the name of your section
* **Set Translations:** Add translations for different languages
**→ Slot Configuration**
* Create multiple slots with different recommendation types
* For each slot, you can:
* Set the recommendation type (Similar Products, Cross-sell, Trending, etc.)
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* New products first
* Personalized for viewer
* Random
**2. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* Trending
* No criteria
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for displayed products
* **Maximum Price:** Set a ceiling price for displayed products
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button
* Customize layout, styling and content through the editor interface
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuration, preview and test the section to ensure it works as expected and all slots are displaying correctly.
## Support
If you need help with setting up or customizing Slot Based Recommendation sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to create Trending section
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-create-trending-section
The Trending section showcases products that are currently popular among shoppers. This feature helps highlight in-demand items and can drive sales by leveraging social proof and creating urgency.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen, where you can create and manage personalized product recommendation sections powered by AI.
#### 3. Click on the "Create Section" button on the top-right corner
* This will open the Create AI Recommendation Section screen
* Select the page where you want to display the section
* Choose the experience type and give the section a title (e.g., Trending Products)
* Under **Select Recommendation Type**, choose **Trending** to display products that are currently popular
#### 4. Click on the Save button to create the section
* After selecting Trending as your recommendation type and filling out the necessary details, click on the Save button
* This will create the section and open the section detail page
* **Note:** The section is disabled by default until you enable it
#### 5. Configure Your Section (Section Detail Page)
→ Once saved, you'll be redirected to the Section Detail Page:
→ Enable your section by clicking on the enable section button.
Here are the key configuration options available:
**→ Basic Info**
* **Section Name:** Customize the name of your section
* **Set Translations:** Add translations for different languages
**→ Recommendation Configuration**
* **Show Sold Out Items as Recommendations:** If enabled, even out-of-stock items may appear in the suggestion list.
**→ Location & Position**
* Choose where to show the section on your Shopify store:
* Enter a div ID, class selector or xPath to specify the location (default: #shopify-section-product-template)
* Set the position number to control where the section appears within that location (1 = first section)
* Use breakpoint-based configuration for granular control across different screen sizes
* For direct theme code placement, copy the provided widget code snippet
* Optional: Enable "Require app block placement" to control section display in storefront
**→ Advanced Configuration Settings**
Configure additional settings:
**1. Product Ranking Criteria**
* Choose how recommended products should be ranked and ordered
* Options include:
* No criteria (default)
* Bestsellers first
* Price (high to low)
* Price (low to high)
* New products first
* Personalized for viewer
* Random
**2. Fallback Criteria**
* Define what happens when primary recommendations aren't available
* Options include:
* Random (default)
* Best sellers
* No criteria
* Trending
**3. Price Range Limits**
* **Minimum Price:** Set a floor price for displayed products
* **Maximum Price:** Set a ceiling price for displayed products
**→ Status Section**
* Control whether this recommendation section is active or inactive on your store
* Simple toggle switch to enable/disable the section
**→ Visual Editor**
* Choose between Visual Editor or Visual Editor V3 for customizing your section's appearance
* Select a template:
* For stores with v2 templates, only Visual Editor will be visible
* For stores with v3 templates, both Visual Editor and Visual Editor V3 will be visible
* Make changes to your section's appearance by clicking the Visual Editor or Visual Editor V3 button based on your assigned template
* Customize layout, styling and content through the editor interface
* Configure template-specific settings by clicking the "Click Here" link
* Select a default layout style:
* Carousel
* Horizontal Grid
* Choose layout style for different screen sizes:
* Small screens (mobile): Select Carousel or Horizontal Grid
* Medium screens (tablet): Select Carousel or Horizontal Grid
* Large screens (desktop): Select Carousel or Horizontal Grid
**→ Segmentation**
* Control which visitors see this recommendation section
* Available targeting options:
* All visitors (default)
* First-time visitors
* Returning visitors
* Buyers
* Is customer
* Is not customer
* Helps create personalized experiences for different user segments
#### 6. Preview and Test Your Section
→ After configuration, preview and test the section to ensure it works as expected:
## Support
If you need help with setting up or customizing Trending sections, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to Disable Products and Tags from Recommendations
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-disable-products-and-tags
This guide explains how to disable specific products and tags from appearing in your store's recommendations. You can disable items either within individual recommendation sections or globally across your entire store.
# 1. Section-Level Disabling
Learn how to disable products and tags from specific recommendation sections while keeping them available in other areas of your store.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen (as shown in the image), where you can manage personalized recommendation sections for your store pages.
#### 3. Click on the section in which you want to disable products or tags
→ This will open the Section Detail page (as shown in the first image), where you can configure various settings for the selected section.
→ Scroll down to find the following options:
**Disabled Products** – Add specific products you want to hide from this section only.
**Disabled Tags** – Add tags to exclude all products associated with those tags from being recommended in this section.
#### 4. Now you can add products and tags which you want to disable from the section recommendation
→ **Disabling Products** : Click on the "Add Product" button. It will open a screen (as shown in the figure below), where you can search for and add the products you want to disable from the section recommendation.
→ **Disabling Tags**: In the Disable Tags section, use the search bar to find the tags you want to disable from the section recommendation and select them.
→ Once done, click on the SAVE button to apply the changes.
# 2. Global Disabling
Learn how to disable products and tags across your entire store. Products and tags disabled globally will not appear in any recommendation sections, checkout upsells, or other recommendation features.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "Settings" section from the app menu
→ This will open the Settings screen where various settings are available. Scroll down to find the "Recommendations" section, which contains the disabled products settings.
#### 3. Now you can add products and tags which you want to disable globally
→ **Disabling Products**: Click on the "Add Product" button. It will open a screen (as shown in the figure below), where you can search for and add the products you want to disable from all recommendations across your store.
→ **Disabling Tags**: In the Disable Tags section, use the search bar to find the tags you want to disable globally and select them.
→ Once done, click on the SAVE button to apply the changes. Products and tags disabled here will not appear in any recommendation sections throughout your store.
## Support
If you need help with configuring product or tag exclusions, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# How to Exclude Products and Tags from Recommendations
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-exclude-products-and-tags
This guide explains how to exclude specific products and tags from appearing in your store's recommendations. You can exclude items either within individual recommendation sections or globally across your entire store.
# 1. Section-Level Exclusions
Learn how to exclude products and tags from specific recommendation sections while keeping them available in other areas of your store.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "AI Recommendations" section from the app menu
→ This will open the AI Recommendations Setup screen (as shown in the image), where you can manage personalized recommendation sections for your store pages.
#### 3. Click on the section in which you want to exclude products or tags
→ This will open the Section Detail page (as shown in the first image), where you can configure various settings for the selected section.
→ Scroll down to find the following options:
**Excluded Products** – Add specific products you want to hide from this section only.
**Excluded Tags** – Add tags to exclude all products associated with those tags from being recommended in this section.
#### 4. Now you can add products and tags which you want to exclude from the section recommendation
→ **Excluding Products** : Click on the "Add Product" button. It will open a screen (as shown in the figure below), where you can search for and add the products you want to exclude from the section recommendation.
→ **Excluding Tags**: In the Exclude Tags section, use the search bar to find the tags you want to exclude from the section recommendation and select them.
→ Once done, click on the SAVE button to apply the changes.
# 2. Global Exclusions
Learn how to exclude products and tags across your entire store. Products and tags excluded globally will not appear in any recommendation sections, checkout upsells, or other recommendation features.
## Implementation Steps
#### 1. Open the "Glood Product Recommendations" app in your Glood.AI admin
#### 2. Click on the "Settings" section from the app menu
→ This will open the Settings screen where various settings are available. Scroll down to find the "Recommendations" section, which contains the excluded products settings.
#### 3. Now you can add products and tags which you want to exclude globally
→ **Excluding Products**: Click on the "Add Product" button. It will open a screen (as shown in the figure below), where you can search for and add the products you want to exclude from all recommendations across your store.
→ **Excluding Tags**: In the Exclude Tags section, use the search bar to find the tags you want to exclude globally and select them.
→ Once done, click on the SAVE button to apply the changes. Products and tags excluded here will not appear in any recommendation sections throughout your store.
## Support
If you need help with configuring product or tag exclusions, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Set Default Variant in Variant Selector
Source: https://docs.glood.ai/for-developers/how-to-guides/how-to-set-default-variant
Learn how to configure the default variant selection in your product templates
## Setting Default Product Variant
You can control which variant is selected by default in your product templates by implementing the `getDefaultProductVariant` hook in your JavaScript template object.
### Implementation
Add the following hook to your JavaScript template object:
```javascript
const templateObject = {
// ... existing template configuration
getDefaultProductVariant: (product) => {
// Returns the first variant's ID by default
return product.variants[0].id;
}
// ... rest of template configuration
};
```
### Customization Examples
You can customize the logic inside `getDefaultProductVariant` to select different variants based on your requirements. Here are some practical examples:
```javascript
// Example 1: Return first in-stock variant ID
getDefaultProductVariant: (product) => {
const inStockVariant = product.variants.find(
variant => variant.availableForSale && variant.quantityAvailable > 0
);
return (inStockVariant || product.variants[0]).id;
}
// Example 2: Return lowest priced variant ID
getDefaultProductVariant: (product) => {
const lowestPriceVariant = product.variants.reduce((lowest, variant) => {
return (!lowest || variant.price < lowest.price) ? variant : lowest;
}, null);
return lowestPriceVariant.id;
}
// Example 3: Return variant ID with specific option
getDefaultProductVariant: (product) => {
const variantWithSize = product.variants.find(variant =>
variant.selectedOptions.some(option =>
option.name === 'Size' && option.value === 'Medium'
)
);
return (variantWithSize || product.variants[0]).id;
}
```
### Parameters
The hook receives the following parameter:
* `product` (Object): The full product object containing all product data including variants
### Return Value
The hook should return the variant ID (number) of the variant that you want to be selected by default when the product page loads.
If the `getDefaultProductVariant` function returns `null`, it will have no effect on the variant selection in the store. The default variant selection behavior will remain unchanged.
## Complete Example
Here's a complete example showing how to implement the default variant selection:
```javascript
const productTemplate = {
name: 'Product Template',
getDefaultProductVariant: (product) => {
// Find first available variant with quantity in stock
const defaultVariant = product.variants.find(variant =>
variant.availableForSale &&
variant.quantityAvailable > 0 &&
!variant.currentlyNotInStock
);
// Return the variant ID, falling back to first variant's ID if no available variants found
return (defaultVariant || product.variants[0]).id;
},
// ... other template configuration
};
```
This implementation will return the ID of the first available variant with stock as the default variant when customers view your product pages.
# Introduction
Source: https://docs.glood.ai/for-developers/how-to-guides/introduction
Step-by-step guides for common Glood.AI implementation scenarios
# How-to Guides
Welcome to the Glood.AI how-to guides. These guides provide step-by-step instructions for implementing common use cases and features in your Glood.AI integration.
Each guide focuses on a specific implementation scenario and provides detailed, practical steps to achieve your desired outcome. Whether you're adding AJAX cart recommendations or handling special product displays, you'll find clear instructions here.
## Available Guides
* [AJAX Cart Implementation](/for-developers/how-to-guides/add-sections-to-mini-cart) - Learn how to add dynamic product recommendations to your store's mini cart
Choose a guide from the sidebar to get started with your implementation.
# Open Mini Cart on Add to Cart
Source: https://docs.glood.ai/for-developers/how-to-guides/open-mini-cart-on-add-to-cart
Learn how to enable the mini cart to automatically open when clicking the add to cart button
## Overview
This guide will show you how to configure your sections to automatically open the mini cart when a customer clicks the add to cart button. This feature provides immediate feedback to customers and makes it easier for them to review their cart contents.
## Implementation
### Add Functions to Hook
Add these functions to your template's JavaScript hooks:
```javascript
loadAjaxCart: (bodyElem) => {
const ajaxCart = bodyElem.querySelector('#drawer-cart');
return ajaxCart.classList.contains("drawer--visible");
},
// Unload recommendations when mini cart closes
unloadAjaxCart: (bodyElem) => {
const ajaxCart = bodyElem.querySelector('#drawer-cart');
return !ajaxCart.classList.contains("drawer--visible");
},
onCartOperationComplete: (args, utils, gloodUtils) => {
setTimeout(() => {
document.dispatchEvent(new CustomEvent('theme:cart:init', { bubbles: true }));
document.dispatchEvent(new CustomEvent('theme:cart:reload', {
bubbles: true
}));
window.dispatchDrawerEvent('drawer-cart', 'open');
}, 1000);
}
```
### Theme-Specific Implementation
For this to work, you need to find and use the correct selectors and events from your theme's code:
1. Find the mini cart drawer element in your theme (usually has a class like `drawer-cart` or `mini-cart`)
2. Identify the correct class that indicates the cart is visible (often `drawer--visible` or similar)
3. Locate the theme's cart initialization and reload events
4. Find the correct drawer event dispatch method
## How It Works
1. The `loadAjaxCart` function checks if the mini cart is currently visible by looking for the `drawer--visible` class
2. The `unloadAjaxCart` function handles the opposite case, checking when the mini cart should be closed
3. When a cart operation completes, `onCartOperationComplete` is triggered:
* It dispatches `theme:cart:init` event to initialize the cart
* It dispatches `theme:cart:reload` event to refresh cart contents
* It opens the mini cart drawer using `dispatchDrawerEvent`
* A 1-second delay ensures smooth operation
## Support
If you need help with implementing this feature, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Integrations
Source: https://docs.glood.ai/for-developers/integrations/introduction
Learn about available integrations for Glood.AI recommendations
# Integrations
Glood.AI provides several integrations to enhance your product recommendations with additional functionality.
## Available Integrations
### Product Ratings
Add product ratings and reviews from Judge.me to your recommendation sections. This helps build trust and provides social proof for recommended products.
[Learn more about Product Ratings integration →](/for-developers/integrations/product-ratings)
### Quick View
Enable quick product previews directly from recommendation sections. This allows customers to view product details without leaving the current page.
[Learn more about Quick View integration →](/for-developers/integrations/quick-view)
### Wishlist
Add wishlist functionality to products in recommendation sections. This lets customers save products for later directly from recommendations.
[Learn more about Wishlist integration →](/for-developers/integrations/wishlist)
## Implementation Overview
Each integration can be enabled and configured through:
1. Dashboard settings in your Glood.AI admin
2. Template customization using provided tags and filters
3. Optional custom styling to match your theme
## Getting Started
Choose an integration from the sidebar to learn more about its specific implementation details and requirements.
For general template customization, see the [Section Template](/for-developers/section-template/introduction) documentation.
# Product Ratings Integration
Source: https://docs.glood.ai/for-developers/integrations/product-ratings
Learn how to integrate product ratings and reviews with Glood.AI recommendations
# Product Ratings Integration
This guide explains how to integrate Judge.me product ratings and reviews with Glood.AI recommendations.
## Overview
Product ratings integration allows you to display review stars and ratings from Judge.me within your Glood.AI recommendation sections.
## Supported Review Apps
Currently, we support:
* Judge.me
## Implementation Steps
### 1. Enable Product Reviews Integration
First, enable the product reviews integration in your Glood.AI dashboard:
1. Go to **Settings** in your Glood.AI admin
2. Navigate to the **Integrations** tab
3. Find **Judge.me** in the Product Reviews section
4. Click **Enable**
### 2. Add Review Tag to Template
Add the `product_ratings` tag to your section template where you want the reviews to appear:
```liquid
{{ product.title }}
{{ product.price | money_formatter: glood }}
{% product_ratings product_id: product.id %}
```
The `product_ratings` tag will automatically:
* Generate the appropriate Judge.me widget markup
* Handle the review data fetching
* Display review stars and rating count
### Example Output
When properly configured, the tag will generate HTML like this:
```html
```
## Troubleshooting
Common issues and solutions:
* **Reviews not showing**: Verify that Judge.me is properly installed and configured in your store
* **Missing ratings**: Ensure the product has reviews in Judge.me
* **Widget not loading**: Check that Judge.me scripts are properly loaded in your theme
## Best Practices
1. Always test the integration with products that have reviews
2. Consider loading performance when adding reviews to many products
3. Provide fallback content when reviews are not available
4. Test the integration across different devices and screen sizes
For more details on available tags and configuration options, see the [Template Tags](/for-developers/section-template/tags) documentation.
# Quick View Integration
Source: https://docs.glood.ai/for-developers/integrations/quick-view
Learn how to integrate quick view functionality with Glood.AI recommendations
# Quick View Integration
This guide explains how to integrate quick view functionality with Glood.AI recommendations.
## Overview
Quick view integration allows customers to quickly preview products from recommendation sections without leaving the current page.
## Implementation Steps
Coming soon...
# Wishlist Integration
Source: https://docs.glood.ai/for-developers/integrations/wishlist
Learn how to integrate wishlist functionality with Glood.AI recommendations
# Wishlist Integration
This guide explains how to integrate wishlist functionality with Glood.AI recommendations.
## Overview
Wishlist integration allows you to add wishlist functionality to products displayed in your Glood.AI recommendation sections.
## Implementation Steps
Coming soon...
# Developer Guide
Source: https://docs.glood.ai/for-developers/introduction
Advanced integration guide for developers implementing Glood.AI
# Developer Guide
Welcome to the Glood.AI developer documentation. This guide covers advanced integration topics and requires familiarity with:
* Shopify Liquid
* HTML/CSS
* JavaScript
* REST APIs
## Topics Covered
### Template Customization
Learn how to customize the appearance and behavior of Glood.AI recommendation sections using our template specification system.
### Programmatic Section Placement
Understand how to dynamically insert and position Glood.AI sections in your store using code rather than the visual editor.
### Headless Integration
Integrate Glood.AI recommendations into headless storefronts using our REST APIs.
### Hydrogen Support
Step-by-step guide for implementing Glood.AI in Shopify Hydrogen stores.
### Custom Events
Learn how to send custom tracking events to enhance Glood.AI's recommendation engine.
## Prerequisites
Before diving into the developer documentation, you should:
* Have Glood.AI installed on your Shopify store
* Be familiar with Shopify theme development
* Understand basic web development concepts
* Have access to your store's theme code
## Getting Help
If you run into any technical issues:
* Check our API Reference documentation
* Contact our developer support at [support@glood.ai](mailto:support@glood.ai)
* Join our developer community
Let's get started with implementing advanced Glood.AI features in your store!
# Code
Source: https://docs.glood.ai/for-developers/section-template/code
Learn about the core components of a section template
# Template Code
Every section template in Glood.AI consists of several core files that work together to create a complete recommendation section. We use the [liquidJS](https://liquidjs.com/api/classes/Liquid.html) library to render Liquid code at the client side. For any queries regarding Liquid-specific data structures, filters, or tags, please refer to the [Shopify Liquid documentation](https://shopify.dev/docs/api/liquid/objects).
## Core Parts
### 1. Section Template
The main template that defines the HTML structure and dynamic content rendering. It uses data structures defined in the [Object Definitions](/for-developers/section-template/schemas#object-definitions).
#### Dynamic Implementation
* Uses [translations object](/for-developers/section-template/schemas#translations-object) for text content
* Accesses [glood object](/for-developers/section-template/schemas#glood-object) for store configuration
* Renders [product data](/for-developers/section-template/schemas#product-array) in templates
* Applies [template settings](/for-developers/section-template/schemas#template-object) for styling
#### Liquid Filters
Our filters used in the template:
| Filter | Purpose | Parameters | Output | Example |
| ------------------ | ------------------ | -------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------------------- |
| `money` | Price formatting | Number/String, `money_format`: Override default format | Formatted price | `19.99 \| money` → `"$19.99"` |
| `optimize_image` | Image optimization | URL, `width`: Desired width, `height`: Desired height, `crop`: Crop mode | Optimized URL | `product.image \| optimize_image: width: 300, height: 300` |
| `tracking_url` | Add tracking | Product, `section` (required): Section context, `ref_product_id`: Reference product ID | URL with params | `product \| tracking_url: section` |
| `section_discount` | Format discount | Section, `money_format`: Price format, `locale`: Language code | Discount string | `section \| section_discount: money_format: shop.money_format` |
### 2. JS Hooks
The JavaScript hooks system provides a powerful way to customize and extend section behavior. These hooks are called at specific points in the section's lifecycle, allowing you to implement custom functionality and handle various events.
#### Core callBacks available
| Method Name | Parameters | Description | Return |
| ------------------------- | ----------------------------------------------------------------------- | ------------------------------------ | ------------------ |
| `initSwiper` | `(Swiper, templateSettings, container, params, defaultSettings, utils)` | Initializes carousel functionality | `Swiper instance` |
| `onSectionInit` | `(args, cb, gloodUtils)` | Called when section initializes | `void` |
| `onSectionRenderComplete` | `(args, utils)` | Called after section rendering | `void` |
| `onVariantChange` | `(args, utils)` | Handles variant selection | `void` |
| `onSwatchChange` | `(args, utils)` | Handles swatch selection | `void` |
| `validateCartOperation` | `(payload, recommendation, utils)` | Validates cart operations | `{payload, error}` |
| `onCartOperationComplete` | `(args, utils)` | Called after cart operation | `void` |
| `onProductDataReceived` | `(args, utils)` | Handles product data | `void` |
| `getProductDetailsQuery` | `(recommendation, glood)` | Returns GraphQL query | `string` |
| `transformProductData` | `(product, recommendation)` | Transforms product data | `object` |
| `onSectionRendered` | `(section, products)` | Fired when section is fully rendered | `void` |
| `onProductClick` | `(section, products, productId)` | Fired when product is clicked | `void` |
| `onAddToCart` | `(section, products, items, response)` | Fired on successful cart addition | `void` |
| `onVariantSelected` | `(section, products, productId, variantId)` | Fired when variant is selected | `void` |
#### Example Implementation
```javascript
// Example: Carousel Initialization Hook
initSwiper: (Swiper, templateSettings, container, params) => {
const carouselContainer = container.querySelector('._gai-crz-cnt');
if (!carouselContainer) return;
return new Swiper(carouselContainer, {
slidesPerView: templateSettings.breakpoints.small.cardsPerView,
spaceBetween: templateSettings.breakpoints.small.gutter
});
}
// Example: Variant Change Hook
onVariantChange: (args, utils) => {
const { variant, product, container } = args;
const priceElement = container.querySelector('._gai-prod-prc');
if (priceElement && variant.price) {
priceElement.textContent = utils.formatMoney(variant.price);
}
}
```
### 3. CSS Template
The CSS template system provides a flexible way to style your recommendation sections. It uses Liquid templating for dynamic styling based on section settings and configuration. Both section template and CSS template have access to the same template object. For a complete reference of available objects and their structure, see [Template Objects](/for-developers/section-template/schemas#object-definitions).
#### Structure and Organization
The CSS is organized by components and breakpoints:
* Base styles for mobile-first approach
* Tablet styles (default: 768px)
* Desktop styles (default: 1024px)
**NOTE:**
1. The CSS follows a mobile-first approach, where base styles are written for mobile devices and then progressively enhanced for larger screens through media queries. This ensures optimal performance and maintainability while providing a solid foundation for responsive design.
2. These breakpoint values are customizable through the template settings. For detailed configuration options, see [`settings.breakpoints[].screenSize`](/for-developers/section-template/schemas#template-object) in the Template Object documentation.
#### CSS Class Reference
| Class Name | Purpose | Properties Controlled | Example Usage |
| ------------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| `._gai-grid` | Main product grid container | - Grid layout (`grid-template-columns`) - Gap between items - Responsive columns | Controls overall product grid layout |
| `._gai-sec-tit` | Section title styling | - Font size - Text alignment - Line clamping - Display properties - Webkit box orientation | Main section heading appearance |
| `._gai-prod-card` | Individual product card | - Background color - Font family - Max width (for bundle layout) | Container for each product |
| `._gai-prod-img` | Product image container | - Aspect ratio - Object-fit | Product image display |
| `._gai-prod-img-wrap` | Image wrapper | - Aspect ratio | Controls image container proportions |
| `._gai-prod-tit` | Product title | - Color - Font weight - Line clamping - Text alignment - Font size - Font family | Product name styling |
| `._gai-prod-vndr` | Vendor name | - Font size - Display properties | Brand/vendor name display |
| `._gai-prod-vndr--above-title` | Vendor name above title | - Display (block/none) | Vendor positioning above title |
| `._gai-prod-vndr--below-title` | Vendor name below title | - Display (block/none) | Vendor positioning below title |
| `._gai-prod-prc` | Product price | - Color - Font family - Font size | Main price display |
| `._gai-prod-prc--compare-at` | Compare-at price | - Color - Display - Visibility conditions | Original/compare price styling |
| `._gai-atc-btn` | Add to cart button | - Background color - Text color - Border - Border radius - Disabled state | Add to cart button styling |
| `._gai-dis-cnt` | Discount container | - Justification - Background color - Display (flex/none) | Discount information wrapper |
| `._gai-dis-txt` | Discount text | - Color - Font size | Discount amount/percentage text |
| `._gai-dis` | Discount badge | - Background color - Text color - Opacity | Discount label styling |
| `._gai-container` | Main section container | - Background color | Section wrapper styling |
| `._gai-bundle-products` | Bundle products grid | - Grid template columns | Layout for bundled products |
| `._gai-skl-atc` | Skeleton add to cart | - Display visibility | Loading state for add to cart |
| `._gai-bndl-sec` | Bundle section | - Justify content | Bundle section layout |
| `._gai-amz-tit` | Amazon bundle title | - Text alignment | Title for Amazon-style bundles |
#### Label Classes
Special classes for product status and badges:
| Class Name | Purpose | Customizable Properties |
| ------------------ | ------------------- | ------------------------------------ |
| `._gai-oos` | Out of stock badge | - Background color - Text color |
| `._gai-bestseller` | Bestseller badge | - Background color - Text color |
| `._gai-new` | New product badge | - Background color - Text color |
| `._gai-trending` | Trending item badge | - Background color - Text color |
#### Responsive Behavior
The code includes media queries for different screen sizes:
```scss
/* Mobile (default) */
[data-gai-section-id="{{ section_id }}"] ._gai-grid {
grid-template-columns: repeat({{- settings.breakpoints.small.cards_per_view -}}, 1fr);
gap: {{ settings.breakpoints.small.gutter }}px;
}
/* Tablet */
@media (min-width: {{ settings.breakpoints.medium.screen_size }}px) {
/* Tablet-specific styles */
}
/* Desktop */
@media (min-width: {{ settings.breakpoints.large.screen_size }}px) {
/* Desktop-specific styles */
}
```
## Support
For help with template customization or troubleshooting, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Filters
Source: https://docs.glood.ai/for-developers/section-template/filters
Reference for custom Liquid filters available in section templates
## format\_money
**Description:**\
Formats numeric values into the store's currency format based on the money\_format setting from the glood object.
**Parameters:**
* `value` (Number/String): The numeric price value to be formatted
* `money_format` (String): Override default money format
* `intl_options` (Object, optional): Currency formatting configuration
```js
{
"en": {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2,
maximumFractionDigits: 2
}
}
```
**Returns:**\
String - Formatted price string with currency symbol
**Example:**
```liquid
{{ product.price | format_money: glood.shop.money_format, template.settings.intl_options }}
```
**Use Cases:**
* Formatting product prices
* Displaying compare at prices
* Showing discount amounts
* Bundle total prices
## optimize\_image
**Description:**\
Optimizes and resizes images for better performance using CDN parameters.
**Parameters:**
* `url` (String): The original image URL to be optimized
* `width` (Number, optional): Desired image width
* `height` (Number, optional): Desired image height
* `crop` (String, optional): Crop mode for the image
**Returns:**\
String - Optimized image URL with CDN parameters
**Example:**
```liquid
{{ product.featured_image.src | optimize_image: width: 300, height: 300 }}
{{ product.image | optimize_image: width: 600, height: 600, crop: 'center' }}
```
**Use Cases:**
* Product card images
* Responsive image loading
* Thumbnail generation
* Banner image optimization
## product\_url
**Description:**\
Generates a complete product URL with tracking parameters and localization.
**Parameters:**
* `handle` (String, required): Product handle/slug
* `ref_product_id` (String, optional): Reference product ID
* `layout` (String, optional): Section layout type
**Returns:**\
String - Complete product URL with parameters
**Example:**
```liquid
{% assign url = root_url | product_url: product.handle, glood.product.id, section.layout %}
{{ product.title }}
```
**Use Cases:**
* Product link generation
* Navigation building
* Tracking implementation
* Multi-language support
## product\_discount
**Description:**\
Calculates and formats product discount information based on configuration.
**Parameters:**
* `discount_config` (Object, required): Discount configuration settings
* `label_text` (String, required): Template for discount label
* `money_format` (String, required): Store's money format
* `intl_options` (Object, optional): Currency formatting configuration
**Returns:**\
String - Formatted discount text
**Example:**
```liquid
{% assign discount = product | product_discount: section.discount_config, translations.discount_label_text, glood.shop.money_format, template.settings.intl_options %}
{{ discount }}
```
**Use Cases:**
* Sale badges
* Discount displays
* Price comparison
* Promotional messaging
## save\_amount
**Description:**\
Calculates and formats savings information based on discount configuration.
**Parameters:**
* `discount_config` (Object, required): Discount configuration settings
* `save_text` (String, required): Template for savings text
* `money_format` (String, required): Store's money format
* `intl_options` (Object, optional): Currency formatting configuration
**Returns:**\
String - Formatted savings text
**Example:**
```liquid
{{ product | save_amount: section.discount_config, translations.discount_save_text, glood.shop.money_format, template.settings.intl_options }}
```
**Use Cases:**
* Savings displays
* Discount comparison
* Promotional messaging
## color\_value
**Description:**\
Retrieves color code from a color map object.
**Parameters:**
* `color_mapping` (Object, required): Color map object
**Returns:**\
String - Color code
**Example:**
```liquid
{{ value | color_value: template.settings.color_mapping }}
```
**Use Cases:**
* Theme customization
* Product attribute mapping
* UI element styling
## to\_boolean
**Description:**\
Converts any value to a boolean.
**Parameters:**
* None
**Returns:**\
Boolean - True or False
**Example:**
```liquid
```
**Use Cases:**
* Conditional rendering
* Boolean logic
* UI state management
## image\_dimensions
**Description:**\
Calculates responsive image dimensions based on template breakpoint settings.
**Parameters:**
* `breakpoints` (Object, required): Template breakpoint settings
**Returns:**\
Object - Object containing calculated dimensions
**Example:**
```liquid
{{ client_info.client_width | image_dimensions: template.settings.breakpoints }}
```
**Use Cases:**
* Responsive image loading
* UI element sizing
* Image optimization
## default
**Description:**\
Provides a default value if the input is null, undefined or empty.
**Parameters:**
* `default_value` (Any, required): Value to use if input is empty
**Returns:**\
Any - Original value or default value
**Example:**
```liquid
{{ template.settings.product_card.min_quantity | default: 1 }}
{{ translations.oos_text | default: 'Out of stock' }}
```
**Use Cases:**
* Setting default quantities
* Fallback text
* Configuration defaults
* Error prevention
## Error Handling
| Error | Description | Solution |
| ------------------------------ | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Invalid Price Format | Price value is null or not a number | 1. Use the default filter to set a fallback value (0) 2. Apply money filter to format the price |
| Missing Image Dimensions | Width/height not specified for image optimization | 1. Always specify width and height parameters 2. Use default dimensions (300x300) if not provided |
| Invalid Tracking Parameters | Missing required section context | 1. Check if section ID exists 2. Verify product handle is present 3. Fall back to standard product URL if missing |
| Invalid Discount Configuration | Missing money format or invalid discount structure | 1. Ensure shop money format is provided 2. Validate discount configuration before applying |
These errors require proper handling to:
* Prevent template rendering failures
* Maintain consistent price display
* Ensure proper image loading
* Keep tracking functionality intact
## Notes
* All filters are available in both section templates and CSS templates
* Some filters require specific objects from the template context
* Filter parameters marked as required must be provided for the filter to work correctly
* See [Object Definitions](/for-developers/section-template/schemas#object-definitions) for details about input objects
## Support
For help with template customization or troubleshooting, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Hooks
Source: https://docs.glood.ai/for-developers/section-template/hooks
Complete guide to hooks in Glood.AI section templates
# Template Hooks
## Hook Lifecycle Flow
### 1. Section Initialization Phase
* `onSectionInit` is called when section is first created
* Sets up initial state and variables
* Configures section parameters
* Registers event listeners
### 2. Data Fetching Phase
* `getProductDetailsQuery` is called to prepare GraphQL query
* Defines required product fields
* Sets up query variables
* Configures custom data requirements
* Sets up filtering parameters
### 3. Data Processing Phase
* `postProductFetch` processes raw product data
* Filters products if needed
* Adds computed properties
* Transforms data structure
* `transformProductData` transforms individual product data
* Normalizes data format
* Adds custom fields
* Prepares for rendering
### 4. Rendering Phase
* `afterSectionRendered` is called once section is rendered on the page and ready to be used.
**Note:** This is an optional hook, if you want to perform certain task, you can add your logic in this hook.
* `initSwiper` (if carousel is enabled)
* Configures carousel settings
* Sets up navigation
* Initializes responsive behavior
* Sets up pagination
### 5. Interaction Phase
* `onVariantChange` handles variant selection
**Note:** This is an optional hook, if you want to perform certain task, you can add your logic in this hook.
* `onSwatchChange` handles swatch interactions
**Note:** This is an optional hook, if you want to perform certain task, you can add your logic in this hook.
### 6. Cart Operation Phase
* `beforeAddToCart` validates cart operations
* Validates product selection
* Modifies cart payload
* Handles quantity validation
* `afterAddToCart` handles post-cart updates
**Note:** This is an optional hook, if you want to perform custom logic, you can setup your logic in this hook.
{/*
### 7. Cleanup Phase
- Cleanup operations when section is removed/updated
- Remove event listeners
- Clear custom elements
- Reset state if needed
- Clear timers/intervals
- Free up resources
*/}
## Available Hooks
### 1. onSectionInit
**Purpose:**\
Primary initialization hook called when a section is first created.
**Parameters:**
1. `args` contains:
* `recommendation` object which includes:
* [`section`](/for-developers/section-template/schemas#section-object) containing section ID, layout type, title, and discount configuration
* Array of [`products`](/for-developers/section-template/schemas#product-array) with product data
* `engine` object containing:
* Engine name and version
* Engine-specific configuration
* `initEnginePayload` containing engine initialization data
2. `cb` (Callback Function):
* Receives the processed recommendation object
* Used to handle initialization completion
* No return value expected
3. `gloodUtils` provides:
| Function | Description |
| ----------------------- | ---------------------------------------------------------------- |
| `formatMoney` | Formats price values according to store's money format |
| `optimizeImage` | Optimizes image URLs with specified dimensions and crop settings |
| `getVariantFromOptions` | Finds a variant based on selected options |
| `findVariantById` | Retrieves a variant using its ID |
| `getSelectedVariant` | Gets currently selected variant for a product |
| `getDefaultVariant` | Returns the default/first available variant |
| `addToCart` | Handles adding items to cart with proper validation |
| `updateCart` | Updates existing cart items (quantity, properties) |
| `getProductUrl` | Generates product URL with tracking parameters |
| `getDiscountedPrice` | Calculates discounted price based on rules |
| `formatDiscount` | Formats discount text with proper currency/percentage |
| `getTranslation` | Retrieves translated text with fallback support |
| `trackEvent` | Sends tracking events to analytics |
| `refreshSection` | Re-renders section with updated data |
| `showNotification` | Displays toast/notification messages |
**Example:**
```javascript
onSectionInit: (args, cb, gloodUtils) => {
const { recommendation, engine, initEnginePayload } = args;
cb({
recommendation,
engine,
initEnginePayload,
});
}
```
**Use Cases:**
* Section configuration
* State initialization
* Event listener setup
* Feature initialization
* Engine configuration
### 2. getProductDetailsQuery
**Purpose:**\
Builds the GraphQL query for fetching product data.
**Parameters:**
1. `recommendation` contains:
* [`section`](/for-developers/section-template/schemas#section-object) object with:
* `id` (number): Unique section identifier
* `layout` (String): Section layout type
* `discount_config` (Object): Discount settings
* `widget_message` (String): Custom message template
* `products` (Array): Currently loaded products
* `template` (Object): Template-specific settings
2. `glood` provides:
* `shop` object containing:
* `money_format` (String): Store currency format
* `locale` (String): Store language code
* `product` object with:
* `id` (String): Current product context (format: "gid://shopify/Product/{id}")
* `handle` (String): Product URL handle
* `localization` settings for:
* Currency formatting
* Language preferences
* Regional settings
**Returns:**\
GraphQL query string containing required product fields
**Example:**
```javascript
getProductDetailsQuery: (recommendation, glood) => {
return `
featuredImage {
url
}
handle
id
title
availableForSale
priceRange {
minVariantPrice {
amount
currencyCode
}
}
compareAtPriceRange {
minVariantPrice {
amount
currencyCode
}
}
variants(first: 250) {
nodes {
id
price {
amount
currencyCode
}
availableForSale
// ... other variant fields
}
}
`;
}
```
**Use Cases:**
* Product data fetching
* Field selection
* Query customization
* Data filtering
* Performance optimization
### 3. postProductFetch
**Description:**\
Processes raw product data after fetching. Allows for data transformation and enrichment before rendering.
**Parameters:**
* `args` (Object):
* `products` (Array): Raw product data array
* `recommendation` (Object): Section configuration
* `template` (Object): Template settings
* `utils` (Object): Helper functions
**Returns:**\
Array - Processed product data
**Example:**
```javascript
postProductFetch: (args, utils) => {
const { products, recommendation, template } = args;
return products.map(product => ({
...product,
formattedPrice: utils.formatMoney(product.price),
hasDiscount: product.compare_at_price > product.price,
isAvailable: product.variants.nodes[0].availableForSale,
imageUrl: utils.optimizeImage(product.featured_image, template.settings)
}));
}
```
**Use Cases:**
* Price formatting
* Discount calculations
* Image optimization
* Availability checks
* Data enrichment
### 4. transformProductData
**Purpose:**\
Transforms raw GraphQL product data into template-friendly format.
**Parameters:**
1. `product` (Raw GraphQL data) contains:
* Basic information:
* `id` (String): GraphQL product ID (format: "gid://shopify/Product/{id}")
* `handle` (String): Product URL handle
* `title` (String): Product title
* `vendor` (String): Product vendor
* Images:
* `featuredImage` (Object): Main product image
* `images` (Object): Additional product images
* Pricing:
* `priceRange` (Object): Min/max prices
* `compareAtPriceRange` (Object): Original prices
* Variants:
* `variants` (Object): Product variants data
* `variantsCount` (Object): Total variants count
* Options:
* `options` (Array): Product options
* `selectedOptions` (Array): Default selections
* Status:
* `availableForSale` (Boolean): Stock status
* `tags` (Array): Product tags
2. `recommendation` provides:
* [`section`](/for-developers/section-template/schemas#section-object) settings:
* Display configuration
* Pricing rules
* Layout settings
* Tracking configuration
**Returns:**\
[`Product`](/for-developers/section-template/schemas#product-object) object containing:
* Normalized product data
* Formatted prices
* Processed images
* Structured variants
* Computed fields
**Example:**
```javascript
transformProductData: (product, recommendation, utils) => {
return {
...product,
trackingData: utils.generateTrackingData(product, recommendation),
variants: product.variants.map(variant => ({
...variant,
formattedPrice: utils.formatMoney(variant.price),
isAvailable: variant.inventory_quantity > 0
})),
labels: utils.generateProductLabels(product, recommendation.settings)
};
}
```
**Use Cases:**
* Tracking setup
* Variant processing
* Label generation
* Price formatting
* Custom field addition
### 5. initSwiper
**Purpose:**\
Initializes and configures the carousel/slider functionality for sections using Swiper.js.
**Parameters:**
1. `Swiper` (Constructor Class):
* Swiper.js constructor
* Used to create carousel instances
* Handles slide functionality
* Manages touch events
* Controls navigation
2. `templateSettings` contains:
* [`template.settings`](/for-developers/section-template/schemas#template-object) with:
* `carousel` (Object): Carousel-specific settings
* `breakpoints` (Object): Responsive configuration:
* `small` (Object): Mobile settings
* `medium` (Object): Tablet settings
* `large` (Object): Desktop settings
* Each breakpoint contains:
* `screenSize` (Number): Width breakpoint
* `cardsPerView` (Number): Visible slides
* `gutter` (Number): Space between slides
3. `container` (HTMLElement):
* Root section element
* Contains carousel structure:
* Wrapper element
* Slide elements
* Navigation buttons
* Pagination dots
4. `params` contains:
* [`recommendation`](/for-developers/section-template/schemas#recommendation-object):
* `section` (Object): Section configuration
* `products` (Array): Product data
* Layout settings
* Template-specific parameters
5. `defaultSettings` contains:
* Default Swiper configuration:
* Navigation options
* Pagination settings
* Autoplay configuration
* Effect settings
* Loop behavior
6. `utils` provides:
* `merge`: Deep object merging
* DOM manipulation helpers
* Event handling utilities
* Error handling functions
**Returns:**
* `Swiper` instance if initialization succeeds
* `undefined` if initialization fails
**Example:**
```javascript
initSwiper: (Swiper, templateSettings, container, params, defaultSettings, utils) => {
const carouselContainer = container.querySelector('._gai-crz-cnt');
if (!carouselContainer) {
console.error('GLOOD.AI:ERROR: Carousel container not found for section', params.recommendation.section.id);
return;
}
const settings = templateSettings?.carousel?.swiperConfig || {};
const swiperConfig = utils.merge(defaultSettings, settings);
const breakpoints = Object.values(templateSettings.breakpoints).reduce(
(acc, curr) => ({
...acc,
[curr.screenSize]: {
slidesPerView: curr.cardsPerView,
spaceBetween: curr.gutter,
},
}),
{}
);
return new Swiper(carouselContainer, utils.merge(swiperConfig, { breakpoints }));
}
```
### 6. onVariantChange
**Purpose:**\
Handles product variant selection changes and updates the UI.
**Parameters:**
1. `args` contains:
* `variant` information:
* Basic details: ID, price, compare price
* Image information with source and alt text
* Availability status and quantity
* Selected options (color, size, etc.)
* Complete [`product`](/for-developers/section-template/schemas#product-object) data
* DOM container element for the product card
2. `utils` provides:
* Price formatting functions
* Image update utilities
* Price display update functions
* Other UI manipulation helpers
### 7. onSwatchChange
**Purpose:**\
Handles swatch selection events and updates product display accordingly.
**Parameters:**
1. `args` contains:
* `option` object with:
* `name` (String): Option name (e.g., "Color", "Size")
* `value` (String): Selected option value
* `type` (String): Swatch type (color/size/material)
* `swatchImage` (String, optional): Custom swatch image URL
* [`product`](/for-developers/section-template/schemas#product-object) object containing:
* `variants` (Array): All product variants
* `options` (Array): Available option types
* `selectedVariant` (Object): Currently selected variant
* `images` (Array): Product images
* `container` (HTMLElement): Product card DOM element
2. `utils` provides:
* `updateSwatchUI`: Updates swatch selection state
* `findMatchingVariant`: Finds variant by options
* `updateProductImage`: Updates product image
* `updatePriceDisplay`: Updates price display
* Event tracking utilities
**Returns:**\
void
### 8. onCartOperationComplete
**Purpose:**\
Handles post-cart operation tasks and updates UI accordingly.
**Parameters:**
1. `args` contains:
* `operation` (String): Type of operation ('add'|'update'|'remove')
* `response` object with:
* `cart` (Object): Updated cart state
* `items` (Array): Modified cart items
* `total` (Number): New cart total
* `count` (Number): Updated item count
* [`section`](/for-developers/section-template/schemas#section-object) containing:
* Section configuration
* Template settings
* Tracking data
* `container` (HTMLElement): Section container
2. `utils` provides:
* `updateCartUI`: Updates cart display
* `showNotification`: Displays notifications
* `updateInventory`: Updates stock status
* Animation utilities
3. `gloodUtils` provides:
* `trackCartEvent`: Analytics tracking
* `formatCartData`: Data formatting
* `updateShopifyCart`: Cart sync utilities
* Store-specific helpers
**Returns:**\
void
### 9. validateCartOperation
**Purpose:**\
Validates and potentially modifies cart operations before execution.
**Parameters:**
1. `payload` contains:
* Array of items being added/modified:
* Product identifier
* Variant identifier
* Quantity
* Additional cart-specific data
2. `recommendation` provides:
* [`section`](/for-developers/section-template/schemas#section-object) configuration
* Product data
* Template settings
3. `utils` and `gloodUtils`:
* Validation helpers
* Cart operation utilities
* Format and transformation functions
**Returns:**
* Modified payload if valid
* Error message if validation fails
* Optional redirect URL
### 10. onProductDataReceived
**Purpose:**\
Processes raw product data before transformation and rendering.
**Parameters:**
1. `args` contains:
* `products` array with raw product data:
* `id` (number): Product identifier
* `title` (String): Product title
* `handle` (String): Product URL handle
* `featuredImage` (Object): Main product image
* `variants` (Array): Raw variant data
* `options` (Array): Product options
* `tags` (Array): Product tags
* [`section`](/for-developers/section-template/schemas#section-object) object with:
* Layout configuration
* Discount settings
* Template rules
* Display settings
* [`template`](/for-developers/section-template/schemas#template-object) containing:
* Breakpoint settings
* Card configuration
* Image dimensions
* Price display rules
2. `utils` provides:
* `processImages`: Image optimization utilities
* `formatProductData`: Data formatting helpers
* `validateProducts`: Data validation functions
* `enrichProductData`: Data enrichment utilities
* `handleErrors`: Error handling functions
**Returns:**\
void
### 11. loadAjaxCart
**Purpose:**\
Determines when to load the AJAX cart section by checking if the AJAX cart is active.
**Parameters:**
1. `bodyElem` (HTMLElement):
* The document body element
* Provides access to AJAX cart state
**Returns:**\
`Boolean` - True if AJAX cart is active and should be loaded
**Example:**
```javascript
loadAjaxCart: (bodyElem) => {
const ajaxCart = bodyElem.querySelector('cart-drawer');
return ajaxCart.classList.contains("active");
}
```
**Use Cases:**
* Update recommendations dynamically when products are added to cart
### 12. unloadAjaxCart
**Purpose:**\
Determines when to unload the AJAX cart section by checking if the AJAX cart is inactive.
**Parameters:**
1. `bodyElem` (HTMLElement):
* The document body element
* Provides access to AJAX cart state
**Returns:**\
`Boolean` - True if AJAX cart is inactive and should be unloaded
**Example:**
```javascript
unloadAjaxCart: (bodyElem) => {
const ajaxCart = bodyElem.querySelector('cart-drawer');
return !ajaxCart.classList.contains("active");
}
```
**Use Cases:**
* Control AJAX cart unloading timing
* Clean up cart resources
* Manage AJAX cart states
* Handle cart closure events
## Hook Dependencies
### Required Utils
* `formatMoney`: Price formatting
* `getVariantById`: Variant lookup
* `updateUrl`: URL manipulation
* `merge`: Object merging
* `imageOptimizer`: Image optimization
### Global Context
* `glood`: Store configuration
* `translations`: Text strings
* `template`: Template settings
* `section`: Section configuration
* `utils`: Common utilities
### Hook Flow Dependencies
* `transformProductData` needs data from `getProductDetailsQuery`
* `afterSectionRendered` needs data from `transformProductData`
* Cart operations need data from `onVariantChange`
* Swiper needs container from `afterSectionRendered`
## Error Handling
Each hook should handle these critical errors:
1. Carousel Initialization Errors
```javascript
// Critical: Section won't render if carousel container is missing
if (!carouselContainer) {
console.error('GLOOD.AI:ERROR: Carousel container not found for section', params.recommendation.section.id);
return;
}
```
2. Product Data Transformation Errors
```javascript
// Critical: Invalid product data will break the section
if (!product.variants?.nodes) {
console.error('GLOOD.AI:ERROR: Invalid variant data structure for product', product.id);
return {
...product,
variants: [],
available: false
};
}
```
3. GraphQL Query Response Errors
```javascript
// Critical: Missing required fields will cause rendering issues
if (!product.priceRange?.minVariantPrice?.amount) {
console.error('GLOOD.AI:ERROR: Missing price data for product', product.id);
return null;
}
```
These errors require immediate attention as they:
* Prevent sections from rendering correctly
* Break core product functionality
* Impact the shopping experience
* Can cause JavaScript runtime errors
## Support
If you need help with creating or customizing section templates, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Introduction
Source: https://docs.glood.ai/for-developers/section-template/introduction
Learn about section templates in Glood.AI
# Section Templates
Section templates in Glood.AI are the building blocks for displaying product recommendations in your Shopify store. They function similarly to Shopify themes, allowing you to create custom layouts and designs for your product recommendations.
## What are Section Templates?
Section templates are modular components that determine how your product recommendations are displayed. They are:
1. **Similar to Shopify Themes**: They follow the same principles as Shopify themes, using Liquid templating for dynamic content rendering.
2. **JavaScript-Powered**: Templates are loaded dynamically using JavaScript through the Glood.AI app embed, which handles recommendation fetching and rendering.
3. **Headless Compatible**: While templates are primarily for traditional Shopify stores, headless stores and Hydrogen apps can use our headless APIs instead.
4. **Multi-Component Structure**: Each template consists of:
* Liquid templates for markup
* JavaScript for interactivity
* CSS for styling
* Settings schema for customization
* Translation strings for internationalization
5. **Flexible Rendering**: Templates can be rendered either on the frontend or backend, depending on your needs and configuration.
6. **Extensible**: We provide built-in Tags, Filters, and JavaScript Hooks for easy customization and third-party app integration.
## Template Components
A basic section template includes these core components:
```liquid
{% stylesheet %}
/* Template styles */
{% endstylesheet %}
{% javascript %}
// Template JavaScript
{% javascript %}
```
## Template Features
### 1. Settings Schema
* Configurable options for layout, styling, and behavior
* Support for various input types (text, select, color, etc.)
* Section-specific configurations
### 2. Translations
* Multi-language support
* Customizable text strings
* Fallback handling for missing translations
### 3. Liquid Markup
* Dynamic content rendering
* Built-in filters for data manipulation
* Conditional rendering and loops
### 4. JavaScript
* Event handling
* DOM manipulation
* API integrations
* Cart operations
### 5. CSS
* Responsive layouts
* Custom styling
* Animation support
* Theme compatibility
## Extension Points
We provide several ways to extend and customize templates:
1. **Tags**: Custom Liquid tags for template functionality
```liquid
{% product_ratings product_id: product.id %}
```
2. **Filters**: Data manipulation filters
```liquid
{{ product.price | format_money: glood.shop.money_format }}
```
3. **Hooks**: JavaScript hooks for lifecycle events
```javascript
initSection: (args, cb, utils) => {
// Initialization logic
}
```
## Best Practices
1. **Performance**
* Optimize images and assets
* Minimize JavaScript execution time
* Use efficient selectors
* Implement lazy loading
2. **Compatibility**
* Test across different themes
* Ensure mobile responsiveness
* Handle edge cases gracefully
* Support various browser versions
3. **Maintainability**
* Follow naming conventions
* Document custom functionality
* Use modular code structure
* Implement error handling
4. **Accessibility**
* Use semantic HTML
* Add ARIA attributes
* Ensure keyboard navigation
* Provide alt text for images
## Libraries
The section template system uses the following core libraries that you'll interact with when customizing templates:
### Core Libraries
```json
"preact": "^10.22.1"
```
Our UI library for building interactive components.
**Key Features**:
* React-compatible API
* Lightweight (3kB)
* Virtual DOM
* Component-based architecture
[View Preact Documentation →](https://preactjs.com/)
```json
"swiper": "^11.1.15"
```
Powers carousel functionality in templates.
**Common Uses**:
* Product carousels
* Image galleries
* Touch-enabled sliders
* Responsive layouts
[View Swiper Documentation →](https://swiperjs.com/)
```json
"liquidjs": "^10.19.0"
```
Template engine for rendering Shopify-compatible templates.
**Features**:
* Shopify Liquid syntax
* Custom tags and filters
* Theme compatibility
[View Liquid.js Documentation →](https://liquidjs.com/)
## Next Steps
* Learn about [Filters](filters) for data manipulation
* Explore [Tags](tags) for template functionality
* Understand [Hooks](hooks) for JavaScript integration
* Check out [Template Structure](template-structure) for detailed component information
## Support
If you need help with creating or customizing section templates, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# null
Source: https://docs.glood.ai/for-developers/section-template/schemas
## Understanding Core Components
The template system uses seven essential building blocks that work together:
1. `glood` - Global store configuration
2. `products` - Product data management
3. `translations` - Multi-language support
4. `section` - Layout and behavior control
5. `template` - Appearance and styling settings
6. `clientInfo` - Device and viewport information
7. `config` - Integration and feature management
## `glood` Object
The global object contains the store information required by the glood application to work properly on your store.
### Purpose and Usage
The glood object provides essential store information and configuration settings that are used throughout the template. It's particularly important for:
* Building correct store URLs
* Formatting prices according to store settings
* Handling localization
### Properties Reference
### Core Properties
| Key | Type | Description | Default Value |
| ----------------- | ------ | ----------------------------- | ------------- |
| `shopify.rootUrl` | string | Base URL of the Shopify store | "/" |
### Localization Properties
| Key | Type | Description | Default Value |
| ------------------------------- | ------- | -------------------------------- | ------------- |
| `localization.language.locale` | string | Language code | "en" |
| `localization.language.primary` | boolean | Whether this is primary language | true |
| `localization.language.rootUrl` | string | Base URL for language | "/" |
| `localization.country` | string | Country code | "IN" |
| `localization.currency` | string | Currency code | "INR" |
### Market Properties
| Key | Type | Description | Default Value |
| --------------- | ------ | ------------------------ | ------------- |
| `market.id` | string | Unique market identifier | "27455750381" |
| `market.handle` | string | Market handle | "in" |
### Shop Properties
| Key | Type | Description | Default Value |
| -------------------- | ------ | ------------------------ | ---------------------------------- |
| `shop.domain` | string | Store's domain | "adarsh-test2-store.myshopify.com" |
| `shop.id` | string | Shop identifier | "73540239597" |
| `shop.productsCount` | number | Total number of products | 15 |
| `shop.currencyRate` | string | Currency conversion rate | "1.0" |
| `shop.moneyFormat` | string | Store's currency format | `"Rs. \{\{amount\}\}"` |
| `shop.currencyCode` | string | Store's currency code | "INR" |
### Product Properties
| Key | Type | Description | Default Value |
| ------------------- | ------- | --------------------------- | --------------------------- |
| `product.id` | number | Current product identifier | 8925145628909 |
| `product.title` | string | Product title | "(Sample) Coconut Bar Soap" |
| `product.handle` | string | Product handle | "soap" |
| `product.available` | boolean | Product availability status | true |
| `product.price` | number | Product price | 2000 |
| `product.vendor` | string | Product vendor | "adarsh-test2-store" |
| `product.type` | string | Product type | "" |
### Cart Properties
| Key | Type | Description | Default Value |
| ----------------------- | ------- | ------------------------------ | ------------- |
| `cart.currency` | string | Cart currency | "INR" |
| `cart.itemCount` | number | Number of items in cart | 16 |
| `cart.totalPrice` | number | Total cart price | 752945 |
| `cart.requiresShipping` | boolean | Whether cart requires shipping | true |
| `cart.totalWeight` | number | Total cart weight | 250 |
### Config Properties
| Key | Type | Description | Default Value |
| ----------------- | ------ | -------------------- | ------------------------------------------------- |
| `config.pageType` | string | Type of current page | "product" |
| `config.pageUrl` | string | Current page URL | "adarsh-test2-store.myshopify.com/products/soap" |
| `config.uid` | string | Unique identifier | "1737978965-cd63b5e8-9f99-4519-a4bc-b0dac71ccead" |
**NOTE:**
1. All property keys are automatically converted to snake\_case when used in Liquid templates. For example:
* `rootUrl` → `root_url`
* `devicePixelRatio` → `device_pixel_ratio`
* `moneyFormat` → `money_format`
2. If you want to get the content of glood object, you can access it through `window.glood` inside your store.
Example usage in Liquid:
```liquid
{{ glood.shop.moneyFormat }}
{{ glood.localization.language.rootUrl }}
```
## `products` Array
The products array is a fundamental component that manages product data in the template system.
### Purpose and Usage
The products array is responsible for:
* Managing the collection of products to be displayed
* Handling product data organization
* Controls variant and option configurations
* Managing pricing and inventory information
* Providing media assets for product display
### Properties Reference
| Key | Type | Description | Example |
| ------------------------------------ | ------- | ------------------------ | ---------------------------------------------------------------------------------------------------- |
| `id` | number | Product identifier | 8925145628909 |
| `title` | string | Product name | "Coconut Bar Soap" |
| `handle` | string | Product URL handle | "coconut-bar-soap" |
| `vendor` | string | Product vendor name | "Natural Essentials" |
| `tags` | array | Product tags | \["new", "organic", "bestseller"] |
| `featuredImage.src` | string | Main product image URL | "[https://cdn.shopify.com/s/files/1/soap.jpg](https://cdn.shopify.com/s/files/1/soap.jpg)" |
| `images[].src` | string | Additional image URLs | \["[https://cdn.shopify.com/s/files/1/soap-1.jpg](https://cdn.shopify.com/s/files/1/soap-1.jpg)"] |
| `variants` | array | Product variants | \[See variant example below] |
| `variants[].id` | string | Variant identifier | "40468007231725" |
| `variants[].title` | string | Variant title | "Small / Blue" |
| `variants[].availableForSale` | boolean | Stock availability | true |
| `variants[].price` | string | Variant price | "19.99" |
| `variants[].compareAtPrice` | string | Original price | "24.99" |
| `variants[].image.src` | string | Variant image URL | "[https://cdn.shopify.com/s/files/1/blue-soap.jpg](https://cdn.shopify.com/s/files/1/blue-soap.jpg)" |
| `variants[].selectedOptions` | array | Selected variant options | \[See options example below] |
| `variants[].selectedOptions[].name` | string | Option name | "Size" |
| `variants[].selectedOptions[].value` | string | Option value | "Small" |
| `options` | array | Product options | \[See options example below] |
| `options[].name` | string | Option name | "Size" |
| `options[].optionValues` | array | Available option values | \["Small", "Medium", "Large"] |
| `showComparePrice` | boolean | Show compare at price | true |
| `firstVariant` | object | First available variant | \[See variant example above] |
**NOTE:** Product array structure is not fixed and it can be changed. If you want to change product array, you can visit the [transformProductData hook](/for-developers/section-template/hooks#4-transformproductdata) in the hooks section.
## `translations` Object
The translations object manages multi-language support and customizable text throughout the template.
### Purpose and Usage
The translations object serves multiple purposes:
* Provides language-specific text content
* Enables customizable UI messages
* Supports fallback text handling
### Properties Reference
| Key | Type | Description | Default Value |
| -------------------- | ------ | --------------------------------- | -------------------------------- |
| `oosText` | string | Out of stock message | "Out of stock" |
| `addedToCartText` | string | Success message for cart addition | "Added to cart" |
| `atcErrorText` | string | Error message for cart addition | "Error adding to cart" |
| `atcText` | string | Add to cart button text | "Add to cart" |
| `totalPriceText` | string | Total price label | "Total price" |
| `fbtAddToCartText` | string | Bundle add to cart text | "Add bundle to cart" |
| `fbtAddedToCartText` | string | Bundle success message | "Bundle added to cart" |
| `discountLabelText` | string | Discount label text | "Save {discount}" |
| `discountSaveText` | string | Savings amount text | "Save {amount}" |
| `fbtSaveText` | string | Bundle savings text | "Save {amount} with this bundle" |
| `new` | string | New product badge text | "New" |
| `trending` | string | Trending product badge text | "Trending" |
| `bestseller` | string | Bestseller badge text | "Bestseller" |
**NOTE:** The `new`, `trending`, and `bestseller` translations are used to display text inside badge on product cards. These badges help highlight product status or popularity to customers. The badges will automatically appear on products based on their tags or other criteria set in the template settings.
## `section` Object
The section object controls how your recommendation section is structured and behaves.
### Purpose and Usage
The section object is crucial for:
* Defining the section's basic structure
* Managing product display layouts
* Controlling interactive features
* Setting up titles and descriptions
* Handling responsive behaviors
### Properties Reference
| Key | Type | Description | Example |
| ------------------- | ------- | -------------------------------- | ---------------------------------- |
| `id` | number | Unique section identifier | 12345 |
| `layout` | string | Section layout type | "horizontal\_grid" |
| `location` | string | Section placement location | "product\_page" |
| `position` | number | Section position order | 1 |
| `title` | string | Section heading text | "You May Also Like" |
| `template` | string | Template identifier | "default" |
| `extra` | object | Additional section configuration | `{"maxProducts":4}` |
| `discountConfig` | object | Discount settings | `{"type":"percentage","value":20}` |
| `showDiscountLabel` | boolean | Display discount labels | true |
| `translations` | object | Section-specific translations | `{"discountText":"Save"}` |
| `templateV3` | boolean | Using template version 3 | true |
| `sectionServeId` | string | Unique serve identifier | "s-12345-abcd-9876" |
| `pageType` | string | Page section appears on | "product" |
## `template` Object
The template object is your control center for visual styling and responsive behavior.
### Purpose and Usage
The template object is responsible for:
* Managing responsive breakpoints
* Controlling visual styling
* Handling product card appearance
* Managing interactive behaviors
* Implementing custom themes
### Properties Reference
| Key | Type | Description | Example | Default Value |
| ----------------------------------------------------- | ------- | ---------------------------------------- | ----------------------------------------- | ------------- |
| `settings.breakpoints.small` | object | Mobile device settings | See breakpoint example | {} |
| `settings.breakpoints.medium` | object | Tablet device settings | See breakpoint example | {} |
| `settings.breakpoints.large` | object | Desktop device settings | See breakpoint example | {} |
| `settings.breakpoints[].cardsPerView` | number | Number of cards per row | `2` (mobile), `3` (tablet), `4` (desktop) | 4 |
| `settings.breakpoints[].gutter` | number | Space between cards in pixels | `10` (mobile), `20` (desktop) | 20 |
| `settings.breakpoints[].justifyWidgetTitle` | enum | Title alignment | `"left"`, `"center"`, `"right"` | "left" |
| `settings.breakpoints[].widgetTitleAlignment` | string | Widget title positioning | `"left"`, `"center"`, `"right"` | "left" |
| `settings.breakpoints[].productTitleAlignment` | string | Product title alignment | `"left"`, `"center"`, `"right"` | "left" |
| `settings.breakpoints[].comparePriceVisible` | boolean | Show/hide compare price | `true`, `false` | false |
| `settings.breakpoints[].imageWidth` | number | Product image width | `300` | 300 |
| `settings.breakpoints[].imageHeight` | number | Product image height | `300` | 300 |
| `settings.breakpoints[].screenSize` | number | Breakpoint width threshold | `768` | 768 |
| `settings.breakpoints[].maxSectionTitleRows` | number | Maximum section title rows | `2` | 2 |
| `settings.breakpoints[].maxProductTitleRows` | number | Maximum product title rows | `2` | 2 |
| `settings.breakpoints[].widgetTitleFontSize` | number | Section title font size | `24` | 24 |
| `settings.breakpoints[].productTitleFontSize` | number | Product title font size | `16` | 16 |
| `settings.breakpoints[].productVendorFontSize` | number | Vendor name font size | `14` | 14 |
| `settings.productCard.vendorPosition` | enum | Vendor position | `"above"`, `"below"`, `"hidden"` | hidden |
| `settings.productCard.addToCartMode` | enum | Add to cart behavior | `"card_hover"`, `"image_hover"`, `"fix"` | card\_hover |
| `settings.productCard.imageHoverMode` | enum | Image hover effect | `"secondary"`, `"zoom"`, `"none"` | secondary |
| `settings.productCard.imageObjectFit` | enum | Image fitting mode | `"contain"`, `"cover"` | contain |
| `settings.productCard.priceCompareMode` | enum | Compare price position | `"before"`, `"after"`, `"hidden"` | before |
| `settings.productCard.discountLabelPosition` | enum | Discount badge position | `"left"`, `"right"`, `"center"` | center |
| `settings.productCard.variantSelectorType` | enum | Variant selection UI | `"integrated"`, `"selector"`, `"swatch"` | integrated |
| `settings.productCard.showQuantitySelector` | boolean | Show quantity selector | `true`, `false` | false |
| `settings.productCard.minQuantity` | number | Minimum order quantity | `1` | |
| `settings.productCard.maxQuantity` | number | Maximum order quantity | `10` | |
| `settings.productCard.imageAspectRatio` | string | Image aspect ratio | `"1:1"` | |
| `settings.productCard.showVendor` | boolean | Show/hide vendor name | `true` | |
| `settings.productCard.maxTitleLines` | number | Maximum product title lines | `2` | |
| `settings.productCard.showDiscountPill` | boolean | Show/hide discount badge | `true` | |
| `settings.labels` | array | Product label configurations | See labels example | |
| `settings.labels[].name` | string | Label name | `"new"`, `"sale"` | |
| `settings.labels[].textColor` | string | Label text color | `"#ffffff"` | |
| `settings.labels[].backgroundColor` | string | Label background color | `"#ff0000"` | |
| `settings.maxLabelsCount` | number | Maximum labels to show | `2` | |
| `settings.swatches` | array | Swatch configurations | See swatches example | |
| `settings.swatches[].type` | enum | Swatch type | `"color"`, `"size"` | |
| `settings.swatches[].key` | string | Option key to match | `"color"`, `"size"` | |
| `settings.swatches[].optionNames` | array | Valid option names | `["Color", "Colour"]` | |
| `settings.carousel.library` | string | Carousel library to use | `"swiper"` | |
| `settings.carousel.showPagination` | boolean | Show carousel pagination | `true`, `false` | false |
| `settings.amazonBoughtTogether.priceCompareAtMode` | enum | Bundle price compare mode | `"before"`, `"after"` | before |
| `settings.amazonBoughtTogether.buttonBackgroundColor` | string | Bundle button background | `"#000000"` | |
| `translations` | object | Section-specific translations | See translations object | |
| `settings.intlOptions` | object | Locale based currency formatting options | Intl DOM API options | {} |
**NOTE:**
1. `addToCartMode` behavior options:
* `card_hover`: Add to cart button slides up from the bottom of the card when hovering over the product card
* `image_hover`: Add to cart button appears over the product image on hover
* `fix`: Add to cart button is always visible below the product details
2. The `translations` key in this table refers to the same structure as the [translations object](/for-developers/section-template/schemas#translations-object).
3. Example intlOptions:
```json
{
"en": {
"style": "currency",
"currency": "USD",
"minimumFractionDigits": 2,
"maximumFractionDigits": 2,
"currencyDisplay": "symbol"
}
}
```
This configuration allows for customization of:
* Currency display format
* Decimal place handling
* Currency symbol presentation
* Localized number formatting
## `clientInfo` Object
The clientInfo object provides information about the client's device and viewport settings.
### Purpose and Usage
The clientInfo object is essential for:
* Responsive design decisions
* Image optimization
### Properties Reference
| Key | Type | Description | Example |
| ------------------ | ------ | ----------------------------------------- | ---------------------------------------------------------------------- |
| `clientWidth` | number | Current viewport width in pixels | 1440 |
| `clientHeight` | number | Current viewport height in pixels | 900 |
| `devicePixelRatio` | number | Device pixel ratio for image optimization | 2 |
| `userAgent` | string | Browser's user agent string | "Mozilla/5.0 (Macintosh; Intel Mac OS X 10\_15\_7) AppleWebKit/537.36" |
## `config` Object
The config object manages global configuration settings for the recommendation section.
### Purpose and Usage
The config object controls:
* Integration enablement and management
* Third-party app configurations
* Feature availability
* App-specific settings
### Properties Reference
| Key | Type | Description | Possible Values |
| ---------------------------- | ------ | --------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `config.integrationsEnabled` | array | List of enabled integration slugs | `["judge_me", "loox", "stamped", "rivyo", "okendo", "ali", "ssw", "ryviu", "spr", "lai", "junip"]` |
| `config.productReviewApp` | string | Selected product review app name | `"judge_me", "loox", "stamped", "rivyo", "okendo", "ali", "ryviu", "lai", "junip" (or none if not using reviews)` |
| `config.swatchApp` | string | Selected swatch app name | `"variant_options_swatch_king", "csp" (or none if not using swatches)` |
## Support
For help with template customization or troubleshooting, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Tags
Source: https://docs.glood.ai/for-developers/section-template/tags
Learn about available tags for extending section template functionality
# Section Template Tags
Tags in Glood.AI section templates provide additional functionality and integrations for your product recommendations.
## Available Tags
### Product Review Integration
#### product\_ratings
Integrates product reviews from supported review apps.
**Parameters:**
* `product_id`: The product ID to fetch reviews for
**Supported Apps:**
* Judge.me
* Loox
**Example:**
```liquid
{% product_ratings product_id: product.id %}
```
**Output Examples:**
For Judge.me:
```html
```
For Loox:
```html
```
## Using Tags in Templates
Here's an example of using tags in a product card:
```liquid
{{ product.title }}
{{ product.price | money_formatter: glood }}
{% product_ratings product_id: product.id %}
```
## Tag Configuration
### Review App Integration
To use the review app integration:
1. Configure your review app in the Glood.AI dashboard
2. Add the appropriate review app scripts to your theme
3. Use the tag in your section templates
The tag will automatically:
* Detect the configured review app
* Generate appropriate widget markup
* Handle missing configurations gracefully
## Best Practices
1. Always check if review app is configured before using the tag
2. Handle cases where product ID might be missing
3. Consider loading performance of review widgets
4. Test integration with different review app configurations
5. Provide fallback content when review app is not available
## Error Handling
The tag handles various error cases:
* No review app configured: Shows HTML comment
* Missing product data: Shows HTML comment
* Unsupported review app: Shows HTML comment
## Support
For questions about tags or custom tag development, contact our support team at [support@glood.ai](mailto:support@glood.ai)
# Activate Glood.AI
Source: https://docs.glood.ai/get-started/activate-glood-store
Enable Glood.AI recommendations on your Shopify store
After installing Glood.AI from the Shopify App Store, you'll need to activate it on your store using Shopify's Theme Editor. Follow these simple steps:
## Enable the App Embed Block
1. Go to your Shopify admin panel and navigate to **Online Store** > **Themes**
2. Find your current live theme and click **Customize** to open the Theme Editor
3. In the Theme Editor, click on **Theme Settings** at the bottom of the left navigation panel
4. Select **App embeds** from the settings menu
5. Find "Glood.AI Recommendations" in the list and toggle it **ON**
6. Click **Save** in the top-right corner to publish your changes
The app embed block must be enabled for Glood.AI recommendations to appear on your store. If you switch themes later, you'll need to enable the app embed block again on the new theme.
## Verify Installation
After enabling the app embed:
1. Visit your store's frontend
2. Check that Glood.AI recommendation sections appear where configured
3. Verify that product recommendations are loading correctly
If you don't see recommendations appearing, try:
* Refreshing your browser cache
* Waiting a few minutes for changes to propagate
* Checking that you saved the Theme Editor changes
* Contacting [support@glood.ai](mailto:support@glood.ai) if issues persist
## Next Steps
Once Glood.AI is activated, you can:
* Create your first personalized recommendations section
* Customize the appearance of recommendation widgets
* Configure advanced settings and targeting rules
* Track performance in the Glood.AI dashboard
# Introduction to Glood.AI
Source: https://docs.glood.ai/get-started/introduction
Welcome to Glood.AI - The AI-powered Personalized Recommendation Engine for Shopify Plus stores
## Getting Started
Follow these steps to start personalizing your Shopify Plus store:
Install Glood.AI directly from the Shopify App Store to get started with AI-powered recommendations and upselling.
Enable the Glood.AI application in your Shopify theme settings to start personalizing your store.
Set up your first AI product recommendation section to start showing personalized suggestions to your customers.
Use our Visual Editor or Templates to customize the look and feel of your recommendations to match your brand.
Build your first product bundle to increase average order value and encourage multi-product purchases.
Integrate personalized upsell recommendations into your cart page to boost sales.
Add upsell offers to your checkout process to maximize conversion opportunities.
Get up and running with Glood.AI in minutes
Integrate Glood.AI programmatically using our APIs
# Create First Personalized Recommendations Section
Source: https://docs.glood.ai/guides/create-first-personalized-recommendations-section
Learn how to add AI-powered product recommendations to your Shopify store
## Setup your store
Learn how to configure and deploy personalized product recommendations on your Shopify store.
### Configure and preview
To get started with Glood.AI recommendations, install our app from the
[Shopify App Store](https://apps.shopify.com/recommendation-kit). Once installed,
you'll have access to our dashboard where you can configure your recommendation sections
and view analytics.
Create your first recommendation section by selecting a recommendation type and placement:
1. From your Shopify admin, go to Apps > Glood.AI
2. Click "Create New Section"
3. Choose a recommendation type (e.g. "Similar Products", "Frequently Bought Together")
4. Select where you want the section to appear on your store
5. Customize the appearance and behavior of your recommendations
### Deploy your recommendations
Once you've created a recommendation section, you'll need to add it to your theme.
We provide multiple integration options:
1. Automatic installation through our app
2. Manual installation using our snippet
3. Headless integration using our API
After adding the section to your theme, publish your changes for them to go live.
You can preview the recommendations on your store before publishing. Our AI will
automatically start personalizing recommendations based on your store's data and
customer behavior.
## Enhance your recommendations
Customize and optimize your recommendation sections to maximize their impact.
Style your recommendation sections to match your store's branding.
Use our API for custom implementations and headless commerce.
Monitor engagement and conversion metrics for your recommendations.
Explore AI-powered personalization and merchandising features.
# Custom Web Pixel Events
Source: https://docs.glood.ai/guides/glood-custom-web-pixel-events
Learn about the custom Web Pixel events supported by Glood.AI
## Overview
Glood.AI's Web Pixel extension includes custom events to provide enhanced personalization and analytics capabilities. This guide covers all the custom Web Pixel events that our platform supports.
### What are Glood.AI Custom Web Pixel Events?
Glood.AI Custom Web Pixel events are specialized user interactions and activities that occur on your Shopify store. These events help track customer behavior specific to Glood.AI's personalization features, enabling:
* Advanced customer preference tracking
* Enhanced personalization capabilities
* Detailed analytics and insights
* Optimized recommendation performance
## Supported Events
The following section details all the custom events supported by Glood.AI's Web Pixel extension.
Events for tracking and storing customer preferences for personalization.
### Event: `glood:customer_preference`
This event is triggered to store customer preferences for personalization purposes within the **Glood.AI** platform.
### Event Structure
#### Event Name
```js
glood:customer_preference
```
#### Payload
The payload contains a structured object with the following fields:
| Field | Type | Description |
| ------------- | ---------------- | ------------------------------------------------------------- |
| `preferences` | Array of Objects | An array of key-value pairs representing customer preferences |
#### Preferences Object
Each object in the `preferences` array contains:
| Field | Type | Description |
| ------- | ------ | --------------------------------------------------------------------------- |
| `key` | String | The key representing the type of preference (e.g., "tags", "categories") |
| `value` | String | A string representing the value associated with the key (e.g., "tag1,tag2") |
### Example Usage
```javascript
Shopify.analytics.publish('glood:customer_preference', {
preferences: [
{ key: 'tags', value: "tag1,tag2" }
]
});
```
### Purpose
The primary purpose of this event is to store customer preferences in **Glood.AI** for:
* **Personalization**: Enhance customer experiences with tailored content and recommendations
* **Behavior Analysis**: Understand customer behavior through preference analysis
* **Targeted Campaigns**: Create specific campaigns based on customer preferences
### Use Cases
* Storing customer-selected tags, categories, or other preferences
* Personalizing product recommendations or content on a Shopify store
* Supporting segmentation and analytics within **Glood.AI**
Events for tracking user interactions with Glood recommendation sections.
### Event: `glood:section:click`
This event is triggered when a user clicks on a product within a Glood recommendation section.
### Event Structure
#### Event Name
```js
glood:section:click
```
#### Payload
The payload contains information about the clicked product and section:
| Field | Type | Description |
| ---------------------- | -------------- | --------------------------------------------------------- |
| `page` | String | The page ID where the click occurred |
| `parent.productId` | String \| null | ID of the current product page (if applicable) |
| `parent.variantId` | String \| null | ID of the current product variant (if applicable) |
| `products[].productId` | String | ID of the clicked product |
| `products[].variantId` | String | ID of the clicked product variant |
| `section` | String | ID of the Glood recommendation section |
| `sectionServeId` | String | Unique serve ID for the section render |
| `requestId` | String | Unique request ID from the Glood recommendations API call |
### Example Usage
```javascript
Shopify.analytics.publish('glood:section:click', {
page: "55380",
parent: {
productId: null,
variantId: null
},
products: [{
productId: "4594143232103",
variantId: "32389151621223"
}],
section: "216700",
sectionServeId: "98ae55db-8e25-46be-956e-2024d820edb4",
requestId: "1734410855-8dd0e6a0-4365-489b-b622-2fedca7129c0"
});
```
### Event: `glood:section:add_to_cart`
This event is triggered when a product is added to cart from a Glood recommendation section.
### Event Structure
#### Event Name
```js
glood:section:add_to_cart
```
#### Payload
The payload contains information about the added product and section:
| Field | Type | Description |
| ---------------------- | -------------- | --------------------------------------------------------- |
| `page` | String | The page ID where the add to cart occurred |
| `parent.productId` | String \| null | ID of the current product page (if applicable) |
| `parent.variantId` | String \| null | ID of the current product variant (if applicable) |
| `products[].productId` | String | ID of the product added to cart |
| `products[].variantId` | String | ID of the product variant added to cart |
| `products[].quantity` | Number | Quantity of the product added to cart |
| `section` | String | ID of the Glood recommendation section |
| `sectionServeId` | String | Unique serve ID for the section render |
| `requestId` | String | Unique request ID from the Glood recommendations API call |
### Example Usage
```javascript
Shopify.analytics.publish('glood:section:add_to_cart', {
page: "55380",
parent: {
productId: null,
variantId: null
},
products: [{
productId: "4594143232103",
variantId: "32389151621223",
quantity: 1
}],
section: "216700",
sectionServeId: "98ae55db-8e25-46be-956e-2024d820edb4",
requestId: "1734410855-8dd0e6a0-4365-489b-b622-2fedca7129c0"
});
```
### Purpose
These events help track user interactions with Glood recommendation sections to:
* **Measure Engagement**: Track clicks and conversions from recommendation sections
* **Analyze Performance**: Evaluate the effectiveness of different recommendation strategies
* **Improve Recommendations**: Use interaction data to enhance recommendation algorithms
### Use Cases
* Tracking which recommended products users click on
* Measuring conversion rates from recommendation sections
* Analyzing user behavior patterns with recommended products
# Introduction
Source: https://docs.glood.ai/guides/introduction
Start building awesome documentation in under 5 minutes
## Setup your development
Learn how to update your docs locally and deploy them to the public.
### Edit and preview
During the onboarding process, we created a repository on your Github with
your docs content. You can find this repository on our
[dashboard](https://dashboard.mintlify.com). To clone the repository
locally, follow these
[instructions](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)
in your terminal.
Previewing helps you make sure your changes look as intended. We built a
command line interface to render these changes locally. 1. Install the
[Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the
documentation changes locally with this command: `npm i -g mintlify`
2\. Run the following command at the root of your documentation (where
`mint.json` is): `mintlify dev`
### Deploy your changes
Our Github app automatically deploys your changes to your docs site, so you
don't need to manage deployments yourself. You can find the link to install on
your [dashboard](https://dashboard.mintlify.com). Once the bot has been
successfully installed, there should be a check mark next to the commit hash
of the repo.
[Commit and push your changes to
Git](https://docs.github.com/en/get-started/using-git/pushing-commits-to-a-remote-repository#about-git-push)
for your changes to update in your docs site. If you push and don't see that
the Github app successfully deployed your changes, you can also manually
update your docs through our [dashboard](https://dashboard.mintlify.com).
## Update your docs
Add content directly in your files with MDX syntax and React components. You can use any of our components, or even build your own.
Add flair to your docs with personalized branding.
Implement your OpenAPI spec and enable API user interaction.
Draw insights from user interactions with your documentation.
Keep your docs on your own website's subdomain.
# null
Source: https://docs.glood.ai/how-it-works/bundles/introduction
# null
Source: https://docs.glood.ai/how-it-works/introduction
# null
Source: https://docs.glood.ai/how-it-works/recommendations/bought-together
# null
Source: https://docs.glood.ai/how-it-works/recommendations/introduction
# null
Source: https://docs.glood.ai/how-it-works/recommendations/similar-products
# Introduction to Glood.AI
Source: https://docs.glood.ai/introduction
Glood.AI is an AI-powered Personalized Recommendation Engine for Shopify Plus. Learn how to get started.
## Let's look at top features of Glood.AI
Glood.AI is a complete Conversion Optimization Platform for Shopify Plus. It includes a Personalized Recommendation Engine, AI Search & Merchendizing, Upselling, Bundles, A/B Testing, Visual Editor and more.
Preview your changes before you push to make sure they're perfect
Preview your changes before you push to make sure they're perfect
Preview your changes before you push to make sure they're perfect
Preview your changes before you push to make sure they're perfect
Preview your changes before you push to make sure they're perfect
Preview your changes before you push to make sure they're perfect
## Setting up
The first step to integrating Glood.AI's personalized recommendation engine is connecting your Shopify Plus store. Install Glood.AI using the Shopify App Store. Once that is done then you can start building your first AI Personalized Recommendation section to boost AoV & Conversions.
Get your docs set up locally for easy development
Preview your changes before you push to make sure they're perfect
## Make it yours
Update your docs to your brand and add valuable content for the best user conversion.
Customize your docs to your company's colors and brands
Automatically generate endpoints from an OpenAPI spec
Build interactive features and designs to guide your users
Check out our showcase of our favorite documentation
# CCPA Compliance
Source: https://docs.glood.ai/legal/ccpa-compliance
Learn how Glood.AI protects your privacy while powering personalization in compliance with CCPA
# Glood and CCPA Compliance: Protecting Your Privacy While Powering Personalization
At Glood, our mission is to help merchants create better shopping experiences through AI-powered personalization. We believe that delivering relevant product recommendations should never come at the expense of your privacy. That's why we are committed to full compliance with the California Consumer Privacy Act (CCPA) and its amendment, the California Privacy Rights Act (CPRA).
For more information and queries regarding compliance, please contact us at **[support@glood.ai](mailto:support@glood.ai)**
***
## What is CCPA?
The CCPA gives California residents enhanced rights and control over their personal information. Under this law, consumers have the right to:
* **Know** what personal data is collected
* **Access** and request deletion of personal data
* **Opt-out** of the sale or sharing of personal data
* **Correct** inaccurate personal information
* **Limit** the use of sensitive personal information
***
## How Glood Collects and Uses Data
Glood uses certain technologies and limited personal data to make product recommendations relevant and timely for shoppers:
### 1. Cookies for Personalization
We use cookies and similar tracking technologies to:
* Identify returning visitors
* Display personalized product recommendations
* Improve the accuracy and relevance of suggestions
These cookies help us understand user preferences and behavior, allowing merchants to serve more tailored shopping experiences.
### 2. Collection of PII
To deliver personalization, Glood may collect personally identifiable information (PII) such as:
* Name
* Email address
* Purchase history
* Browsing activity on the merchant's site
This information is collected with your consent and is used solely to enhance your shopping experience.
### 3. No Sale of Personal Data
**Glood does not sell your personal information to any third party.** All data we process is used exclusively for providing personalization services on behalf of the merchant you are shopping with.
***
## Shopify Consent API Integration
We are fully integrated with the Shopify Consent API to ensure compliance with user choice:
If you accept the site's use policy, personalization features will be enabled as described.
If you do not accept, we will limit data collection and tracking accordingly.
If consent has not yet been given, we may track activity for up to 24 hours to support essential session continuity — after which all personalization tracking is stopped unless consent is provided.
***
## Your Rights Under CCPA
If you are a California resident, you can:
* **Request access** to the personal information we have about you
* **Ask for deletion** of your personal information (with certain legal/business exceptions)
* **Opt-out** of the sale or sharing of your data (even though Glood does not sell data)
* **Limit the use** of sensitive personal information
To exercise your rights, please contact the merchant whose store you are visiting, or email us directly at **[privacy@glood.ai](mailto:privacy@glood.ai)**.
***
## Our Commitment to Privacy
Glood's personalization technology is designed with privacy by default principles:
We collect only the information needed to deliver relevant product recommendations
We maintain technical and organizational safeguards to protect your data
We respect and process consent signals, including the Global Privacy Control (GPC) standard
***
## In Summary
Glood's personalization platform helps merchants improve conversion rates while respecting consumer privacy rights. We believe great shopping experiences and strong privacy protection can go hand in hand — and we build every feature with that philosophy at the core.
For any privacy-related questions or to exercise your rights under CCPA, please contact us at **[privacy@glood.ai](mailto:privacy@glood.ai)** or **[support@glood.ai](mailto:support@glood.ai)**.
# Data Processing Agreement
Source: https://docs.glood.ai/legal/data-processing-agreement
Standard Data Processing Agreement for Glood.AI services under GDPR
# Data Processing Agreement (DPA)
**Effective Date**: \[Date of Acceptance]
This DPA incorporates the EU Standard Contractual Clauses (SCCs) for international data transfers, ensuring GDPR compliance for transfers from the EEA to the United States.
This Data Processing Agreement ("**DPA**") forms part of the agreement between:
**Data Controller**: The merchant/customer using Glood.AI services ("**Customer**" or "**Controller**")
**Data Processor**: Glood.AI, operated by LoopClub Ltd ("**Glood**" or "**Processor**")
(each a "**Party**" and collectively the "**Parties**")
***
## 1. Definitions
In this DPA, the following terms shall have the meanings set out below:
* **"Data Protection Laws"**: All applicable data protection laws including GDPR (EU 2016/679), CCPA, and any other applicable privacy regulations
* **"Personal Data"**: Any information relating to an identified or identifiable natural person as defined under Data Protection Laws
* **"Processing"**: Any operation performed on Personal Data, including collection, storage, use, disclosure, or deletion
* **"Data Subject"**: The individual to whom Personal Data relates
* **"Sub-processor"**: Any third party engaged by Processor to process Personal Data
***
## 2. Processing of Personal Data
### 2.1 Scope and Purpose
**Purpose of Processing**: Providing AI-powered personalization, product recommendations, and analytics services for e-commerce optimization on Shopify stores.
**Categories of Data Subjects**:
* Website visitors
* Customers of the Controller
* Prospective customers
**Types of Personal Data Processed**:
* Identifiers (name, email, IP address)
* Shopping behavior (browsing history, product views, cart data)
* Transaction data (purchase history, order details)
* Device information (browser type, device type, screen resolution)
* Cookie identifiers (rk\_uid, rk.uid)
**Duration of Processing**: For the duration of the service agreement plus any retention period required by law or as specified in Section 5.
### 2.2 Processor's Obligations
The Processor shall:
a) Process Personal Data only on documented instructions from the Controller, including transfers to third countries
b) Ensure that persons authorized to process Personal Data have committed to confidentiality
c) Implement appropriate technical and organizational measures to ensure security of processing
d) Not engage sub-processors without prior written consent of the Controller
e) Assist the Controller in responding to data subject requests
f) Assist the Controller in ensuring compliance with security, breach notification, and assessment obligations
g) Delete or return all Personal Data after the end of services, at the Controller's choice
h) Make available all information necessary to demonstrate compliance and allow for audits
***
## 3. Controller's Obligations
The Controller shall:
a) Ensure that it has all necessary lawful bases for the processing of Personal Data
b) Provide clear instructions regarding the processing of Personal Data
c) Ensure compliance with all applicable Data Protection Laws
d) Inform the Processor immediately of any changes to Data Protection Laws affecting processing
e) Handle all communications with data subjects and supervisory authorities unless otherwise agreed
***
## 4. Security Measures
### 4.1 Technical and Organizational Measures
The Processor implements and maintains the following security measures:
**Technical Measures**:
* Encryption at rest and in transit (TLS 1.2+ for transit, AES-256 for storage)
* Access controls and authentication systems
* Regular security updates and patches
* Firewall and intrusion detection systems
* Regular automated backups
**Organizational Measures**:
* Role-based access control (RBAC)
* Confidentiality agreements with all personnel
* Regular security training for staff
* Audit logs of all data access
* Incident response procedures
### 4.2 Security Compliance
The Processor maintains compliance with:
* Shopify Partner Agreement requirements
* Industry standard security practices
* Regular security assessments
***
## 5. Data Retention and Deletion
### 5.1 Retention Periods
* **Real-time event data**: 365 days from collection
* **Order/transaction data**: Duration of the service agreement
* **Cookie data with consent**: 1 year
* **Cookie data without consent**: 24 hours
### 5.2 Data Deletion
Upon termination of services or upon Controller's request:
* All Personal Data will be deleted within 2 days
* Deletion confirmation will be provided to Controller
* Exception: Data required to be retained by law
***
## 6. Data Subject Rights
### 6.1 Assistance with Requests
The Processor shall assist the Controller in fulfilling data subject requests for:
* Access to Personal Data
* Rectification of Personal Data
* Erasure of Personal Data
* Restriction of processing
* Data portability
* Objection to processing
### 6.2 Automated Processing via Shopify
The Processor has implemented Shopify's mandatory compliance webhooks:
* `customers/data_request` - for access requests
* `customers/redact` - for deletion requests
* `shop/redact` - for shop data deletion
***
## 7. Sub-processors
### 7.1 Current Sub-processors
Glood.AI does not currently engage any sub-processors for processing Personal Data. All processing occurs within Glood's own infrastructure.
### 7.2 Addition of Sub-processors
The Processor shall:
* Notify the Controller of any intended addition or replacement of sub-processors
* Provide the Controller with 30 days to object to such changes
* Ensure sub-processors are bound by equivalent data protection obligations
***
## 8. International Data Transfers
### 8.1 Standard Contractual Clauses
For transfers of Personal Data from the European Economic Area (EEA), United Kingdom, or Switzerland to the United States, the Parties agree to be bound by the **Standard Contractual Clauses (Module 2: Controller to Processor)** pursuant to Commission Implementing Decision (EU) 2021/914 ("**SCCs**").
### 8.2 SCC Implementation
For purposes of the SCCs:
* **Data Exporter**: The Controller (Merchant)
* **Data Importer**: The Processor (Glood.AI)
* **Competent Supervisory Authority**: The supervisory authority in the Data Exporter's jurisdiction
* **Governing Law for SCCs**: Laws of the Data Exporter's jurisdiction
### 8.3 SCC Annexes
The following information supplements the SCCs:
**Annex I - Transfer Details**
* **Categories of data subjects**: As specified in Section 2.1 of this DPA
* **Categories of personal data**: As specified in Section 2.1 of this DPA
* **Processing purposes**: Providing AI-powered personalization and recommendations for e-commerce
* **Retention period**: As specified in Section 5 of this DPA
**Annex II - Technical and Organizational Measures**
* Encryption at rest (AES-256) and in transit (TLS 1.2 or higher)
* Role-based access controls with multi-factor authentication
* Regular security updates and vulnerability patches
* Audit logging of all data access
* Incident response procedures
* Regular backups with encryption
### 8.4 Supplementary Measures
In addition to the SCCs, the Processor implements these supplementary measures to ensure adequate protection:
* **Encryption**: All Personal Data is encrypted using industry-standard encryption both at rest and in transit
* **Access Controls**: Strict access limitations with logging and monitoring
* **Legal Protections**: Commitment to challenge any unlawful government data requests
* **Transparency**: Notification to Controller if legally compelled to disclose data (where permitted by law)
### 8.5 Transfer Impact Assessment
The Processor has assessed the laws and practices of the United States and confirms that, with the supplementary measures in place, they do not impinge on the effectiveness of the SCCs. This assessment is available upon request.
***
## 9. Data Breach Management
### 9.1 Breach Notification
In the event of a Personal Data breach, the Processor shall:
* Notify the Controller without undue delay and within 48 hours of becoming aware
* Provide details of the nature, scope, and impact of the breach
* Describe measures taken to address the breach
* Cooperate with the Controller in notifying supervisory authorities and data subjects
### 9.2 Breach Records
The Processor maintains records of all Personal Data breaches, including:
* Facts relating to the breach
* Effects and consequences
* Remedial action taken
***
## 10. Compliance Verification
### 10.1 Demonstration of Compliance
To satisfy GDPR Article 28(3)(h) requirements, the Processor shall:
a) **Provide Information**: Make available to the Controller, upon reasonable written request:
* Documentation of security measures and data protection practices
* Confirmation of compliance with this DPA and applicable Data Protection Laws
* Summary reports of data processing activities relevant to the Controller
b) **Compliance Methods**: The Controller may verify Processor's compliance through:
* Review of Processor's security documentation and policies
* Questionnaires or self-assessment forms provided by the Processor
* Review of Shopify Partner Program compliance status
* Third-party certifications or attestations obtained by the Processor (when available)
### 10.2 Limitations
* Information requests shall be limited to once per twelve (12) month period unless required by Data Protection Laws
* The Processor may redact confidential information not relevant to the Controller's data processing
* All information shared is subject to confidentiality obligations
* The Controller shall provide at least 30 days written notice for any compliance verification request
### 10.3 Costs
* The first annual compliance verification request shall be at no cost to the Controller
* Additional requests may be subject to reasonable fees based on the Processor's time and resources
***
## 11. Liability and Indemnification
### 11.1 Liability
Each Party's liability under this DPA shall be subject to the limitations set forth in the main service agreement.
### 11.2 Indemnification
Each Party shall indemnify the other against losses arising from its breach of this DPA or applicable Data Protection Laws.
***
## 12. Term and Termination
### 12.1 Duration
This DPA shall remain in effect for the duration of the main service agreement.
### 12.2 Survival
Sections relating to confidentiality, data deletion, and liability shall survive termination.
***
## 13. Miscellaneous
### 13.1 Governing Law
This DPA shall be governed by the laws applicable to the main service agreement.
### 13.2 Amendments
Amendments to this DPA must be made in writing and agreed by both Parties.
### 13.3 Severability
If any provision is found invalid, the remaining provisions shall continue in effect.
### 13.4 Order of Precedence
In case of conflict between this DPA and the main agreement, this DPA shall prevail regarding data protection matters.
***
## 14. Contact Information
### Data Processor Contact
**Glood.AI - LoopClub Inc.**\
Data Protection Officer: Harshul Jain\
Email: [privacy@glood.ai](mailto:privacy@glood.ai)\
Support: [support@glood.ai](mailto:support@glood.ai)
### Data Controller Contact
To be completed by the Customer:
Company Name: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\
Contact Person: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\
Email: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\
Address: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
***
## Signature
By accepting Glood.AI's services or clicking "Accept" in the application, the Controller agrees to the terms of this Data Processing Agreement.
**For Glood.AI (Data Processor)**
Harshul Jain\
Founder & Data Protection Officer\
LoopClub Inc. / Glood.AI
**For Customer (Data Controller)**
Name: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\
Title: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\
Date: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
This DPA is designed to comply with GDPR Article 28 requirements. For specific legal advice regarding your data processing activities, please consult with a qualified data protection attorney.
**Questions about this DPA?**\
Contact our Data Protection Officer at [privacy@glood.ai](mailto:privacy@glood.ai) or our support team at [support@glood.ai](mailto:support@glood.ai)
# GDPR Compliance
Source: https://docs.glood.ai/legal/gdpr-compliance
Understanding how Glood.AI protects European users' data and ensures GDPR compliance
# Glood and GDPR Compliance
Privacy-First Personalization for European Users
**Glood.AI is fully GDPR compliant** with all required documentation, technical measures, and processes in place.
Glood.AI is committed to protecting the privacy and personal data of all users, including those in the European Union. We comply with the General Data Protection Regulation (GDPR) to ensure transparent, secure, and lawful processing of personal data while delivering AI-powered personalization for Shopify stores.
For GDPR-related inquiries or to exercise your data rights, please contact our Data Protection Officer at **[privacy@glood.ai](mailto:privacy@glood.ai)**
***
## Our Data Protection Officer
**Harshul Jain**, Founder and Data Protection Officer\
Email: **[privacy@glood.ai](mailto:privacy@glood.ai)**
Our DPO oversees all data protection activities and ensures GDPR compliance across our operations.
***
## Legal Basis for Processing
Glood.AI processes personal data based on:
We have a contract with merchants (formalized through our DPA) to process their visitors' data for personalization services
Processing is necessary for providing personalized shopping experiences that benefit both merchants and customers - fully documented in our Legitimate Interest Assessment (LIA)
Our **Legitimate Interest Assessment (LIA)** has been conducted and documented, confirming that our processing is proportionate, necessary, and respects individuals' rights.
***
## How We Collect and Use Personal Data
### Types of Data Collected
We may collect and process the following personal data through Shopify:
* **Identifiers**: Name, email address, IP address
* **Shopping Behavior**: Browsing history, product views, cart additions
* **Transaction Data**: Purchase history, order details
* **Device Information**: Browser type, device type, screen resolution
### Purpose of Processing
All data is processed exclusively to:
* Provide personalized product recommendations
* Improve recommendation accuracy
* Enhance the shopping experience
* Generate anonymized analytics for merchants
**We do not sell, rent, or share personal data with third parties for their own marketing purposes**
***
## Data Storage and Retention
### Storage Location
Glood.AI servers are located in the United States. We implement appropriate safeguards for international data transfers to ensure your data remains protected according to GDPR standards.
### Retention Periods
**365 days**
Browsing behavior and interaction data
**Contract duration**
Purchase history retained while merchant contract is active
After these periods, data is automatically deleted as per the terms and conditions of the Shopify Partner Program and Glood.AI's Privacy Policy.
***
## Compliance Documentation & Accountability
### Key GDPR Documentation
Glood.AI maintains comprehensive GDPR compliance documentation:
Complete inventory of all data processing activities as required by Article 30
Risk assessment for AI-powered personalization per Article 35
Documented balancing test for legitimate interests basis per Article 6
All compliance documentation is reviewed annually and updated when processing activities change.
***
## Technical and Organizational Measures
We implement comprehensive security measures to protect your personal data:
All stored data is encrypted using industry-standard encryption
Strict role-based access controls limit data access to authorized personnel
Comprehensive logging of all data access and processing activities
### Additional Safeguards
* Regular security assessments and updates
* Employee training on data protection
* Secure development practices
* Incident response procedures
***
## Your Rights Under GDPR
As an EU resident, you have the following rights:
### 1. Right to Access
Request a copy of your personal data we process. Contact **[privacy@glood.ai](mailto:privacy@glood.ai)** for data access requests, or submit through your merchant's Shopify store. We handle these requests via Shopify's customers/data\_request webhook.
### 2. Right to Rectification
Correct inaccurate personal information through Shopify, as we receive PII data via the Shopify platform.
### 3. Right to Erasure ("Right to be Forgotten")
Request deletion of your personal data, subject to legal obligations. Deletion requests are automatically processed through Shopify's customers/redact webhook.
### 4. Right to Restrict Processing
Limit how we process your personal data in certain circumstances.
### 5. Right to Data Portability
Receive your data in a structured, machine-readable format through Shopify's systems.
### 6. Right to Object
Object to processing based on legitimate interests or for direct marketing.
### 7. Rights Related to Automated Decision-Making
Glood.AI does not engage in automated decision-making that produces legal or similarly significant effects on individuals.
***
## Data Sharing and Sub-processors
**We do not share any personally identifiable information (PII) with sub-processors**
All data processing occurs within Glood.AI's secure infrastructure. We maintain full control over your data and do not rely on third-party processors for handling personal information.
***
## International Data Transfers
When transferring data from the EU to our US-based servers, we ensure full GDPR compliance through:
### Legal Transfer Mechanism
**Our DPA incorporates the EU Standard Contractual Clauses (Module 2: Controller to Processor) ensuring lawful data transfers from the EEA to the United States.**
### Comprehensive Safeguards
* **Standard Contractual Clauses**: Full implementation of EU Commission Decision 2021/914 SCCs
* **Technical Measures**: Encryption in transit (TLS 1.2+) and at rest (AES-256)
* **Supplementary Measures**: Additional protections including access controls and legal challenge commitments
* **Transfer Impact Assessment**: Documented assessment confirming SCCs effectiveness with our measures
* **Shopify Framework**: Additional compliance through Shopify's data processing requirements
***
## Data Breach Notification
Our DPA establishes clear breach notification procedures:
### Notification Timeline
* **Within 48 hours**: Notification to affected merchants (Data Controllers)
* **Immediate action**: Assessment of breach severity and impact
* **Documentation**: Complete breach records maintained per GDPR requirements
### Our Commitments
1. **Rapid notification** to merchants with full breach details
2. **Impact assessment** including affected data categories and individuals
3. **Mitigation measures** to address and contain the breach
4. **Cooperation** with merchants for regulatory notifications
5. **Documentation** of all breach facts and remediation actions
As outlined in our DPA, merchants (as Data Controllers) are responsible for notifying supervisory authorities within 72 hours and affected individuals when required under GDPR.
***
## Children's Privacy
We do not knowingly collect or process personal data from individuals under 16 years of age. Our services are designed for adult shoppers, and we rely on merchants to ensure age-appropriate access to their stores.
***
## Cookies and Tracking
Glood.AI uses cookies that are essential for the proper functioning of personalization features on Shopify stores.
### Cookie Details
**rk\_uid** and/or **rk.uid**
Used to identify returning visitors and provide personalized recommendations
Essential for running personalization features on the Shopify store
### Cookie Duration
Cookie retention depends on user consent:
**1 year**
When users accept cookies, the rk\_uid/rk.uid cookie is stored for one year to provide consistent personalization
**24 hours only**
If consent is not provided, cookies are stored temporarily for 24 hours for essential session continuity
### Why These Cookies Are Essential
* **Session Management**: Maintain user sessions across page views
* **Personalization**: Remember product preferences and browsing history
* **Performance**: Optimize recommendation loading and accuracy
* **User Experience**: Provide consistent experiences for returning visitors
These cookies are strictly necessary for providing our personalization services and do not track users across other websites.
***
## Data Processing Agreement (DPA)
### Standard DPA for European Customers
**Glood.AI provides a comprehensive Data Processing Agreement (DPA) that complies with GDPR Article 28 requirements.**
Our DPA is available to all European merchants and covers:
Defines Glood as Data Processor and merchant as Data Controller with specific obligations for each party
Documents technical and organizational measures including encryption, access controls, and breach notification procedures
Outlines how we assist with access, deletion, rectification, and other GDPR rights through automated processes
**Access our DPA**: View and accept our standard [Data Processing Agreement](/legal/data-processing-agreement) which forms part of your service agreement with Glood.AI
### Shopify Compliance Framework
In addition to our DPA, we operate within Shopify's comprehensive GDPR framework:
Full compliance with Shopify Partner Agreement including all data protection requirements
Implementation of mandatory webhooks:
* customers/redact
* customers/data\_request
* shop/redact
### Key DPA Provisions
Our comprehensive Data Processing Agreement includes:
* **Standard Contractual Clauses (SCCs)**: Full incorporation of EU Commission's Module 2 SCCs for lawful EU-US data transfers
* **Processing Scope**: Clear definition of data types, purposes, and retention periods (documented in RoPA)
* **Security Measures**: Documented encryption (AES-256, TLS 1.2+), access controls, and audit logging
* **Transfer Impact Assessment**: Documented assessment with supplementary measures for US transfers
* **Risk Assessment**: Comprehensive DPIA conducted for AI-powered processing
* **Breach Notification**: 48-hour notification commitment to controllers
* **No Sub-processors**: We don't share PII with any third parties
* **Data Deletion**: Automatic deletion within 2 days upon request or contract termination
* **Compliance Verification**: Annual verification rights for controllers
***
## Updates to Our GDPR Practices
We may update our GDPR compliance measures as regulations evolve or our services change. Any significant changes will be communicated to merchants through their registered email addresses.
***
## Contact Us
For any GDPR-related questions, requests, or to exercise your data rights:
**[privacy@glood.ai](mailto:privacy@glood.ai)**
For data protection inquiries and rights requests
**[support@glood.ai](mailto:support@glood.ai)**
For general questions about our services
When contacting us, please include your Shopify store URL and any relevant order numbers to help us locate your data efficiently.
***
## Supervisory Authority
EU residents have the right to lodge a complaint with their local data protection supervisory authority if they believe their rights under GDPR have been violated. You can find your local authority at [https://edpb.europa.eu/about-edpb/board/members\_en](https://edpb.europa.eu/about-edpb/board/members_en)
***
## GDPR Compliance Summary
**Glood.AI maintains full GDPR compliance** with all required legal, technical, and organizational measures in place.
### Comprehensive Compliance Framework
✅ DPA with Standard Contractual Clauses
✅ Legitimate Interest Assessment (LIA)
✅ Records of Processing Activities (RoPA)
✅ Data Protection Impact Assessment (DPIA)
✅ Encryption (AES-256, TLS 1.2+)
✅ Access controls & audit logging
✅ Shopify compliance webhooks
✅ Automated data deletion
✅ Data subject rights via webhooks
✅ Clear retention periods
✅ Consent management system
✅ 48-hour breach notification
✅ Designated Data Protection Officer
✅ Annual compliance reviews
✅ No sale of personal data
✅ No PII sub-processors
Our GDPR compliance is continuously monitored and updated. All documentation undergoes annual review or whenever processing activities change.
# Release History
Source: https://docs.glood.ai/releases
Track the evolution of Glood.AI through our release timeline
Released on April 02, 2025
### V3 Sections Visual Editor
Introducing our new V3 sections visual editor that revolutionizes section management:
* **Instant Styling Updates** – Styling changes reflect instantly 99% of the time, improving the user experience
* **New Design** – The overall design has been updated, bringing a fresh look and improved usability
* **Global Settings in V3 Editor** – Unlike the old editor, which had settings based on layout type, the V3 Visual Editor applies settings globally
### Responsive Layout Configuration
New screen size-based layout controls for better mobile optimization:
* **Screen Size-Based Section Layout Configuration** – Customize section layouts for different screen sizes
* **Custom Positioning of Sections** – Adjust section placement dynamically based on screen size
### Enhanced Swatch System
Improved product variant selection with image support:
* **Image Support in Swatches** – Now, product variants can include images in swatches, providing a more visual and intuitive selection experience
### V3 Storefront Improvements
New filters and analytics integration:
* **Filter Additions** – New filters `file_url` (direct file access in templates) and `handleize` (URL-friendly text conversion) added
* **Mixpanel Integration** – Enables tracking of user behavior and conversions
Released on March 11, 2025
### Visual Editor Improvements
We've added new features to improve the section management experience in the visual editor:
#### Error Card Display
* **Visual Feedback** – New error card appears when manually placed sections fail to load
* **Comprehensive Error Handling** – Displays when:
* Section fails to load
* Section ID doesn't exist
* Section is disabled
* Section is recently viewed or excluded from the page
* **Editor-Only Display** – Error cards are only visible in the visual editor, not on the live store
### Preview Functionality
Enhanced preview capabilities for better testing and validation:
* **All Section Preview** – New option to preview disabled sections
* **Visual Editor Support** – Toggle 'Show disabled widgets in Shopify theme editor' to view disabled sections
* **URL Parameter Preview** – Add `rk_preview=true` to URL to preview disabled sections on live store
* **Testing Made Easy** – Perfect for validating sections before enabling them
Released on March 07, 2025
### Template Enhancements
We've introduced several powerful updates to improve template customization and section management:
#### New Variant Selector Option
* **Swatch with ATC** – New `swatch_with_atc` option in `productCard.variantSelectorType`
* **Streamlined Purchase Flow** – Automatically adds product to cart on swatch change
* **Clean Interface** – Hidden ATC button for better visual experience
#### Currency Formatting
Added flexible currency formatting using Intl DOM API:
```json
{
"intlOptions": {
"en": {
"currency": "USD"
},
"hi": {
"currency": "GBP"
},
"currency": "INR"
}
}
```
### Section Management Updates
* **Automatic Placement Control** – Option to prevent section sending when automatic placement is disabled
* **Responsive Layouts** – Moved breakpoint-specific layout configuration from template to section extras
* **Enhanced Customization** – Configure different layouts for various breakpoints directly from the dashboard's section details page
Released on March 3, 2025
### Section Status Check
We've launched a simple yet powerful tool that helps you instantly check if your sections are working perfectly.
#### What You Can Check
* **Store Accessibility** – Ensure your store is properly connected.
* **App Block Placement** – Confirm that sections are correctly installed in your theme.
* **Section Rendering** – Verify that sections are displaying as intended.
* **Optimal Section Placement** – Check if your sections are positioned for the best conversion results.
* **Recommendation Health** – Ensure product recommendations are working properly.
* **AI Recommendations** – Confirm whether AI-powered recommendations are enabled.
* **Plan Availability** – Check if your current plan supports this section.
* **Serve Limit** – Ensure you have available section views.
### Bundle Analytics Improvements
Your Bundle Analytics just got a major speed boost and some great improvements:
* **Faster Data Fetching** – Now powered by an **elastic query system**, ensuring rapid and efficient data retrieval.
* **Seamless Navigation** – The interface now follows a structure similar to **Checkout Upsell Analytics**, making it easier to use.
* **Fixed Date Picker Issue** – Previously, selecting the same start and end date failed to trigger an API call. This has now been resolved.
### Section Design Updates
We've refreshed the section design to match Shopify's familiar Product Details layout:
* **Familiar Layout** – Feels just like the rest of your Shopify admin
* **Better Collection Picking** – Now uses correct collection handles
* **Improved Recommendations** – Fixed the maximum recommendation count
Released on February 16, 2025
### What's New
Creating templates is now easier and more flexible than ever:
* **Fresh New Look** – Clean, modern design that's easier to use
* **Version Options** – Switch between template versions with one click
* **Smooth Transitions** – A single section can now include **both old and new template versions**, making store migrations effortless.
### Why You'll Love This
Create and manage templates more easily, and transition to newer versions at your own pace without disrupting your store.