Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. eCommerce
  3. AI eCommerce — Product Suggester (Optional / Accessory / Alternative) v 19.0
  4. Sales Conditions FAQ

AI eCommerce — Product Suggester (Optional / Accessory / Alternative)

by Erpoxa https://erpoxa.com/
Odoo

$ 39.00

v 19.0 Third Party
Live Preview
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Sales (sale_management)
• eCommerce (website_sale)
• Discuss (mail)
• Invoicing (account)
• Website (website)
Community Apps Dependencies Show
AI eCommerce — Base
Lines of code 1272
Technical Name ai_ecom_product_suggester
LicenseOPL-1
Websitehttps://erpoxa.com/
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Sales (sale_management)
• eCommerce (website_sale)
• Discuss (mail)
• Invoicing (account)
• Website (website)
Community Apps Dependencies Show
AI eCommerce — Base
Lines of code 1272
Technical Name ai_ecom_product_suggester
LicenseOPL-1
Websitehttps://erpoxa.com/
  • Description
  • License

AI Product Suggester

Stop filling Optional / Accessory / Alternative products by hand on every product form. Three different AI strategies generate them for you — and you approve before anything goes live.

🧠 LLM optionals📊 Co-purchase accessories🎯 Embedding-based alternatives✅ Human-in-the-loop🕒 Nightly cron + digest
Try Demo

Test this module instantly

You can explore all features using the demo account. No setup required.

🚀  Live Demo
Demo credentials
Username: demo   Password: demo
🤖

3 strategies, 1 click

Each relationship type gets the algorithm it deserves — not "AI for everything".

📥

Staged for review

Suggestions land in a pending table with a score + written reason. You tick what to apply.

⚡

Bulk & cron

Run on 1 product, 100 products, or let the nightly cron handle new products automatically.

🔍

Auditable

Every applied suggestion records source (embedding / co-purchase / LLM), score, who applied it, when.

The three strategies

Different problems, different algorithms

Most "AI suggester" modules ask GPT for everything and call it done. That wastes tokens, ignores your real sales data, and produces generic answers. This module routes each suggestion type to the technique that fits.

🎯

Alternative Products

Embedding similarity

Reuses the catalog embeddings from ai_ecom_smart_search. Cosine-similarity ranks every other published product against this one. Same-category siblings get a small score boost.

Best for: "Customers viewing X might also like Y" — competitor products, design variants, things from the same shelf.

Requires: embeddings indexed (cron does this automatically).

📊

Accessory Products

Co-purchase mining (+ LLM fallback)

Scans confirmed sale.order history. Counts which products appear in the same cart as this one. Ranks by co-occurrence.

Cold-start: if a product has <5 historical orders, falls back to LLM inference with the catalog so brand-new products still get accessories on day 1.

Best for: things customers always buy together — cables for a monitor, charger for a phone, batteries for a remote.

🧠

Optional Products

LLM with catalog awareness

Sends the product brief + a sample of your live catalog (with real product IDs) to gpt-4o-mini. Asks it to pick complementary items only from those IDs — never invents products.

Best for: upsells that need reasoning — warranty, gift wrap, premium installation, longer cables, larger size, …

Returns: JSON only, validated against your real product IDs.

▼ Worked example · Product: "Sony Wireless Studio Monitor Headphones"
ALTERNATIVE Sennheiser Studio Monitors · Audio-Technica Reference Headphones · Beyerdynamic Open-Back embedding cosine 0.83 – 0.91
ACCESSORY Replacement ear cushions · Coiled 3m audio cable · Carrying case co-purchased in 47 orders
OPTIONAL 2-year extended warranty · Premium gift wrap · Bluetooth USB dongle LLM with catalog filter
▶ Live demo · 30 s loop

The whole module in 30 seconds

Every feature captured against the real saas_kit_demo catalog: the three strategies, the two top-menu entry points, the per-product flow, and the three different ways suggestions surface on the storefront.

30-second walkthrough of Product Suggester: title card, three strategies, menu, wizard, review queue, applied state, and the three storefront placements (alternative carousel, optional configure modal, accessory cart block)

Each step below the demo is shown in detail with its own annotated screenshot.

Top menu

Two ways to use Product Suggester from anywhere

Beyond the per-product stat-button, the suite installs a Product Suggester entry in the AI eCommerce top menu. Click it and a small dropdown appears with two items — one for bulk generation, one for review.

The AI eCommerce top menu with Product Suggester dropdown open showing Open Suggester and All Suggestions
🧙

Open Suggester

Bulk wizard · No product needed

Opens the same wizard you get from the product form's stat-button, but with no product preselected. You pick the products in the wizard itself, choose which kinds to generate (Optional / Accessory / Alternative), then hit Generate.

Best for:

  • Bulk-generating for a hand-picked set of products without going through the list view
  • Re-running just one kind (e.g. only Optional) across several products at once
  • Quickly trying the suggester on a new product before deciding whether to keep results
📋

All Suggestions

Review queue · Cross-product dashboard

Opens the list of every suggestion ever generated across every product. Default group-by source product, filters for Pending / Applied / Rejected. Columns: Source product · Kind · Suggested product · Source (algorithm) · Score · Reason · State.

Best for:

  • Triaging the queue after a nightly cron run or bulk generation
  • Bulk Accept/Reject — select many rows, click Action
  • Auditing what was applied and by whom (the State column shows Applied + who/when)
  • Filtering by Source = "AI inference" / "Embedding similarity" / "Co-purchase" to see how each strategy performed

Other top-menu items (Smart Product Search, Request Log, Settings) come from the other AI eCommerce modules — Product Suggester only adds the two above.

🧙

Open Suggester — how to actually use it

BULK · NO PRESELECTION

Click Product Suggester → Open Suggester. The wizard opens with the Products field empty and an autocomplete picker waiting for input.

  1. Click the Products field — Odoo's standard tag-picker focuses
  2. Type a few letters (product name, SKU prefix, or category) — the autocomplete shows up to 8 matches with their SKU codes; click "Search more…" to open a full search dialog if you need a larger list
  3. Click each match to add it as a chip — repeat for as many products as you want in one run
  4. Optional: untick any of the three kind cards (Optional / Accessory / Alternative) if you only want one or two strategies
  5. Hit Generate — runs all chosen strategies on every chip in parallel, then jumps to the Preview step
The bulk wizard with Products field focused and autocomplete dropdown showing 8 matching products
Tip: If you click Generate without picking products, you get a clear error ("Pick at least one product to generate suggestions for…") — no silent failure. For very large bulk jobs (hundreds or thousands of products), use the products-list Action menu → Generate AI Suggestions instead, or let the nightly cron handle products that have no relationships yet.
End-to-end flow · one product

From stat-button to live cross-sell on /shop

Captured on a real product (a seeded "1080p 128GB DSLR Camera"). Same flow works for any product.

1

Open the product → click AI Suggestions

BEFORE

Open any product from Sales → Products or Website → eCommerce → Products. Two stat-buttons sit at the top of the form:

  • AI Suggestions — opens the wizard so you pick exactly what to generate & review
  • Generate Now — one-shot: runs all three strategies with default settings, then you review later from the Suggestions list
Product form showing AI Suggestions and Generate Now stat-buttons
2

Wizard: pick which kinds to generate, click Generate

Three cards = three strategies. Tick which ones you want for this product, then hit Generate. Typical run takes 8–20 seconds (LLM round-trip dominates). When it returns, the wizard switches to a results view with the suggestions grouped under each kind, every row showing a score and a written reason.

AI Product Suggestions wizard with 3 strategy cards

Tick the suggestions you want → Apply selected. The wizard writes them into the matching M2M fields on the product in one transaction.

3

Track every suggestion in one dashboard

Top menu: AI eCommerce → Product Suggester → Suggestions. Every generated row, filterable by kind, source, state, and product. Group by source product to see the full set for any item. Score column lets you triage by quality. Multi-select & bulk-Accept/Reject.

All Suggestions list view, grouped by source product, with State + Score columns
4

Validate: open Sales tab, see the M2M fields populated

AFTER

Back on the product form → click the Sales tab. The "Upsell & Cross-Sell" section now holds the three lists you applied. This is the standard product.template data — Smart Suggester didn't invent any field, it just filled in the ones Odoo already uses for cross-sell on /shop.

  • Optional Products — offered when the customer adds this item to cart (Odoo's "configurator" prompt)
  • Accessory Products — shown in the cart page once this item is added
  • Alternative Products — shown on the product detail page itself, below the description
Product form Sales tab showing all three M2M fields populated with 6 products each
5

Live result — three different placements on the storefront

PUBLISHED

Each of the three M2M fields you filled in step 4 surfaces in a different place on website_sale. This is Odoo's built-in behavior — Smart Suggester didn't add any new theme blocks, it just populated the standard fields that Odoo's storefront already renders.

A · Alternative Products on /shop/product/<id>

Where it shows: Below the product description on the detail page, as a horizontal carousel labelled "Alternative Products — These other products might interest you". Stays visible while the customer is reading the description; no click required.

How it works: Smart Suggester filled the standard product_template.alternative_product_ids field. Odoo's product detail view renders any non-empty M2M as a carousel. Best for: showing competing options when the customer might want to switch.

/shop product page showing the Alternative Products carousel below the description
B · Optional Products in the Configure popup when customer clicks Add to cart

Where it shows: A "Configure" modal pops up on top of the product page the moment the customer hits Add to cart. Their main product sits at the top; below it, an "Options" list shows every product you marked as optional, each with its own price and one-click Add to Cart button.

How it works: Smart Suggester filled product_template.optional_product_ids. As soon as Odoo's cart endpoint sees this field is non-empty, it routes the add-to-cart through its configurator dialog instead of the silent cart add. Best for: high-margin upsells the customer is most likely to consider while they're already in buying mode (warranty, gift wrap, accessories that match the configuration).

The Configure modal popup with an Options list showing optional products and one-click Add to Cart buttons
C · Accessory Products on /shop/cart

Where it shows: A "Suggested accessories" block on the cart page, directly under the customer's order line. Every accessory product appears with its own thumbnail, price and Add to Cart button — adding one to the cart triggers another re-render that may surface additional accessories.

How it works: Smart Suggester filled product_template.accessory_product_ids. Odoo's /shop/cart template aggregates accessories across every line in the cart and renders them as a list. Best for: functional pairings ("don't forget your cables / batteries / case") — the customer is one click from converting.

Cart page showing the Suggested Accessories section with 6 accessory products from the M2M field

Same flow for the next product: open → AI Suggestions → tick → Apply → Sales tab → /shop. Multiply across the catalog with the bulk action or the nightly cron — Smart Suggester populates the M2M fields, Odoo's storefront renders them.

Scale

One product or your entire catalog

🔂 Single product

Stat-button on the product form. Best when you've just edited a product and want fresh suggestions reflecting the new copy.

📋 Bulk action

Multi-select in the products list → Action → Generate AI Suggestions. Runs for every selected product, returns to the suggestions list when done.

🕒 Nightly cron

Picks up products with no relationships yet and runs all three strategies. Posts a digest activity to your inbox listing what's ready to review.

Configuration

Settings that actually matter

Setting Default What it does
Enable nightly cronOnAuto-runs the suggester for products with no existing relationships. Turn off if you only want manual runs.
Max suggestions per kind10Cap on how many rows each strategy returns per product. Keeps the wizard scannable.
Replace pending on rerunOnRe-generating drops untouched pending rows from the previous run, so the list doesn't grow stale.
Min co-purchase frequency2Products must appear together in at least this many confirmed orders to be suggested as an accessory.
Cold-start LLM fallback threshold5 ordersIf a product has fewer historical orders than this, accessory suggestions come from the LLM instead of co-purchase mining.
Min embedding similarity0.65Lower bound on cosine similarity for an alternative to be suggested. Raise to be stricter, lower to surface more.

All in Settings → AI eCommerce → Product Suggester.

How to validate it

10-minute testing flow

  1. Confirm prerequisites. AI eCommerce → Base has an OpenAI key. Smart Search has at least one re-indexed product. (If you've installed and reindexed earlier modules, you're already here.)
  2. Pick a product with rich text. A description, category and tags help all three strategies. Sample products in the seeded test catalog (e.g. "Sony Wireless Studio Monitor Headphones") work well.
  3. Open the product form → click "AI Suggestions" in the stat-button row. The wizard runs all three strategies. Expect ~10–25 seconds for a cold run (LLM round-trip dominates).
  4. Inspect each kind. Alternative rows should be in the same category. Accessory rows should be functional pairings (cables, cases, replacements). Optional rows should make merchandising sense (warranties, gifts, premium add-ons).
  5. Tick a few, hit Apply. Then open Sales → Configuration → product.template for the same product → the M2M fields alternative_product_ids / accessory_product_ids / optional_product_ids now hold your picks.
  6. Hit /shop on this product. The "You might also like" / "Suggested products" / "Goes well with" sections (provided by website_sale) now reflect your applied suggestions.
  7. Try the bulk path. Products list → tick 5–10 → Actions → Generate AI Suggestions. Wait for the toast, then jump to AI eCommerce → Suggestions to see the queue.
  8. Toggle the cron. Settings → Product Suggester → flip Enable nightly cron. Verify the cron exists in Settings → Technical → Scheduled Actions (developer mode).
Common questions

If something looks off

Why is "Alternative" empty?

Your product probably doesn't have an embedding row yet. The wizard auto-embeds it on first run, but if smart_search's cron is still draining, you may see no results. Re-run after a minute, or click "Reindex all products" in Smart Search settings.

Why are Accessory suggestions clearly LLM-generated, not from real orders?

This product has fewer than Cold-start LLM fallback threshold (default 5) confirmed orders containing it. Real co-purchase data isn't available, so the module falls back to LLM inference. As real orders accumulate, accessory suggestions automatically switch to mined data.

The Optional suggestions include products from unrelated categories.

The LLM gets a sample of the catalog and picks complements. If your catalog mixes very different verticals, results may drift. Mitigations: write more specific product descriptions; raise the temperature in Settings → AI eCommerce; or reject the off-topic suggestion once — it won't be re-proposed.

How do I clear all pending suggestions?

AI eCommerce → Suggestions → filter by State = Pending → select all → Action → Reject. Or in a shell: env['ai.product.suggestion'].search([('state','=','pending')]).unlink()

Works with

Plays well with the rest of Odoo

✓ Community & Enterprise
✓ website_sale cross-sell
✓ Multi-website
✓ Multi-company
✓ Reuses Smart Search embeddings
✓ sale.order history (any source)
✓ Bulk operations
✓ Approval audit trail

Bigger baskets, on autopilot

Three strategies, one click, full review. Install, click AI Suggestions on any product, and watch cross-sell lift basket size without you filling another M2M field by hand.

By Erpoxa · erpoxa.com · License: OPL-1 · Odoo 19.0
CONTACT US

Built & supported by Erpoxa

An Odoo consultancy focused on scalable AI-powered modules and bespoke integrations. We answer fast and ship clean code.

📧

Sales & enquiries

Pricing, bundles, custom work

info@erpoxa.com
🛟

Technical support

Bug reports, install help

support@erpoxa.com
🌐

Website

All apps, docs & portfolio

erpoxa.com
⏱ Typical response time: < 8 business hours · Mon–Fri · GMT+3
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with