Skip to Content
Odoo Menu
  • Prihlásiť sa
  • Vyskúšajte zadarmo
  • Aplikácie
    Financie
    • Účtovníctvo
    • Fakturácia
    • Výdavky
    • Tabuľka (BI)
    • Dokumenty
    • Podpis
    Predaj
    • CRM
    • Predaj
    • POS Shop
    • POS Restaurant
    • Manažment odberu
    • Požičovňa
    Webstránky
    • Tvorca webstránok
    • eShop
    • Blog
    • Fórum
    • Živý chat
    • eLearning
    Supply Chain
    • Sklad
    • Výroba
    • Správa životného cyklu produktu
    • Nákup
    • Údržba
    • Manažment kvality
    Ľudské zdroje
    • Zamestnanci
    • Nábor zamestnancov
    • Voľné dni
    • Hodnotenia
    • Odporúčania
    • Vozový park
    Marketing
    • Marketing sociálnych sietí
    • Email marketing
    • SMS marketing
    • Eventy
    • Marketingová automatizácia
    • Prieskumy
    Služby
    • Projektové riadenie
    • Pracovné výkazy
    • Práca v teréne
    • Helpdesk
    • Plánovanie
    • Schôdzky
    Produktivita
    • Tímová komunikácia
    • Artificial Intelligence
    • IoT
    • VoIP
    • Znalosti
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Priemyselné odvetvia
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Reštaurácia
    • Fast Food
    • Guest House
    • Beverage distributor
    • Hotel
    Reality
    • Real Estate Agency
    • Architecture Firm
    • Konštrukcia
    • Property Management
    • Gardening
    • Property Owner Association
    Poradenstvo
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Výroba
    • Textile
    • Metal
    • Furnitures
    • Jedlo
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware and Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Iní
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Komunita
    Vzdelávanie
    • Tutoriály
    • Dokumentácia
    • Certifikácie
    • Školenie
    • Blog
    • Podcast
    Empower Education
    • Vzdelávací program
    • Scale Up! Business Game
    • Visit Odoo
    Softvér
    • Stiahnuť
    • Porovnanie Community a Enterprise vierzie
    • Releases
    Spolupráca
    • Github
    • Fórum
    • Eventy
    • Preklady
    • Staň sa partnerom
    • Services for Partners
    • Register your Accounting Firm
    • Referral Program
    Služby
    • Nájdite partnera
    • Nájdite účtovníka
    • Meet an advisor
    • Implementation Services
    • Zákaznícke referencie
    • Podpora
    • Upgrades
    ​Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Získajte demo
  • Cenník
  • Pomoc
You need to be registered to interact with the community.
All Posts People Badges
Tagy (View all)
Website #website website HTML/CSS #help
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tagy (View all)
Website #website website HTML/CSS #help
About this forum
  1. Website Builder
  2. Fórum

How to hide unavailable variants from product page?

Odoberať

Get notified when there's activity on this post

This question has been flagged
Product
4 Replies
4451 Zobrazenia
Avatar
Tom

Is there a way to hide, grey-out or strikethrough variants that are not in stock on the product page? So customers don't have to click through all variants to see which are available, which can be annoying for them.

I know there is a third-party app that does this, but since i'm in v15 online, I can't use it. 

2
Avatar
Zrušiť
Tom
Autor

Any hint to a tutorial/explanation on how to create a custom module in Odoo online?
I can not find any useful information in the internet on how to create custom modules to modify the product template?

Avatar
Mahmoud El Bouyahyaoui
Best Answer

Yes, it is possible to hide, grey-out, or strikethrough variants that are not in stock on the product page in Odoo 15. This can be done by creating a custom module that modifies the product template and product variants views, and adding conditions based on the stock availability of the variants.

One way to accomplish this is to use the attrs attribute on the variant field in the product template view. This attribute allows you to define a JavaScript expression that will be evaluated for each variant, and can be used to set the CSS class or style of the variant based on its stock availability.

For example, you could use the attrs attribute to add a class to the variant field that will hide the variant if its stock is zero, and grey-out the variant if its stock is low.

Then in your css file you can add the css class to make it look grayed out.

.oe_product_variant_low_stock:before{
    content: 'Out of Stock';
    color: red;
}

In a similar way you can use the same logic to make the variants look strikethrough by using the following css class

.oe_product_variant_low_stock{
    text-decoration: line-through;
}

It's important to note that this is a basic example and you should adjust it according to your specific requirements. Also, it is always recommended to test your code in a development environment before deploying it to production.

1
Avatar
Zrušiť
Avatar
Arthur Maertens
Best Answer

Hi,

If this is still a topic you could actually use the integrated custom JS and SCSS to achieve something like that online ! 

In SaaS you can go to HTML and CSS editor and add this code :

JS :

(function () {
function checkOutOfStockVariants() {
const wishlistEl = document.querySelector('[data-product-template-id]');
if (!wishlistEl) return;

const productTemplateId = parseInt(wishlistEl.getAttribute('data-product-template-id'));
if (!productTemplateId) return;

const variantItems = document.querySelectorAll('.js_attribute_value');
if (!variantItems.length) return;

variantItems.forEach(function (item) {
const input = item.querySelector('input[type="radio"]');
if (!input) return;

const combinationId = parseInt(input.value);
if (!combinationId) return;

fetch('/website_sale/get_combination_info', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: "2.0",
method: "call",
id: Math.random(),
params: {
product_template_id: productTemplateId,
product_id: false,
combination: [combinationId],
add_qty: 1,
uom_id: null
}
})
})
.then(r => r.json())
.then(data => {
const info = data?.result;
if (!info) return;

const outOfStock = !info.allow_out_of_stock_order &&
info.free_qty <= (info.available_threshold ?? 0);

if (outOfStock) {
item.classList.add('oos_variant');
}
})
.catch(err => console.warn('[OOS] variant stock check error:', err));
});
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', checkOutOfStockVariants);
} else {
checkOutOfStockVariants();
}

window.addEventListener('load', checkOutOfStockVariants);
})();

SCSS :

// Out of stock variants
.js_attribute_value.oos_variant {
opacity: 0.38;
pointer-events: none;
position: relative;

// Diagonal strike-through on the pill
&::after {
content: '';
position: absolute;
top: 50%;
left: 0;
width: 100%;
height: 1.5px;
background-color: #888;
transform: translateY(-50%) rotate(-15deg);
pointer-events: none;
z-index: 10;
}
}

Hope this helps ! 
Arthur

0
Avatar
Zrušiť
Avatar
Cybrosys Techno Solutions Pvt.Ltd
Best Answer

Hi,

To hide unavailable variants from the product page in Odoo, you can use the Website Hide Variants module from the Odoo App Store.This module helps to hide variant which are unavailable by clicking on a boolean field

Here is the link to the app:

https://apps.odoo.com/apps/modules/16.0/website_hide_variants/

Regards

0
Avatar
Zrušiť
Avatar
Tom
Autor Best Answer

Thanks for the answer.
But I am in v15 online, so I can not add custom modules, or am I missing something?

0
Avatar
Zrušiť
Enjoying the discussion? Don't just read, join in!

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

Registrácia
Related Posts Replies Zobrazenia Aktivita
Creating a Link from a title to a product in the back-end...
Odoo Website Product
Avatar
Avatar
1
aug 22
2345
Komunita
  • Tutoriály
  • Dokumentácia
  • Fórum
Open Source
  • Stiahnuť
  • Github
  • Runbot
  • Preklady
Služby
  • Odoo.sh hosting
  • Podpora
  • Vyššia verzia
  • Custom Developments
  • Vzdelávanie
  • Nájdite účtovníka
  • Nájdite partnera
  • Staň sa partnerom
O nás
  • Naša spoločnosť
  • Majetok značky
  • Kontaktujte nás
  • Pracovné ponuky
  • Eventy
  • Podcast
  • Blog
  • Zákazníci
  • Právne dokumenty • Súkromie
  • Bezpečnosť
الْعَرَبيّة 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 je sada podnikových aplikácií s otvoreným zdrojovým kódom, ktoré pokrývajú všetky potreby vašej spoločnosti: CRM, e-shop, účtovníctvo, skladové hospodárstvo, miesto predaja, projektový manažment atď.

Odoo prináša vysokú pridanú hodnotu v jednoduchom použití a súčasne plne integrovanými biznis aplikáciami.

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