How to Set Up Cross-Selling and Upselling
Overview
Why Cross-Selling and Upselling Matter
- Increase average order value (AOV) by 10% or more
- Improve attach rate by 5% with strategic product recommendations
- Guide customers to complementary and higher-value items
- Enhance shopping experience with relevant product suggestions
Increase average order value and improve the shopping experience by configuring relevant cross-sells, upsells, and related products that guide customers to complementary and higher-value items.
Applicability: These steps apply to Magento Open Source and Adobe Commerce 2.4.x. Adobe Commerce also offers automation via Marketing > Promotions > Related Product Rules and Marketing > Product Recommendations for scalable, AI-driven suggestions.
Prerequisites
Before you begin, make sure you have:
Admin Panel Access
Access to Magento Admin Panel
Product Catalog Setup
Existing product catalog with inventory
Edit Permissions
Admin role with Catalog > Products edit permission
Staging Environment
Staging environment available to test changes before production
What You'll Accomplish
By following this guide, you will:
- Successfully set up cross-selling and upselling
- Improve your store's performance and customer experience
Step-by-Step Instructions
Set goals and choose target products
This quick planning step helps you focus on the highest ROI opportunities.
Identify a pilot category or top 10 products where recommendations will have the biggest impact. Define success metrics (e.g., +10% AOV, +5% attach rate in 30 days). Prioritize SKUs with high traffic and low attach rate, strong margins, and categories with natural complements (e.g., shoes → insoles, socks). Map for each base product: 3–5 related products, 2–4 upsells, and 2–4 cross-sells.
Open the product editor in Magento Admin
Go to Catalog > Products. Search for and click the base product (e.g., RUN-SHOE-100). Ensure the product is Enabled, In Stock, and Visible Individually. Confirm it is assigned to the correct Website.
Ensure the Store View selector (top-left) is set to the desired scope (All Store Views or the target Website). Product links are global, but product status, visibility, and price can be website-specific.
Add Related Products (on-page complements)
Scroll to the Related Products, Up-Sells, and Cross-Sells section. Click Add Related Products. Use filters to find complementary items (e.g., SHOE-INSOLE-DELUXE, SHOE-CLEAN-KIT). Select 3–5 items and click Add Selected Products. Use the Position column (or drag-and-drop) to set display order; storefront sorting typically respects this order (theme-dependent).
Selection playbook:
Choose accessories frequently bought together within ~20–40% of the base product's price for strong relevance without cannibalizing the main purchase.
Add Upsell Products (premium alternatives)
In the same section, click Add Up-Sell Products. Search for premium or higher-margin alternatives (e.g., RUN-SHOE-200-PRO, RUN-SHOE-NEW-TECH). Select 2–4 items and click Add Selected Products. Use the Position column (or drag-and-drop) to set the priority order; confirm on your storefront.
Selection playbook:
Favor newer models or bundles with a +15–30% price delta and higher margin/value to the customer.
Add Cross-Sell Products (cart complements)
Click Add Cross-Sell Products. Select items suited for impulse purchase at checkout (e.g., ATH-SOCKS-PACK, SPORT-BOTTLE-700ML). Choose 2–4 and click Add Selected Products. Use the Position column (or drag-and-drop) to set order; most themes respect this.
Selection playbook:
Low-cost add-ons under ~15% of cart value to minimize friction and increase attach rate.
Save and repeat for key catalog items
Click Save at the top right. Repeat the process for additional high-traffic products. Focus first on top 10–20 SKUs to maximize impact quickly.
Optional: Bulk update via CSV import
Prepare a product CSV with these columns for each base SKU: sku, related_skus, upsell_skus, crosssell_skus. Example file:
sku,related_skus,upsell_skus,crosssell_skus RUN-SHOE-100,"SHOE-INSOLE-DELUXE,SHOE-CLEAN-KIT","RUN-SHOE-200-PRO,RUN-SHOE-NEW-TECH","ATH-SOCKS-PACK,SPORT-BOTTLE-700ML"
Go to System > Data Transfer > Import. Set Entity Type = Products, Import Behavior = Add/Update. Upload the file, Validate, then Import. Reindex if needed.
Refresh cache and confirm indexing
Go to System > Cache Management and click Flush Magento Cache. Then open System > Index Management and confirm key indexers are Ready, especially:
- Product EAV
- Category Products
- Catalog Search (if applicable)
If indexers are set to Update by Schedule, ensure cron is running. CLI alternative: run bin/magento indexer:reindex from your Magento root.
Validate storefront display on product page
On the storefront, open a configured product page. Verify Related Products and Upsell Products blocks display the exact items you added, in the order you set. Check mobile and desktop views.
If blocks don't appear:
- 1. Ensure linked products are Enabled, Visible (Catalog, Search), and In Stock
- 2. Confirm all products are assigned to the same Website as the base product
- 3. Stores > Configuration > Catalog > Inventory > Stock Options: If Display Out of Stock Products = No, out-of-stock linked items won't show
- 4. Some themes remove or relocate these blocks—test with a reference theme (e.g., Luma) or consult your theme docs
Validate cross-sells on the cart page
Add the base product to the cart. Open the cart page (not just the mini-cart). Confirm Cross-Sell items appear. If you added multiple cross-sells, confirm limits and ordering are respected by the theme.
Set up measurement and monitor impact
Record a baseline AOV from Reports > Sales > Orders for the prior period. After deployment, monitor AOV weekly. Use Reports > Products > Products in Cart to identify popular combinations. In your analytics, create events or segments to track clicks and add-to-cart from recommendation blocks.
Implementation tips:
- Add a unique CSS class or data attribute to recommendation links (e.g.,
data-rec-block="related|upsell|crosssell") and configure GA4/Adobe Analytics click events - Track per-block KPIs: CTR, add-to-cart rate, conversion rate, revenue per session, and AOV
- Review weekly for 4 weeks; prune low performers and replace with better candidates
- Consider an A/B test (show vs hide blocks) for ~2 weeks to quantify impact
Verification
Use this checklist to confirm everything is working correctly:
-
Admin Configuration
- ✓ Product saved with related/upsell/cross-sell links and Position set
-
System Status
- ✓ Indexers: Product EAV, Category Products, and Catalog Search are Ready
- ✓ Cache: Magento cache flushed; cron running if using Update by Schedule
-
Storefront Display
- ✓ Blocks visible on product and cart pages; order respected; works on mobile and desktop
-
Analytics Tracking
- ✓ Events fire for clicks/add-to-cart from recommendation blocks
Common Issues and Solutions
Solution
- Verify you clicked Save and resolved any validation errors
- Check role permissions at System > Permissions > User Roles for Catalog > Products
Solution
- Confirm Website assignment and stock status
- Reindex and refresh invalidated caches
- Check Display Out of Stock Products setting
Solution
- Ensure Position values are set
- Some themes override order—review theme settings/layout or test with a reference theme
Solution
- Validate the CSV, ensure headers match exactly, and check import error details
- Review logs at var/log/system.log and var/log/exception.log
- Confirm delimiter/enclosure settings align with your file
Solution
- Limit to 3–5 related and 2–4 upsells/cross-sells to keep pages fast and focused