Upselling and cross selling directly influence how much revenue your Shopify store generates. You can increase traffic through ads and SEO, but if you do not increase Average Order Value, your growth eventually slows down. This is where the Frequently Bought Together feature becomes powerful.
You have seen this feature on major eCommerce platforms. When a customer views a product, the store suggests related items that other buyers commonly purchase together. This simple section can dramatically increase cart size without increasing acquisition cost.
Many Shopify merchants install an app to achieve this. Apps feel convenient. They promise AI recommendations and one click setup. However, they also increase monthly expenses, slow down your storefront, and limit design control.
In this blog, you will learn how to build a Frequently Bought Together feature inside Shopify without using any app. You will understand the technical architecture, different implementation methods, performance considerations, and conversion optimization strategies. By the end, you will know how to build a clean, scalable, high performance solution using Shopify native functionality.
Why Frequently Bought Together Increases Revenue
Frequently Bought Together works because it aligns with buyer psychology.
When customers see complementary products grouped together, they perceive value. They feel confident in their purchase decision because the store presents curated combinations. This reduces decision fatigue and increases trust.
Real Ecommerce Data
Let us look at realistic eCommerce performance insights:
Upselling and cross selling increase revenue by 10 percent to 30 percent on average across eCommerce stores.
Product recommendations contribute up to 20 percent to 35 percent of total eCommerce revenue in mature stores.
Increasing Average Order Value by just 10 percent can increase overall profit by 20 percent to 25 percent in stores with fixed acquisition costs.
Around 49 percent of customers purchase additional items when they see relevant recommendations.
When you increase AOV, you do not increase advertising cost. This directly improves your profit margin.
If your store generates 1000 orders per month with an AOV of 3000 INR, your revenue equals 30 lakh INR. If you increase AOV by 15 percent using Frequently Bought Together, your revenue increases to 34.5 lakh INR without spending more on ads.
That is the power of smart bundling.
Problems With Using Apps for Frequently Bought Together
Apps solve problems quickly, but they create hidden costs.
1. Monthly Recurring Cost
Most Frequently Bought Together apps cost between 10 dollars to 50 dollars per month. Some charge based on revenue tiers. Over a year, that becomes significant.
2. Slower Site Speed
Most apps inject external JavaScript files. They load additional scripts, tracking libraries, and API calls.
Research shows:
A 1 second delay in page load can reduce conversions by up to 7 percent.
53 percent of mobile users leave a site if it takes more than 3 seconds to load.
Faster sites see up to 15 percent higher conversion rates compared to slower competitors.
If your store already runs paid traffic, speed becomes critical.
3. Limited Design Control
Apps often use predefined layouts. Customizing UI to match your brand becomes difficult. You either compromise on design or hire developers to override app styling.
4. Dependency Risk
If the app updates, changes pricing, or shuts down, your functionality breaks. When you build natively inside Shopify, you own the system.
Understanding Shopify Architecture Before Building
Before building this feature, you need to understand Shopify core structure.
Shopify Liquid
Liquid is Shopify templating language. It renders dynamic data like product title, price, images, and collections.
Key object:
product
You can access:
product.title
product.price
product.variants
product.collections
product.tags
product.metafields
Sections and Blocks
Shopify Online Store 2.0 uses JSON templates and dynamic sections. You can create a custom section for Frequently Bought Together and add it inside product template.
Metafields
Metafields allow you to store structured custom data on products. You can create a product metafield that stores a list of related products.
This gives you full backend control without editing code repeatedly.
Three Methods to Build Frequently Bought Together Without Apps
Method 1: Manual Product Selection via Section Settings
This method works well for small stores with curated bundles.
You create a custom section and add a product picker in schema.
Example schema setting:
“type”: “product”,
“id”: “bundle_product_1”,
“label”: “Select Bundle Product 1”
}
In Liquid:
You render product image, title, price, and checkbox.
This method gives you full visual control and does not require metafields. However, you must manually assign products for each product template.
Best for:
Limited catalog
High control bundles
Gift combinations
Method 2: Use Product Metafields for Dynamic Pairing
This method scales better.
Create a metafield definition:
Namespace: custom
Key: frequently_bought
Type: product list
Inside each product, you select related products in admin.
In Liquid:
{{ related.title }}
{% endfor %}
Advantages:
Clean admin control
No code editing per product
Scalable for medium stores
You can limit display to 2 or 3 products for clean layout.
This method is recommended for most stores.
Method 3: Auto Pair Based on Collection or Tags
For large catalogs, manual pairing becomes difficult.
You can dynamically select products from same collection.
Example:
{% for item in collection.products limit:3 %}
{% unless item.id == product.id %}
{{ item.title }}
{% endunless %}
{% endfor %}
Or based on tag matching:
{% if item.tags contains product.tags.first %}
{{ item.title }}
{% endif %}
{% endfor %}
This approach creates automated logic.
Best for:
Fashion stores
Electronics
Accessories
Large inventory
Building the Frontend UI
A strong UI increases conversion rate.
Structure:
Main product
Plus icon
Related products
Combined price summary
Add all to cart button
Price Calculation
You calculate total price by summing selected items.
Using JavaScript:
document.querySelectorAll(‘.bundle-checkbox:checked’).forEach(function(item){
total += parseFloat(item.dataset.price);
});
Update total price dynamically in DOM.
Variant Handling
If related product has variants, show dropdown selector. Capture selected variant ID and include it in cart request.
Responsive Design
Keep mobile layout vertical. Use flexible grid for desktop.
Add to Cart Logic Without Apps
You have two options:
1. Standard Form Submission
Create a form:
For multiple products:
<input type=”hidden” name=”items[0][quantity]” value=”1″>
Submit all selected items at once.
2. AJAX Add to Cart
Use fetch API:
method: ‘POST’,
headers: { ‘Content-Type’: ‘application/json’ },
body: JSON.stringify({
items: [
{ id: 123456, quantity: 1 },
{ id: 789101, quantity: 1 }
]
})
})
AJAX gives smoother experience and avoids page reload.
Performance Optimization Tips
If you build this manually, keep it lightweight.
Use Shopify native objects
Avoid external libraries
Lazy load images
Minify JavaScript
Avoid duplicate DOM rendering
Mobile commerce accounts for more than 60 percent of eCommerce traffic in many markets. Google prioritizes mobile first indexing. A lightweight custom solution ensures better Core Web Vitals.
Improving load speed by even 500 milliseconds can improve conversion rate by 5 percent to 10 percent.
UX and Conversion Optimization
Technical build alone does not guarantee results.
Show Savings
If you offer discount for buying together, show:
“You save 300 INR”
This triggers value perception.
Pre Select Recommended Items
Pre selecting checkboxes increases attach rate. Behavioral research shows default selections increase action by 20 percent to 40 percent.
Add Social Proof
Show message:
“Most customers buy these together”
Scarcity
If stock is limited, display stock count.
Visual Hierarchy
Highlight combined price. Make Add All button primary colored.
Testing and Measuring Results
Do not guess. Measure.
Track:
Average Order Value
Attach rate percentage
Bundle conversion rate
Revenue per visitor
Example:
Before:
AOV 2500 INR
After:
AOV 2900 INR
Even 400 INR increase per order can transform profit margins.
If you process 2000 orders monthly, that equals 8 lakh INR extra revenue.
Test for at least 30 days before drawing conclusions.
When You Should Still Use an App
Sometimes apps make sense.
Use an app if:
You need AI based personalized recommendations
You want predictive analytics
You run multi store enterprise setup
You need deep reporting dashboards
For most small and medium Shopify stores, a custom built solution performs better and costs less.
Final Thoughts
Frequently Bought Together is not just a design element. It is a revenue engine.
When you build it without apps, you gain better speed, full design control, no recurring cost, and higher profit margins. You also keep your codebase clean and scalable. Over time, this approach compounds into stronger performance and better customer experience.
Shopify already provides everything you need to build advanced functionality inside the theme itself. With structured logic, smart UI planning, and proper testing, you can implement a powerful Frequently Bought Together feature that performs better than many third party apps.
If you want long term growth, you should avoid depending on heavy external tools for core revenue features. Build them natively, optimize them for performance, and measure results consistently.
If you are not comfortable handling Liquid, AJAX cart logic, metafields, or performance optimization, working with an experienced eCommerce website developer in India can help you implement this feature the right way from the start. And if you prefer a flexible and cost effective approach, you can hire freelance Shopify developer India professionals who specialize in performance focused custom builds.
The right implementation does not just increase Average Order Value. It strengthens your entire eCommerce foundation.





Leave A Comment