V příspěvku Drupal commerce - produkt VS produkt displej byl popsán a ukázán rozdíl mezi produktem a produkt displejem. V tomto příspěvku bych se rád podíval na „zajímavý“ problém a to je zobrazení variant produktů, pokud existuje pouze jedna varianta. Na první pohled to zní divně - zobrazovat varianty produktu, pokud existuje pouze jedna, ale rád bych to objasnil na konkrétním příkladu.
Příklad problému - zobrazení varianty produktu
Navazuji na příklad popsaný v příspěvku Drupal commerce - produkt VS produkt displej. V tomto příkladu bylo vytvořeno triko, které bylo ve třech barvách (červená, modrá, zelená) a dvou velikostech (L a M), viz Obrázek 1. Z obrázku jsou vidět dva select boxy, pomocí kterých se vybírá příslušná varianta. Ve výchozím stavu je také úplně dole na obrázku 1 vidět aktuálně zvolená barva a velikost. Tyto údaje pravděpodobně nebudete chtít zobrazovat v reálném provozu, protože stejná informace je vidět ze select boxů.

Obrázek 1 - Zobrazení trika s jeho variantami.
Odebrání těchto údajů se řeší standardním způsobem Drupalu. V menu Struktura > Typy obsahu > Product display > Správa zobrazení stačí přesunout barvu a velikost mezi skrytá pole (viz Obrázek 2).

Obrázek 2 - Skrytí zobrazení barvy a velikosti zvolené varianty.
Pokud si zobrazíte produkt znovu, je vidět, že odebraná pole se opravdu nezobrazují (viz Obrázek 3).

Obrázek 3 - Detail produktu bez duplicitních informací o barvě a velikosti.
Až do této chvíle nenastal žádný problém. Co se ale stane, pokud budu mít v nabídce triko, které bude dostupné pouze v jedné velikosti a barvě? V našem příkladu zkusíme upravit současné triko tak, aby bylo dostupné pouze v červené barvě a velikost M. To uděláme jednoduše odebráním referencí z produkt displeje na jednotlivé varianty trika (viz Drupal commerce - produkt VS produkt displej). Pokud zobrazíme znovu detail produktu, tak se nám nezobrazí select boxy, protože není z čeho vybírat, takže vidíme pouze cenu, popis atd, ale nevidíme žádnou informaci o velikosti ani barvě (viz Obrázek 4).

Obrázek 4 - Detail produktu pouze pro jednu variantu trika.
Řešení: Jak zobrazit produkt s jednou variantou?
Drupal commerce samozřejmě s takovou situací počítá a umožňuje nastavit zobrazování select boxů i pro produkty s pouze jednou variantou. Pokud to chcete nastavit poprvé, může zabrat nějakou dobu, než dojdete na to, kde přesně se tato volba nastaví.
Pro nastavení stačí v menu zvolit Struktura > Typy obsahu > Product display > Správa zobrazení, kde u položky Product musíte zmáčknout tlačítko s ozubeným kolečkem. Po zmáčknutí se vám zobrazí nastavení produktu, kde si mimo jiné můžete nastavit zobrazení variant i pro produkty pouze v jedné variantě a to pomocí zaškrtnutí Show attribute widgets even if the Add to Cart form only represents one product (viz Obrázek 5).

Obrázek 5 - Nastavení zobrazení variant i pro produkty pouze s jednou variantou.
Pokud zaškrtnete položku Show attribute widgets even if the Add to Cart form only represents one product a uložíte změny, zobrazí se vám select boxy i pro produkty, které mají pouze jednu variantu (viz Obrázek 6).

Obrázek 6 - Detail produktu se select boxy i pro produkty pouze s jednou variantou.
Pokud si budete tvořit e-shop na Drupalu, třeba jako je ten pro Cukrářství Viktoria, tento krátký návod vám snad ušetří chvilku času.