Bỏ qua để đến Nội dung
Odoo Menu
  • Đăng nhập
  • Dùng thử miễn phí
  • Ứng dụng
    Tài chính
    • Kế toán
    • Hóa đơn
    • Chi phí
    • Bảng tính (BI)
    • Tài liệu
    • Ký tên
    Bán hàng
    • CRM
    • Bán hàng
    • POS Cửa hàng
    • POS Nhà hàng
    • Đăng ký
    • Cho thuê
    Trang web
    • Trình tạo trang web
    • Thương mại điện tử
    • Blog
    • Diễn đàn
    • Trò chuyện trực tiếp
    • Học trực tuyến
    Chuỗi cung ứng
    • Tồn kho
    • Sản xuất
    • PLM
    • Mua hàng
    • Bảo dưỡng
    • Chất lượng
    Nhân sự
    • Nhân viên
    • Tuyển dụng
    • Ngày nghỉ
    • Đánh giá
    • Giới thiệu
    • Đội xe
    Marketing
    • Marketing trên MXH
    • Marketing qua email
    • Marketing qua SMS
    • Sự kiện
    • Tự động hóa Marketing
    • Khảo sát
    Dịch vụ
    • Dự án
    • Bảng chấm công
    • Dịch vụ hiện trường
    • Hỗ trợ
    • Kế hoạch
    • Lịch hẹn
    Năng suất
    • Thảo luận
    • Trí tuệ nhân tạo (AI)
    • IoT
    • VoIP
    • Kiến thức
    • WhatsApp
    Ứng dụng của bên thứ ba Studio Odoo Nền tảng Đám mây Odoo
  • Ngành
    Bán lẻ
    • Nhà sách
    • Cửa hàng quần áo
    • Cửa hàng nội thất
    • Cửa hàng tạp hóa
    • Cửa hàng đồ kim khí
    • Cửa hàng đồ chơi
    Ẩm thực & Dịch vụ lưu trú
    • Bar và quán rượu
    • Nhà hàng
    • Đồ ăn nhanh
    • Guest house
    • Nhà phân phối đồ uống
    • Khách sạn
    Bất động sản
    • Công ty môi giới bất động sản
    • Công ty kiến trúc
    • Xây dựng
    • Quản lý bất động sản
    • Làm vườn
    • Hiệp hội chủ sở hữu bất động sản
    Tư vấn
    • Công ty kế toán
    • Đối tác Odoo
    • Công ty marketing
    • Công ty luật
    • Tuyển dụng
    • Thanh tra & chứng nhận
    Sản xuất
    • Dệt may
    • Kim loại
    • Nội thất
    • Ẩm thực
    • Nhà máy bia
    • Quà tặng doanh nghiệp
    Sức khoẻ & fitness
    • CLB thể thao
    • Cửa hàng kính mắt
    • Trung tâm fitness
    • Chuyên gia chăm sóc sức khỏe
    • Hiệu thuốc
    • Tiệm làm tóc
    Thương mại
    • Dịch vụ sửa chữa
    • Phần cứng CNTT & Hỗ trợ
    • Hệ thống năng lượng mặt trời
    • Công ty sản xuất giày
    • Dịch vụ vệ sinh
    • Dịch vụ HVAC
    Khác
    • Tổ chức phi lợi nhuận
    • Cơ quan môi trường
    • Cho thuê biển quảng cáo
    • Nhiếp ảnh
    • Cho thuê xe đạp
    • Đại lý phần mềm
    Xem tất cả ngành
  • Cộng đồng
    Học tập
    • Khóa học
    • Tài liệu
    • Chứng chỉ
    • Đào tạo
    • Blog
    • Podcast
    Thúc đẩy đào tạo
    • Chương trình đào tạo
    • Trò chơi kinh doanh Scale Up!
    • Tham quan Odoo
    Nhận phần mềm
    • Tải xuống
    • So sánh các phiên bản
    • Phiên bản
    Hợp tác
    • Github
    • Diễn đàn
    • Sự kiện
    • Dịch thuật
    • Trở thành đối tác
    • Dịch vụ dành cho Đối tác
    • Đăng ký công ty kế toán của bạn
    Nhận dịch vụ
    • Tìm đối tác
    • Tìm kế toán
    • Gặp chuyên gia hỗ trợ
    • Dịch vụ Triển khai
    • Khách hàng tham khảo
    • Hỗ trợ
    • Nâng cấp
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Nhận một buổi demo
  • Bảng giá
  • Trợ giúp
Bạn cần phải đăng ký để tương tác với cộng đồng.
Tất cả bài viết Người Huy hiệu
Thẻ (Xem tất cả)
odoo accounting v14 pos v15
Về diễn đàn này
Bạn cần phải đăng ký để tương tác với cộng đồng.
Tất cả bài viết Người Huy hiệu
Thẻ (Xem tất cả)
odoo accounting v14 pos v15
Về diễn đàn này
Hỗ trợ

ODOO 19 Problem with Product Availability Status

Đăng ký nhận tin

Nhận thông báo khi có hoạt động trên bài viết này

Câu hỏi này đã bị gắn cờ
ecommerce19.0
2 Trả lời
1408 Lượt xem
Ảnh đại diện
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
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
Mohammed.Samy
Câu trả lời hay nhất

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
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
Vivek Kundaliya
Câu trả lời hay nhất

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
Ảnh đại diện
Huỷ bỏ
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!

Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!

Đăng ký
Bài viết liên quan Trả lời Lượt xem Hoạt động
Odoo18: E-commerce mini cart now showing
ecommerce
Ảnh đại diện
Ảnh đại diện
1
thg 5 26
3763
Ribbons and badges transparency and position
ecommerce
Ảnh đại diện
0
thg 5 26
1
ecommerce and taxes Đã xử lý
ecommerce
Ảnh đại diện
Ảnh đại diện
1
thg 2 26
1647
shdljaokpalkdjcvzxnkclzkldakfjbx
19.0
Ảnh đại diện
0
thg 2 26
116
Installed Apps Persist After Docker Volume Reset in Odoo 19
19.0
Ảnh đại diện
Ảnh đại diện
2
thg 2 26
1499
Cộng đồng
  • Khóa học
  • Tài liệu
  • Diễn đàn
Open source
  • Tải xuống
  • Github
  • Runbot
  • Dịch thuật
Dịch vụ
  • Lưu trữ Odoo.sh
  • Hỗ trợ
  • Nâng cấp
  • Phát triển tùy chỉnh
  • Đào tạo
  • Tìm kế toán
  • Tìm đối tác
  • Trở thành đối tác
Giới thiệu công ty
  • Công ty của chúng tôi
  • Tài sản thương hiệu
  • Liên hệ
  • Việc làm
  • Sự kiện
  • Podcast
  • Blog
  • Khách hàng
  • Pháp lý • Riêng tư
  • Bảo mật
الْعَرَبيّة 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 là bộ ứng dụng kinh doanh có open source đáp ứng tất cả các nhu cầu của công ty bạn: CRM, thương mại điện tử, kế toán, tồn kho, POS, quản lý dự án, v.v.

Định hướng giá trị riêng biệt của Odoo là tích hợp hoàn toàn và dễ dàng sử dụng.

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