Overslaan naar inhoud
Odoo Menu
  • Aanmelden
  • Probeer het gratis
  • Apps
    Financiën
    • Boekhouding
    • Facturatie
    • Onkosten
    • Spreadsheet (BI)
    • Documenten
    • Ondertekenen
    Verkoop
    • CRM
    • Verkoop
    • Kassasysteem winkel
    • Kassasysteem Restaurant
    • Abonnementen
    • Verhuur
    Websites
    • Websitebouwer
    • E-commerce
    • Blog
    • Forum
    • Live Chat
    • E-learning
    Bevoorradingsketen
    • Voorraad
    • Productie
    • PLM
    • Inkoop
    • Onderhoud
    • Kwaliteit
    Personeelsbeheer
    • Werknemers
    • Werving & Selectie
    • Verlof
    • Evaluaties
    • Aanbevelingen
    • Wagenpark
    Marketing
    • Sociale media-marketing
    • E-mailmarketing
    • Sms-marketing
    • Evenementen
    • Marketingautomatisering
    • Enquêtes
    Diensten
    • Project
    • Urenstaten
    • Buitendienst
    • Helpdesk
    • Planning
    • Afspraken
    Productiviteit
    • Chat
    • Artificiële Intelligentie
    • IoT
    • VoIP
    • Kennis
    • WhatsApp
    Apps van derden Odoo Studio Odoo Cloud Platform
  • Bedrijfstakken
    Detailhandel
    • Boekhandel
    • kledingwinkel
    • Meubelwinkel
    • Supermarkt
    • Bouwmarkt
    • Speelgoedwinkel
    Horeca & Hospitality
    • Bar en café
    • Restaurant
    • Fastfood
    • Gastenverblijf
    • Drankenhandelaar
    • Hotel
    Vastgoed
    • Makelaarskantoor
    • Architectenbureau
    • Bouw
    • Vastgoedbeheer
    • Tuinieren
    • Vereniging van mede-eigenaren
    Consulting
    • Accountantskantoor
    • Odoo Partner
    • Marketingbureau
    • Advocatenkantoor
    • Talentenwerving
    • Audit & Certificering
    Productie
    • Textiel
    • Metaal
    • Meubels
    • Eten
    • Brouwerij
    • Relatiegeschenken
    Gezondheid & Fitness
    • Sportclub
    • Opticien
    • Fitnesscentrum
    • Wellness-medewerkers
    • Apotheek
    • Kapper
    Diensten
    • Klusjesman
    • IT-hardware & ondersteuning
    • Zonne-energiesystemen
    • Schoenmaker
    • Schoonmaakdiensten
    • HVAC-diensten
    Andere
    • Non-profitorganisatie
    • Milieuagentschap
    • Verhuur van Billboards
    • Fotograaf
    • Fietsleasing
    • Softwareverkoper
    Alle bedrijfstakken bekijken
  • Community
    Leren
    • Tutorials
    • Documentatie
    • Certificeringen
    • Training
    • Blog
    • Podcast
    Versterk het onderwijs
    • Onderwijsprogramma
    • Scale Up! Business Game
    • Odoo bezoeken
    Download de Software
    • Downloaden
    • Vergelijk edities
    • Releases
    Werk samen
    • Github
    • Forum
    • Evenementen
    • Vertalingen
    • Partner worden
    • Diensten voor partners
    • Registreer je accountantskantoor
    • Referral Program
    Diensten
    • Vind een partner
    • Vind een boekhouder
    • Een adviseur ontmoeten
    • Implementatiediensten
    • Klantreferenties
    • Ondersteuning
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Vraag een demo aan
  • Prijzen
  • Help
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
Website #website website HTML/CSS #help
Over dit forum
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
Website #website website HTML/CSS #help
Over dit forum
  1. Website Builder
  2. Forum

How to hide unavailable variants from product page?

Inschrijven

Ontvang een bericht wanneer er activiteit is op deze post

Deze vraag is gerapporteerd
Product
4 Antwoorden
4446 Weergaven
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
Annuleer
Tom
Auteur

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
Beste antwoord

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
Annuleer
Avatar
Arthur Maertens
Beste antwoord

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
Annuleer
Avatar
Cybrosys Techno Solutions Pvt.Ltd
Beste antwoord

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
Annuleer
Avatar
Tom
Auteur Beste antwoord

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

0
Avatar
Annuleer
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!

Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!

Aanmelden
Gerelateerde posts Antwoorden Weergaven Activiteit
Creating a Link from a title to a product in the back-end...
Odoo Website Product
Avatar
Avatar
1
aug. 22
2340
Community
  • Tutorials
  • Documentatie
  • Forum
Open Source
  • Downloaden
  • Github
  • Runbot
  • Vertalingen
Diensten
  • Odoo.sh Hosting
  • Ondersteuning
  • Upgrade
  • Gepersonaliseerde ontwikkelingen
  • Onderwijs
  • Vind een boekhouder
  • Vind een partner
  • Partner worden
Over ons
  • Ons bedrijf
  • Merkelementen
  • Neem contact met ons op
  • Vacatures
  • Evenementen
  • Podcast
  • Blog
  • Klanten
  • Juridisch • Privacy
  • Beveiliging
الْعَرَبيّة 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 een suite van open source zakelijke apps die aan al je bedrijfsbehoeften voldoet: CRM, E-commerce, boekhouding, inventaris, kassasysteem, projectbeheer, enz.

Odoo's unieke waardepropositie is om tegelijkertijd zeer gebruiksvriendelijk en volledig geïntegreerd te zijn.

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