Skladové štítky a cenovky

Položkám je možné tisknout vlastní štítky, pokud zboží nemá čárové kódy od dodavatele nebo se nedá spolehnout na jejich unikátnost. Štítky mohou obsahovat také aktuální cenu. V systému je připravena šablona vhodná pro většinu použití a v nastavení je možné upravit rozměry, velikosti písma, zobrazené informace a podobně.

Formát štítku

Nejčastěji se používají nalepovací štítky tisknuté na kotoučkové tiskárně. Pokud sortiment obsahuje i velmi drobné produkty, je možné těmto produktům nastavit, že budou používat alternativní štítek a tisk štítků pak rozdělí štítky automaticky na dvě tiskárny.

Kromě malých nalepovacích štítků je možné stejnou funkci použít i pro tisk větších formátů - například cedulí obsahujících podobné informace jako na e-shopu (obrázek, parametry, …). Pro takové využití je potřeba vytvořit šablona na míru (viz níže).

Čárové kódy

Na štítcích se nejčastěji používat čárový kód ve formátu Code128, který podporují prakticky všechny čtečky. Pro správnou funkčnost je potřeba zkontrolovat, jestli má čtečka nastavenou správné rozložení klávesnicce, aby odpovídalo počítači, ke kterému je připojená.

QR kód

Ve vlastních šablonách štítků je možné použít i QR kód, který je určen pro zákazníky. Obsahuje zkrácenou URL, která se vždy přesměruje na aktuální adresu produktu na e-shopu a případně se přidají query parametry do adresy.

Ty lze použít pro sledování v Gogole Analytics nebo pro ovlivnění zobrazení produktu na e-shopu, aby bylo zohledněno, že zákazník stojí na prodejně. Tyto parametry lze měnit dodatečně a není potřeba tisknout znovu štítek.

Vlastní šablona štítku

Ve většině případů doporučujeme použít systémové šablony štítků, které jsou udržovány a aktualizovány. Pokud je ale potřeba zcela jiné rozložení štítku, tak je možné používat vlastní šablonu. Obvykle vzniká dodáním grafického návrhu do ticketu, ale případně je možné vytvořit ji kompletně v sekci Šablony/Štítky pomocí příkladu níže.

Při generování čárového kódu je důležité nijak neměnit šířku kódu přes CSS - deformovaný kód nepůjde přečist čtečkou.

V šablonách jsou dostupná dvě pole štítků:

  • itemLabels - obsahuje jednotlivé skladové položky a je vhodné pro většinu použití - pípnutí štítku načte konkrétní položku
  • groupedProductLabels - položky jsou sloučené podle nadřazeného produktu. Je vhodné například na ceduli společnou pro všechny varianty - pípnutí vyžaduje upřesnění konkrétní varianty

Každý štítek má k dispozici atributy:

  • label.name - název položky (včetně systémového názvu varianty)
  • label.quantity - počet štítků k vytisknutí
  • label.productName - název produktu (bez varianty)
  • label.variantName - název produktu (systémový název varianty)
  • label.product - objekt produktu, včetně předvybrane varianty - stejné atributy/funkce jako ve frontendu šablony
  • label.visibleCode - viditelný kód položky (jak bylo nastaveno v nastavení štítku)
  • label.secondVisibleCode - alternativní viditelný kód položky (jak bylo nastaveno v nastavení štítku)
  • <img-code128 src="{{ label.barcodeContent }}" width="1" height="20"/> - čárový kód
  • <img src="{{label.QrDataUri({size:100})}}" /> - QR kód se zkrácenou URL produktu
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <style>
        html, body {
            margin: 0;
            padding: 0;
            font-family: arial;
            -webkit-print-color-adjust: exact;
        }

        body {
            margin-left: 1mm;
            margin-top: 1mm;
        }
    </style>
</head>
<body>

{% set dimensions = [48,60] %}
{% set height = [10,4] %}

{% for label in itemLabels %}
    {% for x in 1..label.quantity %} 
        <div style="width: {{dimensions[0]}}mm;height: {{dimensions[1]}}mm;padding:2mm;padding-left:3mm;padding-top:7mm;page-break-inside: avoid;">
            <div>
                <div style="postition:relative;height:34mm;overflow:hidden;">
                    <div style="height:12mm;line-height:3mm;font-size:3mm;text-align:left;font-weight:bold;overflow:hidden">
                        {{label.name}}
                    </div>
                </div>
                <div style="position: relative;height:{{dimensions[1]-34}}mm;width:40mm;margin:auto;">
                    <div style="float:left;width:60%;height:5mm;line-height:5mm;text-align:left;font-size:4mm;">
                        Cena s DPH:
                    </div>
                    <div style="float:right;width:40%;height:5mm;line-height:5mm;text-align:right;font-size:4mm;">
                        <strong>{{label.price.current.formatted}}</strong>
                    </div>
                    <div style="float:left;width:60%;height:2mm;line-height:2mm;text-align:left;font-size:2mm;">
                        Sazba DPH: {{label.price.current.vatRate}}%
                    </div>
                    <div style="float:left;width:40%;height:2mm;line-height:2mm;text-align:left;font-size:2mm;">
                        MJ: {{label.product.unit.name}}
                    </div>
                    <div style="text-align:center;position:absolute;bottom:1mm;">
                        <img-code128 src="{{label.barcodeContent}}" width="1" height="20"/>
                        <br>
                        <div style="font-size:3mm">{{label.visibleCode}}</div>
                    </div>
                </div>
            </div>
        </div>
    {% endfor %}
{% endfor %}
</body>
</html>