Kódok a Brani Tisku sablonokhoz
A Brani Tisku alkalmazás felső részén találhatóak azok az adatok, amelyekkel rendelkezünk a megrendelésről vagy a termékről, és amelyekkel dolgozhat, hogy saját címkéket készítsen.
Alapvető információk
A Brani Tisku sablonjának szerkesztése során a képernyő felső részén megtalálhatók a rendeléssel vagy a termékkel kapcsolatos, rendelkezésünkre álló adatok, amelyekkel dolgozhat, például:

Ugyanakkor lehetséges egy adott termékhez vagy megrendeléshez tartozó adatokat betölteni, ha kitölti a saját tesztadatait:

Ha az adatstruktúrából származó változót szeretné használni a sablonban – például a termék nevét –, akkor a következő szintaxist kell alkalmaznia:
{{ termék.name }}
Ha az adatok mélyebben vannak elrejtve, a kulcsokat tömbként kell kezelni. Például a beszállító nevének kinyomtatásához:
{{ termék.beszállító['name'] }}
Bizonyos esetekben előfordulhat, hogy ciklust kell használni, például azért, mert a paraméterek tetszőleges számú „paraméter–érték” párt tartalmaznak. Ilyen esetben a kód például így nézhet ki:
{% for param in product.descriptiveParameters %}
Nazev param: {{ param['name'] }}
Hodnota: {{ param['value'] }}
{% endfor %}
A ciklusok és általában a paraméterekkel való munka sokkal bonyolultabb lehet, erről bővebben később írunk.
Címke méretek
Nagyon fontos, hogy pontosan meghatározzuk az „felület” méretét, amelyre az információkat fel fogjuk helyezni. A címkék és a termékek elkészítése például olyan folyamat, amelyet fokozatosan finomítunk azáltal, hogy sorra kinyomtatjuk őket, kipróbáljuk a különböző betűméreteket és hasonlókat. Az alapot a címke megfelelő méretének beállítása jelenti.
Kódok generálása
Különböző típusú 1D-s és 2D-s kódokat tudunk generálni. A bemeneti szöveg tetszőleges lehet, leggyakrabban termék- vagy EAN-kódot használnak. Támogatott kódtípusok (ez hatással van a kód végső képének megjelenésére):
qr, barcode_code128, barcode_ean, barcode_ean8, barcode_gtin, barcode_ean14, barcode_jan, barcode_upc, barcode_upca, barcode_isbn, barcode_isbn13, barcode_gs1, barcode_isbn10, barcode_issn, barcode_code39, barcode_pzn, barcode_code128, barcode_itf, barcode_gs1_128
A leggyakrabban használt kódok:
- qr – egy viszonylag kicsi kód, amely nagy mennyiségű adatot képes tárolni, ehhez 2D-olvasóra van szükség
- ean – a szokásos 13 számjegyű kódokhoz
- code128 – olyan kódokhoz alkalmas, amelyek hossza nem pontos, és betűket, kötőjeleket, aláhúzásjeleket és hasonló karaktereket tartalmaznak
A jegyzőkönyv így néz ki:
<img src="{{ premenna | typ_kodu(argumenty) }}">
Ezt akkor használja, ha a termék kódjából Code128 vonalkódot szeretne generálni:
<img src="{{ product.variant.code | barcode_code128(height=10, width=0.5, label=True, font_size=8, text_offset=2.5) }}" >
Beállíthatók azok a paraméterek, amelyek befolyásolják a vonalkód magasságát vagy szélességét. Emellett be- vagy kikapcsolható az úgynevezett „label” – ez az a kód, amely a címke méretét és a vonalkódtól való eltolását határozza meg.

A QR-kód különlegessége, hogy nem rendelkezik paraméterekkel. A QR-kód esetében a kép CSS segítségével testreszabható.
<img src="{{ product.variant.code | qr() }}" style="width: 4cm">
A kód a következőképpen néz ki:

A QR-kódot arra is felhasználhatja, hogy a termék kódja alapján az e-bolt keresőjébe irányítsa a felhasználót:
<img style="height: 120px" src="{{ ("https://brani.myshoptet.com/vyhledavani/?string=" + product.variant.code) | qr }}" />
Vagy közvetlenül hivatkozhatunk a termék részletes leírására:
<img style="height: 120px" src="{{ product.url | qr }}" />
Feltételek
A feltétel alapvető szintaxisa a következő:
{% ha feltétel %}
// mit kell végrehajtani, ha a feltétel teljesül
{% else %}
// mit kell végrehajtani, ha a feltétel nem teljesül
{% endif %}
Ha a termék láthatóságán alapuló feltételt szeretne alkalmazni, a következőket állítsa be:
{% ha product.visibility == "hidden" %}
elrejtett termék
{% else %}
megjelenített termék
{% endif %}
Ciklus
Ezt a ciklust leggyakrabban olyan esetekben használják, amikor létre kell hozni egy táblázatot, amely tartalmazza a megrendelésben szereplő termékek listáját vagy a termékek paramétereit.
Megrendelések
A megrendelésben szereplő termékek felsorolásához (például visszaküldési űrlapok esetén) a következő ciklust használhatja:
{% for item in order['items'] %}
{{ item.name }}
{{ elem.összeg }} db
{{ tétel.tételár.withVat }} Kč
{% endfor %}
A szebb táblázat érdekében például a következőket írja be:
<div class="produkty">
<div class="produkty-vypis produkty-hlavicka">
<span>Počet</span>
<span></span>
<span>Produkt</span>
<span class="text-right">Cena bez DPH</span>
<span class="text-right">Cena s DPH</span>
</div>
{% for item in order['items'] %}
<div class="produkty-vypis">
<span>{{ item.amount }} ks</span>
<span></span>
<span>{{ item.name }}</span>
<span class="text-right">{{ item.itemPrice.withoutVat }}Kč</span>
<span class="text-right">{{ item.itemPrice.withVat }} Kč</span>
</div>
{% endfor %}
</div>
<div class="celkem text-right">
Celkem:
<span>{{ order.price.toPay }} Kč</span>
</div>
És így fog ez később kinézni:

Termékek
A termékek esetében a ciklusokat gyakran használják a paraméterek felsorolására.
Árlisták
Ha a termékcímkén a fő árlistától eltérő árakat szeretne feltüntetni, akkor a `pricelists` változót kell használnia. Például:
{{ árlisták[123].ár }}
Ahol a „123” az árlista azonosítószámát jelenti.
Brani Sklad
Amennyiben a Brani Sklad, a termékekhez megadhatja azokat a szektorokat vagy raktári pozíciókat, ahol a termék található. Ehhez két változó áll rendelkezésre:
{{ pozíciók }}
{{ szektorok }}
Ezen a helyen megjelenik a pozíciók (vagy szektorok) listája, vesszővel vagy elválasztóval, például:
A1-1-2, C3-4-8, D5-1-1
Ha a termék egy pozícióban van, akkor csak ez az egy pozíció jelenik meg.
Fejlett funkciók
A sablonrendszer támogatja a Python nyelv egyes módszereit.
Változók használata
Ha bonyolultabb sablont készít, akkor hasznos lehet a változók használata.
{% set foo = "bar" %}
Vypise bar: {{ foo }}
{% set foo = product.name %}
Vypise nazov produktu: {{ foo }}
Használhatja a következő mezőket is:
{% set productname = namespace(cz="", de="", sk="",en="") %}
{% set productname.cz = "cesky nazev" %}
{% set productname.de = "nemecky nazev" %}
Vypise cesky nazev: {{ productname.cz }}
Vypise nemecky nazev: {{ productname.de }}
Számok kerekítése
A round függvény 2 tizedesjegyre kerekít:
Vypise "123.46": {{ 123.45678 | round }}
Dátum és idő
A datetime.now() , timedelta() és parsedate() függvényeket is használhatja, valamint a strftime() segítségével formázhatja a dátumokat, ugyanúgy, mint a Pythonban:
Aktualni datum a cas:
{{ datetime.now().strftime('%d.%m.%Y %H:%M') }}
Datum a cas za 180 dni:
{{ (datetime.now() + timedelta(days=180)).strftime('%d.%m.%Y %H:%M') }}
Szövegelemzés
Előfordul, hogy szükségünk van bizonyos adatok lekérésére, például a termék belső megjegyzéséből. Vegyünk egy példát, amikor a termék belső megjegyzése mindig egy sorban tartalmaz fontos információkat, előtaggal ellátva. Használhatja a startswith() , split() , join() függvényeket, valamint testreszabhatja a split() utáni eredménymezők pozícióját:
{% if product.internalNote: %}
{% for line in product.internalNote.split("\n"): %}
{% if line.startswith("CZ:"): %}
{% set productname.cz = "".join(line.split("CZ: ")[1].split(';')) %}
{% endif %}
{% if line.startswith("SK:"): %}
{% set productname.sk = "".join(line.split("SK: ")[1].split(';')) %}
{% endif %}
{% endfor %}
{% endif %}
Google Táblázatok
Ha olyan információkat kell feltüntetnie a címkén , amelyek nem szerepelnek a termék e-shopban, akkor ezeket az információkat elmentheti a Google táblázatokba, és onnan lekérheti a szükséges adatokat.
Ez hasznos lehet például a termék összetételének különböző nyelveken történő feltüntetéséhez, az adagoláshoz, a használati utasításhoz, a gyártóval kapcsolatos információkhoz és hasonlóakhoz. Ha például a táblázatokban minden gyártóhoz tartozik egy leírás, ezeket a leírásokat később címkére is kinyomtathatja.
Az alapvető szintaxis a táblázat cellájának kereséséhez és kiírásához:
{{ vstup | gsheet(
url='https://docs.google.com/spreadsheets/d/hash',
sheet_name='nazev listu',
lookup_column_name='sloupec kde hladame ',
value_column_name='sloupec ktery hledame'
) }}
Ha azt szeretné, hogy a „leírás” oszlop tartalma megjelenjen azon a soron, ahol a „termékkód” oszlop tartalma a mi termékünk kódját tartalmazza, akkor a következőket írja be:
{{ product.variant.code | gsheet(url='https://docs.google.com/spreadsheets/d/hash', sheet_name='nazev listu', lookup_column_name='kod produktu', value_column_name='popis') }}
Figyelj arra, hogy a Google táblázatnak nyilvánosan hozzáférhetőnek kell lennie a megadott URL-címen.
Saját PDF és a nyomtatás feltételes felfüggesztése
A funkció segítségével custom_pdf() A sablonból létrehozott PDF helyett használhat egy saját URL-címről származó PDF-fájlt is. A függvénynek megadja azt az URL-címet, ahonnan a PDF-fájlt letölti, majd kinyomtatja. Ez a funkció például címkék vagy külső szolgáltatás által generált dokumentumok esetén hasznos.
Ha bizonyos feltételek mellett teljesen ki szeretné hagyni a nyomtatást, használja a abort_generation(). Ilyen esetben a PDF-fájl létrehozása megszakad, és nem nyomtat ki semmit.
A függvényt például egy Google Táblázatból beolvasott értékkel kombinálhatja. Ebben a példában a termék kódja alapján keresi meg a PDF URL-jét az oszlopban RO. Ha az URL így kezdődik: https, saját PDF-ként kerül felhasználásra; ellenkező esetben a generálás megszakad:
{% set pdf_url = product.variant.code | gsheet(
url='https://docs.google.com/spreadsheets/d/1AbCdEfGhIjKlMnOpQrStUvWxYz0123456789/edit?gid=0#gid=0',
sheet_name='etikety',
lookup_column_name='CODE',
value_column_name='RO'
) %}
{% if pdf_url.startswith('https'): %}
{{ custom_pdf(pdf_url) }}
{% else: %}
{{ abort_generation() }}
{% endif %}
Az előnézetben maga a PDF-fájl nem jelenik meg közvetlenül, az előnézet csupán jelzi, hogy a funkciót használták custom_pdf(). A nyomtatás megfelelő működéséhez az URL-nek PDF-fájlt kell visszaadnia, és a Google-táblázatnak nyilvánosan hozzáférhetőnek kell lennie.
Ha bármilyen kérdése van, vegye fel velünk a kapcsolatot a support@brani.cz címen.