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
    • Artificial Intelligence
    • 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
    • Meet an advisor
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Get a demo
  • Pricing
  • Help
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
Help

ODOO 19 Problem with Product Availability Status

Subscribe

Get notified when there's activity on this post

This question has been flagged
ecommerce19.0
2 Replies
1404 Views
Avatar
Jean-Sebastien Dupuis
Odoo 19.0 added a Google Merchant XML feed which is a great feature for online retailers and goes hand-in-hand with product markup/snippets. Odoo 19.0 also has a Click & Collect function for retailers that have both an eCommerce and a physical store. Unfortunately, both features fail when it comes to stock availability status. I hope the following constructive feedback is considered for a future release of our favorite ERP. (NB. we are using Odoo Online so not looking for a 3rd party app)

Google supports 4 different values for stock availability status:

- In stock [in_stock]
- Out of stock [out_of_stock]
- Preorder [preorder]
- Backorder [backorder]

Source: https://support.google.com/merchants/answer/7052112?visit_id=637049928698613640-3024115257&rd=1#price_and_availability


All four of them are listed as recognized status by schema.org.

Source: https://schema.org/ItemAvailability


In Odoo 19, when we sell a product (Goods more specifically), we can opt to "Track Inventory".
- When the Quantity on Hand is positive, the product shows as "Available" on the front end and "InStock" in product markup.
- When the Quantity on Hand is < 1, the product is marked as "Out of Stock" on the front end and "OutOfStock" in the markup.

All good so far.

As a retailer, we also want to take pre-orders for high-demand products that are not released yet on the market (preorder). We also want customers to be able to place orders for old products we can purchase from our suppliers but that we don't carry in our regular inventory (backorder). To achieve this in Odoo, we can tick the "Sell when out-of-Stock" option in the Sales tab of the product template.

This is where things go wrong.

A product with Quantity on Hand < 1 and Sell when out-of-Stock = TRUE shows as "Available" to customers on the front end. It shows as "In Stock" in the Google Merchant XML feed (which ends up showing in Free Listings and in Google Ads). The product shows as in stock in the page markup. This leads to customers placing orders on our Odoo website thinking the product is in stock or even showing up at the store thinking the product is on shelf (in the case of Click & Collect). We disappoint walk-in customers and we have to refund online orders.

It is true that the terms "Available" and "In stock" are not the same but in a buyer's mind "available" means "i can get it right now". It generates friction and leads to bad customer experience. To temporarily solve the problem, we had to put custom code to hide the availability block on the product page. Better show nothing than wrong data.

SOLUTION

The first improvement would be to change the stock status to "backorder" when the "Quantity on Hand" is < 1 and "Sell when out-of-Stock" = TRUE (even better, look at the "Free to Use" field that takes reservations into consideration). Customers should see "Out of Stock" on the product page but still be able to "Add to cart". Accepting backorders in our industry is crucial given the numbers of different products on the market.

The second improvement to introduce the "preorder" status would probably require the addition of a Release Date field. Not a “must have” but “nice to have”.
- quantity on Hand < 1, "Sell when out-of-Stock" = TRUE, AND today < Release Date -> status = preorder
- quantity on Hand < 1, "Sell when out-of-Stock" = TRUE, AND today > Release Date -> status = backorder

We understand that Odoo is built for many types of businesses and different industries, but we believe many retailers would benefit from this improvement. This would put Odoo’s website app in line with Google standards.


I have sent this feedback to Odoo but would like to know if other business owners face the same problem.

0
Avatar
Discard
Avatar
Mohammed.Samy
Best Answer

Hi there,

Thank you for detailing this so thoroughly. You are absolutely not alone in this—many retailers using Odoo face this exact friction point. You hit the nail on the head regarding the disconnect between Odoo’s internal ordering logic ("Can we sell it?") and Google’s strict schema requirements ("Is it physically on the shelf?").

To add to the urgency of your feature request: this isn't just a bad customer experience issue; it's a Google Merchant Center (GMC) compliance risk. GMC is notoriously strict about availability mismatches. If their bots or manual reviewers notice that items submitted as in_stock in the XML feed actually behave as backorders on the site (or have long shipping delays), they will issue preemptive item disapprovals or even suspend the Merchant account for misleading availability.

While we wait and advocate for Odoo to implement backorder and preorder natively into the core logic, here are two actionable ways you can fix this in Odoo Online right now without needing a third-party app:

1. Utilize the "Out-of-Stock Message" Field

While ribbons are great for visual cues, you can directly address the frontend text issue using standard Odoo features.

  • When you check "Continue Selling" (formerly "Sell when out-of-Stock"), Odoo surfaces an "Out-of-Stock Message" field on the eCommerce tab of the product template.

  • Instead of leaving the default behavior, explicitly write: "Available for Backorder - Ships in [X] Days." This overrides the generic "Available" assumption and immediately sets the right expectation for retail and Click & Collect customers before they add it to their cart.

2. Modify the XML Feed & Schema via QWeb Views (Developer Mode)

Since you are on Odoo Online, you cannot install custom Python modules, but you can edit QWeb views to fix your Google Merchant XML feed and page schema.

If you turn on Developer Mode, you can navigate to Settings > Technical > User Interface > Views. You can search for the Google Merchant feed template and the website product schema template. You can wrap the availability output in a simple conditional t-if statement based on free_qty.

Here is the logic concept you can apply to the QWeb view:

XML

<!-- Check if physically in stock -->
<t t-if="product.sudo().free_qty &gt; 0">
    <g:availability>in_stock</g:availability>
</t>
<!-- Check if out of stock but allowed to backorder -->
<t t-elif="product.allow_out_of_stock_order">
    <g:availability>backorder</g:availability>
</t>
<!-- Otherwise, it's out of stock -->
<t t-else="">
    <g:availability>out_of_stock</g:availability>
</t>

Note: If you use Odoo Studio, you could even add a custom x_release_date field to your product templates and add another t-elif to output preorder if datetime.date.today() < product.x_release_date!

Your proposed solution for a future Odoo release is perfectly aligned with modern eCommerce standards. I highly recommend submitting this as a feature request on the official Odoo GitHub repository if you haven't already. If you post the GitHub link here, I (and likely many others) will gladly upvote it!


-1
Avatar
Discard
Avatar
Vivek Kundaliya
Best Answer

This is a well-identified limitation in Odoo 19's eCommerce stock availability display, and you have described it very clearly. You are correct that the current behavior is confusing for customers.


Current behavior explanation: When Sell when out of Stock is enabled, Odoo treats the product as orderable regardless of stock, and the frontend label shows Available even when the physical stock is zero. This is technically correct from Odoo's business logic perspective (the product CAN be ordered), but it is misleading from a customer-facing standpoint and misaligns with Google Merchant Center's availability taxonomy.


What you can do today without custom code:


  1. For products where you want to clearly signal to customers that the item is not physically in stock but can still be ordered (backorder), you can use the product description or a custom ribbon/badge. In eCommerce > Products, you can add a ribbon (like Pre-order or Available to Order) via Website > eCommerce > Products > Ribbons. This gives customers a visual signal without changing the Add to Cart behavior.

2. For the Google Merchant XML feed issue specifically, since you are on Odoo Online, you can submit feedback directly to Odoo support. This is exactly the type of product improvement that gets prioritized when multiple merchants report it.


3. You can partially work around this by not enabling Sell when out of Stock globally, and instead managing availability manually: when stock hits zero and you want to take backorders, update the product to allow backorders at that point.


Your suggested improvement (showing Out of Stock on the product page while still allowing Add to Cart for backorderable products) is a very reasonable product feature request and aligns with how most eCommerce platforms handle this. Submitting this via Odoo's official feedback channel or voting on the GitHub issue tracker is the best path to getting it implemented natively.

-1
Avatar
Discard
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Related Posts Replies Views Activity
Odoo18: E-commerce mini cart now showing
ecommerce
Avatar
Avatar
1
May 26
3760
Ribbons and badges transparency and position
ecommerce
Avatar
0
May 26
1
ecommerce and taxes Solved
ecommerce
Avatar
Avatar
1
Feb 26
1642
shdljaokpalkdjcvzxnkclzkldakfjbx
19.0
Avatar
0
Feb 26
116
Installed Apps Persist After Docker Volume Reset in Odoo 19
19.0
Avatar
Avatar
2
Feb 26
1499
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
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

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

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now