Object Types
in preparation - not yet available in templates
AccountingDocument
Attributes of object AccountingDocument
| Name | Type | Description |
|---|---|---|
| code | string | Code |
| name | string | Document name (e.g. Invoice 2330011) |
| date | datetime | Issue date |
| totalPrice | Price | Total price |
| pdfUrl | Url | PDF download URL |
Examples:
{{ accountingdocument.code }}
{{ accountingdocument.name }}
{{ accountingdocument.date|date('d. m. Y H:i') }}
{{ accountingdocument.totalPrice }} {# Price #}
{{ accountingdocument.pdfUrl }} {# Url #}Actuality
Attributes of object Actuality
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| date | datetime | Date |
| url | Url | Actuality URL or external URL (takes precedence) |
| annotation | string | null | Annotation |
| text | string | null | Text |
| image | Image | null | Main image |
Examples:
{{ actuality.id }}
{{ actuality.name }}
{{ actuality.date|date('d. m. Y H:i') }}
{{ actuality.url }} {# Url #}
{% if actuality.annotation %} {{ actuality.annotation }} {% endif %}
{% if actuality.text %} {{ actuality.text }} {% endif %}
{% if actuality.image %} {{ actuality.image }} {# Image #} {% endif %}Address
Attributes of object Address
| Name | Type | Description |
|---|---|---|
| name | Address/Name | Name |
| city | string | null | City |
| company | string | null | Company |
| companyId | string | null | Company ID |
| string | null | ||
| phone | string | null | Phone |
| region | string | null | Region (state, district, ...) |
| street | string | null | Street and house number |
| vatId | string | null | VAT ID |
| web | string | null | Website URL |
| zip | string | null | ZIP code |
| purpose | Address/AddressPurpose | null | Contact purpose |
| country | Address/Country | null | Country |
Examples:
{{ address.name }} {# Name #}
{% if address.city %} {{ address.city }} {% endif %}
{% if address.company %} {{ address.company }} {% endif %}
{% if address.companyId %} {{ address.companyId }} {% endif %}
{% if address.email %} {{ address.email }} {% endif %}
{% if address.phone %} {{ address.phone }} {% endif %}
{% if address.region %} {{ address.region }} {% endif %}
{% if address.street %} {{ address.street }} {% endif %}
{% if address.vatId %} {{ address.vatId }} {% endif %}
{% if address.web %} {{ address.web }} {% endif %}
{% if address.zip %} {{ address.zip }} {% endif %}
{% if address.purpose %} {{ address.purpose }} {# AddressPurpose #} {% endif %}
{% if address.country %} {{ address.country }} {# Country #} {% endif %}Address/AddressPurpose
Attributes of object Address/AddressPurpose
| Name | Type | Description |
|---|---|---|
| headline | string | Headline |
Examples:
{{ addresspurpose.headline }}Address/Country
Attributes of object Address/Country
| Name | Type | Description |
|---|---|---|
| code | string | Code (e.g. cz) |
| flagCircleUrl | string | Flag SVG URL (circular) |
| flagUrl | string | Flag SVG URL (rectangular 3:4) |
| name | string | Name |
| eU | bool | Is in EU? |
Examples:
{{ country.code }}
{{ country.flagCircleUrl }}
{{ country.flagUrl }}
{{ country.name }}
{% if country.eU %} ... {% endif %}Address/Name
Attributes of object Address/Name
| Name | Type | Description |
|---|---|---|
| first | string | null | First name |
| last | string | null | Last name |
Examples:
{{ name }}
{% if name.first %} {{ name.first }} {% endif %}
{% if name.last %} {{ name.last }} {% endif %}Addresses
Attributes of object Addresses
| Name | Type | Description |
|---|---|---|
| delivery | Address | Delivery address |
| invoice | Address | Billing address |
Examples:
{{ addresses.delivery }} {# Address #}
{{ addresses.invoice }} {# Address #}Admin
E-shop administrator
Attributes of object Admin
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| string | ||
| phone | string | Phone |
| position | string | Position |
| name | Address/Name | First and last name |
| image | Image | Image |
| text | html | null | Text |
Examples:
{{ admin.id }}
{{ admin.email }}
{{ admin.phone }}
{{ admin.position }}
{{ admin.name }} {# Name #}
{{ admin.image }} {# Image #}
{% if admin.text %} {{ admin.text }} {% endif %}AnalyticsReport
Attributes of object AnalyticsReport
| Name | Type | Description |
|---|---|---|
| name | string | Name |
| url | Url | URL |
Examples:
{{ analyticsreport.name }}
{{ analyticsreport.url }} {# Url #}Article
Attributes of object Article
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| commentType | string | Comment type for this entity |
| name | string | Name |
| datePublished | datetime | Publication date |
| attributes | Attribute/AttributeInstance[] | Attributes and values |
| author | Author | Author |
| files | File[] | Files (manuals, specifications, ...) |
| images | Image[] | Images |
| topic | Topic | Topic (classification) |
| topics | Topic[] | Topics |
| url | Url | Article URL |
| videos | Video[] | Videos |
| text | html | null | Text |
| attribute | Attribute/AttributeInstance | null | Attribute with values |
| image | Image | null | Main image |
| seo | Seo | null | SEO attributes |
| contentGrid | array | null | Content grid |
Examples:
{{ article.id }}
{{ article.commentType }}
{{ article.name }}
{{ article.datePublished|date('d. m. Y H:i') }}
{% for attributeInstance in article.attributes %} ... {% endfor %}
{{ article.author }} {# Author #}
{% for file in article.files %} ... {% endfor %}
{% for image in article.images %} ... {% endfor %}
{{ article.topic }} {# Topic #}
{% for topic in article.topics %} ... {% endfor %}
{{ article.url }} {# Url #}
{% for video in article.videos %} ... {% endfor %}
{% if article.text %} {{ article.text }} {% endif %}
{% if article.attribute %} {{ article.attribute }} {# AttributeInstance #} {% endif %}
{% if article.image %} {{ article.image }} {# Image #} {% endif %}
{% if article.seo %} {{ article.seo }} {# Seo #} {% endif %}
{% if article.contentGrid %} {{ article.contentGrid }} {% endif %}Attribute/Attribute
Attributes of object Attribute/Attribute
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| name | string | Name |
| values | Attribute/AttributeValue[] | Values |
| text | string | null | Description |
| group | Attribute/AttributeGroup | null | Attribute group |
| meaning | AttributeMeaning | null | Meaning |
| image | Image | null | Image |
Examples:
{{ attribute.id }}
{{ attribute.name }}
{% for attributeValue in attribute.values %} ... {% endfor %}
{% if attribute.text %} {{ attribute.text }} {% endif %}
{% if attribute.group %} {{ attribute.group }} {# AttributeGroup #} {% endif %}
{% if attribute.meaning %} {{ attribute.meaning }} {# AttributeMeaning #} {% endif %}
{% if attribute.image %} {{ attribute.image }} {# Image #} {% endif %}Attribute/AttributeGroup
Attributes of object Attribute/AttributeGroup
| Name | Type | Description |
|---|---|---|
| id | int | ID |
Examples:
{{ attributegroup.id }}Attribute/AttributeInstance
Attributes of object Attribute/AttributeInstance
| Name | Type | Description |
|---|---|---|
| name | string | Name |
| valuesHtml | html | Value names including optional link and title, separated by comma |
| values | Attribute/AttributeValueInstance[] | Values |
| description | string | null | Description |
| group | Attribute/AttributeGroup | null | Attribute group |
| image | Image | null | Image |
Examples:
{{ attributeinstance.name }}
{{ attributeinstance.valuesHtml }}
{% for attributeValueInstance in attributeinstance.values %} ... {% endfor %}
{% if attributeinstance.description %} {{ attributeinstance.description }} {% endif %}
{% if attributeinstance.group %} {{ attributeinstance.group }} {# AttributeGroup #} {% endif %}
{% if attributeinstance.image %} {{ attributeinstance.image }} {# Image #} {% endif %}Attribute/AttributeValue
Attribute value
Attributes of object Attribute/AttributeValue
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| attribute | Attribute/Attribute | Attribute |
| colorCode | string | null | Hex color code |
| text | html | null | Text |
| image | Image | null | Image |
Examples:
{{ attributevalue.id }}
{{ attributevalue.name }}
{{ attributevalue.attribute }} {# Attribute #}
{% if attributevalue.colorCode %} {{ attributevalue.colorCode }} {% endif %}
{% if attributevalue.text %} {{ attributevalue.text }} {% endif %}
{% if attributevalue.image %} {{ attributevalue.image }} {# Image #} {% endif %}Attribute/AttributeValueInstance
Attributes of object Attribute/AttributeValueInstance
| Name | Type | Description |
|---|---|---|
| nameHtml | html | Name including title and optional link |
| colorCode | string | null | Hex color code |
| text | string | null | Description |
| unit | string | null | Unit |
| image | Image | null | Image |
| name | string | int | float | null | Name |
Examples:
{{ attributevalueinstance }}
{{ attributevalueinstance.nameHtml }}
{% if attributevalueinstance.colorCode %} {{ attributevalueinstance.colorCode }} {% endif %}
{% if attributevalueinstance.text %} {{ attributevalueinstance.text }} {% endif %}
{% if attributevalueinstance.unit %} {{ attributevalueinstance.unit }} {% endif %}
{% if attributevalueinstance.image %} {{ attributevalueinstance.image }} {# Image #} {% endif %}
{% if attributevalueinstance.name %} {{ attributevalueinstance.name }} {% endif %}AttributeMeaning
Attributes of object AttributeMeaning
| Name | Type | Description |
|---|---|---|
| code | string | Code |
Examples:
{{ attributemeaning.code }}Author
Article author
Attributes of object Author
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | Address/Name | First and last name |
| image | Image | Image |
| socialProfiles | SocialProfile[] | Social networks |
| url | Url | URL |
| string | null | ||
| nickname | string | null | Nickname |
| phone | string | null | Phone |
| text | html | null | Text |
Examples:
{{ author.id }}
{{ author.name }} {# Name #}
{{ author.image }} {# Image #}
{% for socialProfile in author.socialProfiles %} ... {% endfor %}
{{ author.url }} {# Url #}
{% if author.email %} {{ author.email }} {% endif %}
{% if author.nickname %} {{ author.nickname }} {% endif %}
{% if author.phone %} {{ author.phone }} {% endif %}
{% if author.text %} {{ author.text }} {% endif %}Availability
Attributes of object Availability
| Name | Type | Description |
|---|---|---|
| availableAmount | int | Available pieces |
| availableAmountExpectedToStorageRoom | int | Available pieces by source warehouse to be transferred to the selected warehouse (total) |
| availableAmountInShowroom | int | Available showroom pieces |
| availableAmountInStockroom | int | Available pieces in a specific stock room |
| availableAmountInStorageCenter | int | Available pieces in a specific storage center |
| availableAmountOnWayToStorageRoom | int | Available pieces by source warehouse currently in transit to the selected warehouse (total) |
| availableDemandsAmountFromSupplierToStorageRoom | int | Available pieces from supplier demand that will be available at the selected warehouse (total) |
| hours | int | Availability in hours |
| totalAmount | int | Total pieces (without deducting reservations) |
| inShowroom | bool | Is in showroom? |
| inStock | bool | Is in stock? |
| preorder | bool | Is preorder? |
| watchdogSupported | bool | Is watchdog supported? |
| deliveryOptions | DeliveryOption[] | Available delivery options with dates |
| availableAmountsExpectedToStorageRoom | ExpectedAmount[] | Available pieces by source warehouse to be transferred to the selected warehouse (list) |
| availableAmountsOnWayToStorageRoom | ExpectedAmount[] | Available pieces by source warehouse currently in transit to the selected warehouse (list) |
| availableDemandsFromSupplierToStorageRoom | ExpectedSupplierAmount[] | Available pieces from supplier demand that will be available at the selected warehouse (list) |
| text | string | null | Availability description |
| dateExpected | datetime | null | Expected restocking date |
| deliveryOption | DeliveryOption | null | Fastest delivery option |
Examples:
{{ availability.availableAmount }}
{{ availability.availableAmountExpectedToStorageRoom }}
{{ availability.availableAmountInShowroom }}
{{ availability.availableAmountInStockroom }}
{{ availability.availableAmountInStorageCenter }}
{{ availability.availableAmountOnWayToStorageRoom }}
{{ availability.availableDemandsAmountFromSupplierToStorageRoom }}
{{ availability.hours }}
{{ availability.totalAmount }}
{% if availability.inShowroom %} ... {% endif %}
{% if availability.inStock %} ... {% endif %}
{% if availability.preorder %} ... {% endif %}
{% if availability.watchdogSupported %} ... {% endif %}
{% for deliveryOption in availability.deliveryOptions %} ... {% endfor %}
{% for expectedAmount in availability.availableAmountsExpectedToStorageRoom %} ... {% endfor %}
{% for expectedAmount in availability.availableAmountsOnWayToStorageRoom %} ... {% endfor %}
{% for expectedSupplierAmount in availability.availableDemandsFromSupplierToStorageRoom %} ... {% endfor %}
{% if availability.text %} {{ availability.text }} {% endif %}
{{ availability.dateExpected|date('d. m. Y H:i') }}
{% if availability.deliveryOption %} {{ availability.deliveryOption }} {# DeliveryOption #} {% endif %}AvailableUpsellGroup
Attributes of object AvailableUpsellGroup
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| name | string | Group name |
| singleSelection | bool | Selection mode |
| upsells | Upsell[] | Available upsells |
| code | string | null | Group name |
Examples:
{{ availableupsellgroup.id }}
{{ availableupsellgroup.name }}
{% if availableupsellgroup.singleSelection %} ... {% endif %}
{% for upsell in availableupsellgroup.upsells %} ... {% endfor %}
{% if availableupsellgroup.code %} {{ availableupsellgroup.code }} {% endif %}Banner
Banner
Attributes of object Banner
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| validFrom | datetime | Valid from |
| validTo | datetime | Valid to |
| vector | bool | Vector image |
| section | BannerSection | Banner section |
| height | int | null | Height (px) |
| width | int | null | Width (px) |
| alt | string | null | Description |
| backgroundColorCode | string | null | Background color hex code |
| ctaClass | string | null | CTA class (button) |
| ctaText | string | null | CTA text (button) |
| name | string | null | Name |
| url | string | null | Url |
| urlTarget | string | null | Link open target |
| text | html | null | Text |
| image | Image | null | Image |
| product | Product | null | Product |
Examples:
{{ banner.id }}
{{ banner.validFrom|date('d. m. Y H:i') }}
{{ banner.validTo|date('d. m. Y H:i') }}
{% if banner.vector %} ... {% endif %}
{{ banner.section }} {# BannerSection #}
{% if banner.height %} {{ banner.height }} {% endif %}
{% if banner.width %} {{ banner.width }} {% endif %}
{% if banner.alt %} {{ banner.alt }} {% endif %}
{% if banner.backgroundColorCode %} {{ banner.backgroundColorCode }} {% endif %}
{% if banner.ctaClass %} {{ banner.ctaClass }} {% endif %}
{% if banner.ctaText %} {{ banner.ctaText }} {% endif %}
{% if banner.name %} {{ banner.name }} {% endif %}
{% if banner.url %} {{ banner.url }} {% endif %}
{% if banner.urlTarget %} {{ banner.urlTarget }} {% endif %}
{% if banner.text %} {{ banner.text }} {% endif %}
{% if banner.image %} {{ banner.image }} {# Image #} {% endif %}
{% if banner.product %} {{ banner.product }} {# Product #} {% endif %}BannerSection
Banner section
Attributes of object BannerSection
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| height | int | null | Height (px) |
| width | int | null | Width (px) |
| code | string | null | Section code |
| name | string | null | Name |
Examples:
{{ bannersection.id }}
{% if bannersection.height %} {{ bannersection.height }} {% endif %}
{% if bannersection.width %} {{ bannersection.width }} {% endif %}
{% if bannersection.code %} {{ bannersection.code }} {% endif %}
{% if bannersection.name %} {{ bannersection.name }} {% endif %}Brand
Attributes of object Brand
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| headline | string | Headline |
| name | string | Name |
| flagImportant | bool | Important |
| publicContacts | Address[] | Public contacts |
| categories | Category[] | Brand categories (pretty URL or classic filter) |
| url | Url | Brand URL |
| categoryUrl | Url | Brand category URL |
| code | string | null | Code |
| web | string | null | Brand website |
| text | html | null | Text |
| image | Image | null | Image |
| seo | Seo | null | SEO attributes |
| contentGrid | array | null | Content grid |
Examples:
{{ brand.id }}
{{ brand.headline }}
{{ brand.name }}
{% if brand.flagImportant %} ... {% endif %}
{% for address in brand.publicContacts %} ... {% endfor %}
{% for category in brand.categories %} ... {% endfor %}
{{ brand.url }} {# Url #}
{{ brand.categoryUrl }} {# Url #}
{% if brand.code %} {{ brand.code }} {% endif %}
{% if brand.web %} {{ brand.web }} {% endif %}
{% if brand.text %} {{ brand.text }} {% endif %}
{% if brand.image %} {{ brand.image }} {# Image #} {% endif %}
{% if brand.seo %} {{ brand.seo }} {# Seo #} {% endif %}
{% if brand.contentGrid %} {{ brand.contentGrid }} {% endif %}BrandCategory
Attributes of object BrandCategory
| Name | Type | Description |
|---|---|---|
| brand | Brand | Brand |
| category | Category | Category |
| url | Url | URL |
| parent | BrandCategory | null | Parent category |
Examples:
{{ brandcategory.brand }} {# Brand #}
{{ brandcategory.category }} {# Category #}
{{ brandcategory.url }} {# Url #}
{% if brandcategory.parent %} {{ brandcategory.parent }} {# BrandCategory #} {% endif %}Breadcrumb
Attributes of object Breadcrumb
| Name | Type | Description |
|---|---|---|
| label | string | Label |
| url | Url | null | URL (the last breadcrumb has no URL) |
Examples:
{{ breadcrumb.label }}
{% if breadcrumb.url %} {{ breadcrumb.url }} {# Url #} {% endif %}Bundle
Attributes of object Bundle
| Name | Type | Description |
|---|---|---|
| multiPack | bool | Is a multi-pack? (multiple pieces of another item) |
| parts | BundlePart[] | Bundle parts (component items) |
| price | Price | null | Bundle price (price before discount is sum of part prices) |
Examples:
{% if bundle.multiPack %} ... {% endif %}
{% for bundlePart in bundle.parts %} ... {% endfor %}
{% if bundle.price %} {{ bundle.price }} {# Price #} {% endif %}BundlePart
Attributes of object BundlePart
| Name | Type | Description |
|---|---|---|
| quantity | int | Quantity of this part in the bundle |
| item | Item | Component item (stock item) |
| product | Product | Component product |
Examples:
{{ bundlepart.quantity }}
{{ bundlepart.item }} {# Item #}
{{ bundlepart.product }} {# Product #}Category
Attributes of object Category
| Name | Type | Description |
|---|---|---|
| id | int | Internal category ID |
| productCount | int | Number of products in category (approximate) |
| productInStockCount | int | Number of products in stock in category (approximate) |
| totalStockQuantity | int | Total stock quantity in category (approximate) |
| commentType | string | Comment type for this entity |
| headline | string | Headline |
| menuName | string | Category name in menu |
| name | string | Category name |
| flagErotic | bool | Erotic |
| flagImportant | bool | Important |
| noFollow | bool | Should search engines not follow the link? In templates typically: <a href={{ category.url }} if:rel="category.noFollow ? 'nofollow'"> |
| subcategories | Category[] | Subcategories |
| url | Url | URL |
| variantType | VariantType | Variant type |
| videos | Video[] | Videos |
| pathNames | array | Path to category (names) |
| pathIds | array | Path to category (IDs) |
| templateAttribute | mixed | Category layout settings |
| subHeadline | string | null | Subheadline |
| text | html | null | Text content |
| parent | Category | null | Parent category |
| image | Image | null | Image |
| contentGrid | array | null | Content grid |
Examples:
Category breadcrumb and heading
<h1>{{ kategorie.name }}</h1>
{% if kategorie.description %}
<div>{{ kategorie.description }}</div>
{% endif %}Category subcategories
{% for child in kategorie.children %}
<a href="{{ child.url }}">
{% if child.image %}<i:img src="child.image" format="200x200" fill />{% endif %}
{{ child.name }}
</a>
{% endfor %}Comment
Attributes of object Comment
| Name | Type | Description |
|---|---|---|
| depth | int | Nesting depth |
| id | int | Id |
| date | datetime | Date |
| important | bool | Important? |
| replies | Comment[] | Replies to the post |
| rating | int | null | Rating (1 to 5) |
| authorName | string | null | Author name |
| string | null | Author email | |
| phone | string | null | Author phone |
| title | string | null | Title |
| text | html | null | Post text |
| admin | Admin | null | E-shop administrator |
Examples:
{{ comment.depth }}
{{ comment.id }}
{{ comment.date|date('d. m. Y H:i') }}
{% if comment.important %} ... {% endif %}
{% for comment in comment.replies %} ... {% endfor %}
{% if comment.rating %} {{ comment.rating }} {% endif %}
{% if comment.authorName %} {{ comment.authorName }} {% endif %}
{% if comment.email %} {{ comment.email }} {% endif %}
{% if comment.phone %} {{ comment.phone }} {% endif %}
{% if comment.title %} {{ comment.title }} {% endif %}
{% if comment.text %} {{ comment.text }} {% endif %}
{% if comment.admin %} {{ comment.admin }} {# Admin #} {% endif %}Compatibility/CompatibilityAttribute
Attributes of object Compatibility/CompatibilityAttribute
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| name | string | Name |
| values | Compatibility/CompatibilityAttributeValue[] | Values |
Examples:
{{ compatibilityattribute.id }}
{{ compatibilityattribute.name }}
{% for compatibilityAttributeValue in compatibilityattribute.values %} ... {% endfor %}Compatibility/CompatibilityAttributeValue
Compatibility attribute value
Attributes of object Compatibility/CompatibilityAttributeValue
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| attribute | Compatibility/CompatibilityAttribute | Attribute |
Examples:
{{ compatibilityattributevalue.id }}
{{ compatibilityattributevalue.name }}
{{ compatibilityattributevalue.attribute }} {# CompatibilityAttribute #}Customer
Registered customer
Attributes of object Customer
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| userPointsAvailable | int | Current loyalty program points balance |
| userPointsExpiringOn | int | Number of points expiring on a given date |
| userPointsTotal | int | Total earned loyalty program points |
| name | string | Customer name |
| dateCreated | datetime | Registration date |
| productOnWishlist | bool | Is product on wishlist? |
| vatCharged | bool | Charge VAT |
| wholesale | bool | Wholesaler |
| receipts | AccountingDocument[] | Receipts |
| address | Addresses | Addresses |
| analyticReports | AnalyticsReport[] | Analytics reports |
| childOrders | Order[] | Subordinate customer orders |
| orders | Order[] | use App/Template/Repository/TemplateEntityPaginatedCollection | Customer orders Without "page" the newest {@see self::ORDERS_LIMIT} orders are returned as a plain array. Passing "page" switches to a paginated collection that also exposes .pagination, so a template can page through the whole history instead ofrendering it in one request — a wholesale customer can have thousands of orders, and each one renders its items, which is enough to hit the execution-time limit. |
| userPointChanges | UserPointChange[] | Loyalty program points history |
| alternativeAddresses | array | Customer alternative addresses |
| loyaltyCard | string | null | Loyalty card code |
| socialLoginId | string | null | User ID in the service used for login |
Examples:
Logged-in customer greeting
{% if customer.logged %}
Welcome, {{ customer.name }}
<a href="{{ customer.logoutUrl }}">Logout</a>
{% else %}
<a href="{{ customer.loginUrl }}">Login</a>
{% endif %}DayBlock
Attributes of object DayBlock
| Name | Type | Description |
|---|---|---|
| dayName | string | Day of week name |
| dayNameShort | string | Abbreviated day of week name |
| date | datetime | Date |
| timeBlocks | TimeBlock[] | null | Opening times |
Examples:
{{ dayblock.dayName }}
{{ dayblock.dayNameShort }}
{{ dayblock.date|date('d. m. Y H:i') }}
{% for timeBlock in dayblock.timeBlocks %} ... {% endfor %}Delivery
Attributes of object Delivery
| Name | Type | Description |
|---|---|---|
| name | string | Name |
| vatRate | float | VAT rate |
| deliveryAddressRequired | bool | Is delivery address required in cart? |
| payment | Delivery/Payment | Payment method |
| transport | Delivery/Transport | Delivery method |
| price | Price | Price |
| id | int | null | ID |
| freeLimit | Order/FreeLimit | null | Free delivery threshold |
Examples:
{{ delivery.name }}
{{ delivery.vatRate }}
{% if delivery.deliveryAddressRequired %} ... {% endif %}
{{ delivery.payment }} {# Payment #}
{{ delivery.transport }} {# Transport #}
{{ delivery.price }} {# Price #}
{% if delivery.id %} {{ delivery.id }} {% endif %}
{% if delivery.freeLimit %} {{ delivery.freeLimit }} {# FreeLimit #} {% endif %}Delivery/BankAccount
Attributes of object Delivery/BankAccount
| Name | Type | Description | Example output |
|---|---|---|---|
| currency | string | Currency | |
| bankName | string | null | Bank name shown to the customer in payment instructions | Fio banka, a.s. |
| bic | string | null | BIC | |
| displayBic | string | null | BIC, but only when the customer's bank will ask for it: with an IBAN shown AND the customer paying from outside SEPA. Inside SEPA the BIC is legally superfluous (Reg. (EU) 260/2012 Art. 5(7)) and only clutters the instructions; an unknown customer country is treated as inside SEPA — most customers are EU and the row is optional extra info. | FIOBCZPP |
| displayIban | string | null | IBAN, but only when the customer actually needs it — i.e. when the local format is not usable for them (cross-border customer or an account without a local format). | CZ12 3456 7890 1234 5678 9012 |
| displayLocal | string | null | Local (domestic) account format, but only when this customer can use it: a national format is only accepted by the transfer forms of its own country's banks, so it renders for a domestic customer (account country from the IBAN prefix matches the customer country) or when the customer country is unknown. An account without an IBAN has nothing better to offer, so its local format renders for everyone. | 123456789/2010 |
| holder | string | null | Account holder (payment beneficiary) | Netbiznis s.r.o. |
| iban | string | null | IBAN | |
| local | string | null | Local format | 123456789/2010 |
| name | string | null | Internal admin-only label of the account - NOT the bank name and never safe to show a customer: a quarter of the fleet stores things like "CZK", "EUR" or a nickname here. Use bankName for payment instructions. | Fio CZK |
Examples:
{{ bankaccount }}
{{ bankaccount.currency }}
{% if bankaccount.bankName %} {{ bankaccount.bankName }} {% endif %}
{% if bankaccount.bic %} {{ bankaccount.bic }} {% endif %}
{% if bankaccount.displayBic %} {{ bankaccount.displayBic }} {% endif %}
{% if bankaccount.displayIban %} {{ bankaccount.displayIban }} {% endif %}
{% if bankaccount.displayLocal %} {{ bankaccount.displayLocal }} {% endif %}
{% if bankaccount.holder %} {{ bankaccount.holder }} {% endif %}
{% if bankaccount.iban %} {{ bankaccount.iban }} {% endif %}
{% if bankaccount.local %} {{ bankaccount.local }} {% endif %}
{% if bankaccount.name %} {{ bankaccount.name }} {% endif %}Delivery/Branch
Attributes of object Delivery/Branch
| Name | Type | Description |
|---|---|---|
| code | string | Code |
| name | string | Name |
| address | Delivery/Branch/Address | Address |
| openingHoursLines | string[] | Opening hours, one printable line per record. Carrier branches carry a single free-text openTime string, in practice a whole week glued together with literal <br> tags or newlines — it is split back apart and stripped of markup here. Own stores (StoreBranchRO) build the lines from the store's WorkingHours relation instead. |
| imageUrl | string | null | Photo of the pickup place |
| mapUrl | string | null | Map link (built from GPS; null when the branch has no coordinates) |
| phone | string | null | Phone |
| pickupInstructions | string | null | Per-place pickup instructions. Carrier branches have none; own stores (StoreBranchRO) read the store-scoped email-pickup text. |
| url | string | null | Web page of the pickup place |
Examples:
{{ branch.code }}
{{ branch.name }}
{{ branch.address }} {# Address #}
{% for item in branch.openingHoursLines %} ... {% endfor %}
{% if branch.imageUrl %} {{ branch.imageUrl }} {% endif %}
{% if branch.mapUrl %} {{ branch.mapUrl }} {% endif %}
{% if branch.phone %} {{ branch.phone }} {% endif %}
{% if branch.pickupInstructions %} {{ branch.pickupInstructions }} {% endif %}
{% if branch.url %} {{ branch.url }} {% endif %}Delivery/Branch/Address
Attributes of object Delivery/Branch/Address
| Name | Type | Description |
|---|---|---|
| city | string | null | City |
| company | string | null | Company name |
| street | string | null | Street and house number |
| country | Address/Country | null | Country |
Examples:
{{ address }}
{% if address.city %} {{ address.city }} {% endif %}
{% if address.company %} {{ address.company }} {% endif %}
{% if address.street %} {{ address.street }} {% endif %}
{% if address.country %} {{ address.country }} {# Country #} {% endif %}Delivery/Carrier
Attributes of object Delivery/Carrier
| Name | Type | Description |
|---|---|---|
| code | string | Code |
| name | string | Name |
Examples:
{{ carrier.code }}
{{ carrier.name }}Delivery/DeliveryDate
Attributes of object Delivery/DeliveryDate
| Name | Type | Description |
|---|---|---|
| dateDelivered | datetime | Delivery date to customer |
| dateSent | datetime | Shipment dispatch date |
| orderDeadline | datetime | Date and time by which the order must be placed to meet deadlines |
| timeDelivered | string | null | Delivery time to customer (e.g. "08:00-12:00") |
Examples:
{{ deliverydate.dateDelivered|date('d. m. Y H:i') }}
{{ deliverydate.dateSent|date('d. m. Y H:i') }}
{{ deliverydate.orderDeadline|date('d. m. Y H:i') }}
{% if deliverydate.timeDelivered %} {{ deliverydate.timeDelivered }} {% endif %}Delivery/PackageType
Attributes of object Delivery/PackageType
| Name | Type | Description |
|---|---|---|
| code | string | Code |
Examples:
{{ packagetype.code }}Delivery/Payment
Attributes of object Delivery/Payment
| Name | Type | Description | Example output |
|---|---|---|---|
| inputId | string | ID for binding input with label | |
| name | string | Name | Bank transfer |
| url | string | Payment URL | |
| vatRate | float | VAT rate | 21 |
| free | bool | Is free? | |
| inAdvance | bool | Is advance payment required? | |
| online | bool | Is this an online-gateway payment (card / gateway checkout)? Mirrors the legacy CSablonaPravidla::PAYMENT_ONLINE grouping exactly, i.e. TemplateRuleMatcher's in_array($order->getPayment(), ['online', 'paypal', 'ekonto']). | |
| selected | bool | Is selected? | |
| price | Price | Price | |
| code | null | string | Code | P123 |
| subcode | null | string | Sub-code | P123 |
| vs | string | null | Variable symbol | 2160001 |
| qRCodeHTML | html | null | HTML image code with QR code for bank transfer payment | |
| text | html | null | Text | |
| bankAccount | Delivery/BankAccount | null | Bank account | 111111111/2010 |
| image | Image | null | Image |
Examples:
{{ payment.inputId }}
{{ payment.name }}
{{ payment.url }}
{{ payment.vatRate }}
{% if payment.free %} ... {% endif %}
{% if payment.inAdvance %} ... {% endif %}
{% if payment.online %} ... {% endif %}
{% if payment.selected %} ... {% endif %}
{{ payment.price }} {# Price #}
{% if payment.code %} {{ payment.code }} {% endif %}
{% if payment.subcode %} {{ payment.subcode }} {% endif %}
{% if payment.vs %} {{ payment.vs }} {% endif %}
{% if payment.qRCodeHTML %} {{ payment.qRCodeHTML }} {% endif %}
{% if payment.text %} {{ payment.text }} {% endif %}
{% if payment.bankAccount %} {{ payment.bankAccount }} {# BankAccount #} {% endif %}
{% if payment.image %} {{ payment.image }} {# Image #} {% endif %}Delivery/StoreBranch
Attributes of object Delivery/StoreBranch
| Name | Type | Description |
|---|---|---|
| code | string | Code |
| name | string | Name |
| address | Delivery/Branch/Address | Address |
| openingHoursLines | string[] | Opening hours from the store's WorkingHours relation, one line per merged-day record ("Po-Pá 9:00-17:00"); closed records are skipped. |
| imageUrl | string | null | Photo of the store |
| mapUrl | string | null | Map link (built from GPS; null when the store has no coordinates) |
| phone | string | null | Phone |
| pickupInstructions | string | null | Per-place pickup instructions: the store-scoped email-pickup codedtext (spec §3.4 — unconfigured is the normal case and yields null). |
| url | string | null | Web page of the store |
Examples:
{{ storebranch.code }}
{{ storebranch.name }}
{{ storebranch.address }} {# Address #}
{% for item in storebranch.openingHoursLines %} ... {% endfor %}
{% if storebranch.imageUrl %} {{ storebranch.imageUrl }} {% endif %}
{% if storebranch.mapUrl %} {{ storebranch.mapUrl }} {% endif %}
{% if storebranch.phone %} {{ storebranch.phone }} {% endif %}
{% if storebranch.pickupInstructions %} {{ storebranch.pickupInstructions }} {% endif %}
{% if storebranch.url %} {{ storebranch.url }} {% endif %}Delivery/Transport
Attributes of object Delivery/Transport
| Name | Type | Description |
|---|---|---|
| inputId | string | ID for binding input with label |
| name | string | Name |
| vatRate | float | VAT rate |
| branchRequired | bool | Is branch required? |
| currier | bool | Is personal courier? |
| dateGuaranteed | bool | Is delivery date guaranteed? |
| deliveryToAddress | bool | Is delivery to (home) address? |
| digital | bool | Is digital? |
| free | bool | Is free? |
| pickup | bool | Is pickup? |
| selected | bool | Is selected? |
| price | Price | Price |
| text | html | null | Text |
| branch | Delivery/Branch | null | Branch |
| carrier | Delivery/Carrier | null | Carrier |
| deliveryDate | Delivery/DeliveryDate | null | Expected delivery date |
| packageType | Delivery/PackageType | null | Package type |
| image | Image | null | Image |
Examples:
{{ transport.inputId }}
{{ transport.name }}
{{ transport.vatRate }}
{% if transport.branchRequired %} ... {% endif %}
{% if transport.currier %} ... {% endif %}
{% if transport.dateGuaranteed %} ... {% endif %}
{% if transport.deliveryToAddress %} ... {% endif %}
{% if transport.digital %} ... {% endif %}
{% if transport.free %} ... {% endif %}
{% if transport.pickup %} ... {% endif %}
{% if transport.selected %} ... {% endif %}
{{ transport.price }} {# Price #}
{% if transport.text %} {{ transport.text }} {% endif %}
{% if transport.branch %} {{ transport.branch }} {# Branch #} {% endif %}
{% if transport.carrier %} {{ transport.carrier }} {# Carrier #} {% endif %}
{% if transport.deliveryDate %} {{ transport.deliveryDate }} {# DeliveryDate #} {% endif %}
{% if transport.packageType %} {{ transport.packageType }} {# PackageType #} {% endif %}
{% if transport.image %} {{ transport.image }} {# Image #} {% endif %}DeliveryOption
Attributes of object DeliveryOption
| Name | Type | Description |
|---|---|---|
| dateDelivered | datetime | Delivery date to customer |
| dateSent | datetime | Shipment dispatch date |
| orderDeadline | datetime | Date and time by which the order must be placed to meet deadlines |
| transport | Delivery/Transport | Transport |
| timeDelivered | string | null | Delivery time to customer (e.g. "08:00-12:00") |
Examples:
{{ deliveryoption.dateDelivered|date('d. m. Y H:i') }}
{{ deliveryoption.dateSent|date('d. m. Y H:i') }}
{{ deliveryoption.orderDeadline|date('d. m. Y H:i') }}
{{ deliveryoption.transport }} {# Transport #}
{% if deliveryoption.timeDelivered %} {{ deliveryoption.timeDelivered }} {% endif %}Dimensions
Attributes of object Dimensions
| Name | Type | Description |
|---|---|---|
| unit | string | Unit |
| height | float | Height |
| length | float | Depth |
| width | float | Width |
Examples:
{{ dimensions }}
{{ dimensions.unit }}
{{ dimensions.height }}
{{ dimensions.length }}
{{ dimensions.width }}DynamicCategory
Attributes of object DynamicCategory
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| dynamic | bool | Dynamic category? (always true) |
| url | Url | Brand URL |
| text | html | null | Text |
| image | Image | null | Image |
| seo | Seo | null | SEO attributes |
Examples:
{{ dynamiccategory.id }}
{{ dynamiccategory.name }}
{% if dynamiccategory.dynamic %} ... {% endif %}
{{ dynamiccategory.url }} {# Url #}
{% if dynamiccategory.text %} {{ dynamiccategory.text }} {% endif %}
{% if dynamiccategory.image %} {{ dynamiccategory.image }} {# Image #} {% endif %}
{% if dynamiccategory.seo %} {{ dynamiccategory.seo }} {# Seo #} {% endif %}EmptyOrder
Attributes of object EmptyOrder
| Name | Type | Description |
|---|---|---|
| catalogItemTotalAmount | int | Total item quantity in order |
| price | Order/Price | Total prices |
| closestFreeDelivery | Delivery | null | Closest available free delivery |
Examples:
{{ emptyorder.catalogItemTotalAmount }}
{{ emptyorder.price }} {# Price #}
{% if emptyorder.closestFreeDelivery %} {{ emptyorder.closestFreeDelivery }} {# Delivery #} {% endif %}EnumValue
Enum value
Attributes of object EnumValue
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| enum | ProductEnum | Enum |
| text | html | null | Text |
| image | Image | null | Image |
Examples:
{{ enumvalue.id }}
{{ enumvalue.name }}
{{ enumvalue.enum }} {# ProductEnum #}
{% if enumvalue.text %} {{ enumvalue.text }} {% endif %}
{% if enumvalue.image %} {{ enumvalue.image }} {# Image #} {% endif %}Event/CartItemChange
Attributes of object Event/CartItemChange
| Name | Type | Description |
|---|---|---|
| amountChange | int | Number of added/removed pieces |
| rowId | int | Order row ID for tracking deduplication |
| catalogItem | Item | Item (variant or product) |
| price | Price | Unit price |
Examples:
{{ cartitemchange.amountChange }}
{{ cartitemchange.rowId }}
{{ cartitemchange.catalogItem }} {# Item #}
{{ cartitemchange.price }} {# Price #}ExpectedAmount
Attributes of object ExpectedAmount
| Name | Type | Description |
|---|---|---|
| amount | int | Number of available pieces |
| sourceStorageRoom | StorageRoom | Source warehouse from which items are replenished |
Examples:
{{ expectedamount.amount }}
{{ expectedamount.sourceStorageRoom }} {# StorageRoom #}ExpectedSupplierAmount
Attributes of object ExpectedSupplierAmount
| Name | Type | Description |
|---|---|---|
| amount | int | Number of available pieces |
| sourceStorageCenter | StorageCenter | Destination center where the order will arrive (and items will be transferred) |
| expectedDate | datetime | null | When delivery is expected |
| orderDate | datetime | null | When the order was sent (if it was) |
Examples:
{{ expectedsupplieramount.amount }}
{{ expectedsupplieramount.sourceStorageCenter }} {# StorageCenter #}
{{ expectedsupplieramount.expectedDate|date('d. m. Y H:i') }}
{{ expectedsupplieramount.orderDate|date('d. m. Y H:i') }}File
File
Attributes of object File
| Name | Type | Description |
|---|---|---|
| bytes | int | Size in bytes |
| url | string | Url |
| usage | FileUsage | Usage type |
| mime | string | null | Mime type |
| name | string | null | Name |
Examples:
{{ file.bytes }}
{{ file.url }}
{{ file.usage }} {# FileUsage #}
{% if file.mime %} {{ file.mime }} {% endif %}
{% if file.name %} {{ file.name }} {% endif %}FileUsage
Attributes of object FileUsage
| Name | Type | Description |
|---|---|---|
| archive | bool | Archive |
| graphic | bool | Graphic |
| manual | bool | Manual |
| other | bool | Other |
| sound | bool | Sound |
| specification | bool | Specification |
Examples:
{% if fileusage.archive %} ... {% endif %}
{% if fileusage.graphic %} ... {% endif %}
{% if fileusage.manual %} ... {% endif %}
{% if fileusage.other %} ... {% endif %}
{% if fileusage.sound %} ... {% endif %}
{% if fileusage.specification %} ... {% endif %}Image
Images should not be output via <img src=, but always via the helper tag <i:img, which handles retina displays and responsiveness.
If the image does not exist, a fallback image is shown based on admin settings - existence can be checked with the "exists" attribute to optionally hide it on the site. If the object has multiple images (e.g. a gallery), they will always all exist and no check is needed.
Attributes of object Image
| Name | Type | Description |
|---|---|---|
| originalHeight | int | Height (px) of original photo |
| originalWidth | int | Width (px) of original photo |
| url | string | Image URL by parameters (for background-image only!) |
| alt | string | null | Image description or related item name |
| text | string | null | Image description |
Examples:
Image with i:img component
<i:img src="product.image" format="400x400" fill />
{{ product.image.alt }}Invoice
Attributes of object Invoice
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| code | string | Code |
Examples:
{{ invoice.id }}
{{ invoice.code }}Item
Attributes of object Item
| Name | Type | Description |
|---|---|---|
| cartAmountRequiredMultiplier | int | Cart quantity must be a multiple of this value |
| id | int | Id |
| loyaltyPointsAmount | int | Number of loyalty points earned for purchasing the item |
| name | string | Name |
| trackingId | string | ID used in feeds and tracking scripts |
| digital | bool | Digital item? |
| sellable | bool | Is sellable? (show add to cart?) |
| service | bool | Is the item a service? (non-stock item) |
| availability | Availability | Availability |
| availableUpsellGroups | AvailableUpsellGroup[] | Available upsell groups |
| product | Product | Product |
| availableUpsells | Upsell[] | Available upsell items |
| trackingIds | array | ID used in feeds and tracking scripts (product and variant) |
| storageLocations | array | Storage locations |
| packageWeight | int | null | Package weight (g) |
| code | string | null | Code |
| packageHeight | float | null | Package height (cm) |
| packageLength | float | null | Package length (cm) |
| packageWidth | float | null | Package width (cm) |
| bundle | Bundle | null | Bundle |
| cheapestDelivery | Delivery/Transport | null | Cheapest transport (does not consider cart or personal pickup) |
| freeDelivery | Delivery | null | Is delivery free? (and which one) |
| closestFreeDelivery | Delivery | null | Closest available free delivery |
| packageDimensions | Dimensions | null | Package dimensions |
| image | Image | null | Image |
| price | Price | null | Item price |
| url | Url | null | Product/variant URL |
| variant | Variant | null | Variant |
Examples:
Product item (purchasable unit) with price and availability
{{ product.item.price.current.formatted }}
{% if product.item.price.discount %}
<del>{{ product.item.price.beforeDiscount.formatted }}</del>
-{{ product.item.price.discountPercent }}%
{% endif %}
{% if product.item.available %}
<a href="{{ product.item.cartUrl }}">Add to cart</a>
{% endif %}Label
Attributes of object Label
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| code | string | null | Code for identification in template |
| colorCode | string | null | Hex color code |
| text | html | null | Configurable text field (e.g. supplementary text shown near the price); defined per shop in config.json under fields.label.text. |
| image | Image | null | Image |
Examples:
{{ label.id }}
{{ label.name }}
{% if label.code %} {{ label.code }} {% endif %}
{% if label.colorCode %} {{ label.colorCode }} {% endif %}
{% if label.text %} {{ label.text }} {% endif %}
{% if label.image %} {{ label.image }} {# Image #} {% endif %}LanguageUrl
Attributes of object LanguageUrl
| Name | Type | Description |
|---|---|---|
| url | string | Target URL |
| shop | Shop | Eshop |
| hreflang | string | null | Locale for the hreflang attribute, if available |
| shortDomain | string | null | Domain without WWW |
Examples:
{{ languageurl.url }}
{{ languageurl.shop }} {# Shop #}
{% if languageurl.hreflang %} {{ languageurl.hreflang }} {% endif %}
{% if languageurl.shortDomain %} {{ languageurl.shortDomain }} {% endif %}Link
Attributes of object Link
| Name | Type | Description |
|---|---|---|
| label | string | Link text |
| url | string | Link URL |
| title | string | null | Title |
Examples:
{{ link.label }}
{{ link.url }}
{% if link.title %} {{ link.title }} {% endif %}LoyaltyLevel
Attributes of object LoyaltyLevel
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| pointsAmount | float | Points amount |
| minimumTotalPrice | PriceValue | Minimum amount |
| maximumTotalPrice | PriceValue | Maximum amount |
Examples:
{{ loyaltylevel.id }}
{{ loyaltylevel.pointsAmount }}
{{ loyaltylevel.minimumTotalPrice }} {# PriceValue #}
{{ loyaltylevel.maximumTotalPrice }} {# PriceValue #}Order
Attributes of object Order
| Name | Type | Description |
|---|---|---|
| amountOfItem | int | Total quantity of a specific item in the order |
| catalogItemCount | int | Number of items in the order |
| catalogItemTotalAmount | int | Total quantity of pieces in the order |
| id | int | Id |
| loyaltyPoints | int | Number of loyalty points earned for the order |
| usableLoyaltyPoints | int | Number of loyalty points applicable to the order |
| language | string | Order language |
| vs | string | Variable symbol (payment reference number) |
| containsAnyOfLabels | bool | Contains item with any of the labels? |
| containsItem | bool | Contains item? |
| containsLabel | bool | Contains item with label? |
| digitalPhysicalCombination | bool | Cart contains both digital and physical items |
| erotic | bool | Does the order contain an erotic item? |
| externalReviewAllowed | bool | Did the customer consent to a satisfaction survey? |
| paid | bool | Is the order paid? |
| preOrder | bool | Does the order contain a pre-order item? |
| useLoyaltyPoints | bool | Use loyalty points? |
| useLoyaltyPointsManually | bool | Are loyalty points applied only after manual selection? |
| accountingDocuments | AccountingDocument[] | Accounting documents |
| address | Addresses | Addresses |
| availablePaymentMethods | Delivery/Payment[] | Available payment methods |
| payments | Delivery/Payment[] | Order payments |
| availableTransportMethods | Delivery/Transport[] | Available transport methods |
| delivery | Delivery | Delivery |
| catalogItems | Order/Item/CatalogItem[] | Order items (products) |
| items | Order/Item/CatalogItem[] | Order/Item/DiscountItem[] | Order items (products, discounts) |
| discountItems | Order/Item/DiscountItem[] | Discounts |
| price | Order/Price | Total prices |
| status | Order/Status | Order status |
| shop | Shop | E-shop |
| url | Url | URL for tracking order status (or cart for unsubmitted orders) |
| purchasedGiftVouchers | Voucher/GiftVoucher[] | Purchased gift vouchers |
| vouchers | Voucher/GiftVoucher[] | Applied discount codes or gift vouchers |
| code | string | null | Code |
| note | string | null | Customer note |
| returnUrl | string | null | Return wizard deep-link, or null when returns are disabled or the order is not eligible |
| date | datetime | null | Date created |
| dateInStatus | datetime | null | Date moved to current status |
| expectedShippingDate | datetime | null | Expected package shipping date (automatically calculated from availability or manually adjusted in admin) |
| customer | Customer | null | Registered customer |
| closestFreeDelivery | Delivery | null | Closest available free delivery |
| parentOrder | Order | null | Parent order |
| package | Package | null | Package |
| store | Store | null | Store for pickup |
Examples:
Cart items and totals
{% for item in cart.items %}
{{ item.name }} x {{ item.amount }} = {{ item.price.current.formatted }}
{% endfor %}
Total: {{ cart.price.current.formatted }}Discount and voucher display
{% if cart.price.discount %}
Discount: -{{ cart.price.discountValue.formatted }}
{% endif %}
{% for voucher in cart.vouchers %}
Voucher: {{ voucher.code }} (-{{ voucher.discount.formatted }})
{% endfor %}Order/DiscountCode
Attributes of object Order/DiscountCode
| Name | Type | Description |
|---|---|---|
| code | string | Code |
| name | string | Discount code name |
| validFrom | datetime | Validity start date |
| validTo | datetime | Expiration date |
Examples:
{{ discountcode.code }}
{{ discountcode.name }}
{{ discountcode.validFrom|date('d. m. Y H:i') }}
{{ discountcode.validTo|date('d. m. Y H:i') }}Order/FreeLimit
Attributes of object Order/FreeLimit
| Name | Type | Description |
|---|---|---|
| percent | int | Percentage reached of total |
| total | PriceValue | Order value to reach |
| remains | PriceValue | Amount remaining to reach free delivery |
Examples:
{{ freelimit.percent }}
{{ freelimit.total }} {# PriceValue #}
{{ freelimit.remains }} {# PriceValue #}Order/Item/CatalogItem
Attributes of object Order/Item/CatalogItem
| Name | Type | Description |
|---|---|---|
| amount | int | Quantity |
| id | int | Id |
| name | string | Item name |
| productName | string | Product name |
| trackingId | string | ID used in feeds and tracking scripts |
| vatRate | float | VAT rate (%) |
| amountChangeAllowed | bool | Is quantity change allowed? |
| catalogItem | bool | Is a catalog item? |
| deleteAllowed | bool | Is removal from order allowed? |
| discountItem | bool | Is the item a discount? |
| gift | bool | Is the item a gift? |
| availableUpsellGroups | AvailableUpsellGroup[] | Available upsell groups |
| availableConfiguratorUpsellGroups | AvailableUpsellGroup[] | Available upsell groups for customization |
| children | Order/Item/CatalogItem[] | Order/Item/DiscountItem[] | Child items (e.g. bundle parts) |
| relatedDiscounts | Order/Item/DiscountItem[] | Related order discounts for the item (e.g. applied discount codes) |
| errors | Order/Item/OrderItemError[] | Item errors (unavailable pieces, etc.) |
| price | Price | Price per unit |
| priceTotal | Price | Total price |
| availableConfigurators | ProductDesigner/ProductDesigner[] | Available configurators for customization |
| configuratorsWithResult | ProductDesigner/ProductDesigner[] | Returns available configurators that have customization results |
| availableUpsells | Upsell[] | Available upsell items |
| trackingIds | array | ID used in feeds and tracking scripts (variant and product) |
| code | string | null | Item code |
| note | string | null | Note |
| variantName | string | null | Variant name |
| image | Image | null | Item image |
| item | Item | null | Item (purchasable unit) |
| product | Product | null | Product |
| unit | Unit | null | Unit of measure |
| upsell | Upsell | null | Is the item an upsell? |
| variant | Variant | null | Variant |
Examples:
{{ catalogitem.amount }}
{{ catalogitem.id }}
{{ catalogitem.name }}
{{ catalogitem.productName }}
{{ catalogitem.trackingId }}
{{ catalogitem.vatRate }}
{% if catalogitem.amountChangeAllowed %} ... {% endif %}
{% if catalogitem.catalogItem %} ... {% endif %}
{% if catalogitem.deleteAllowed %} ... {% endif %}
{% if catalogitem.discountItem %} ... {% endif %}
{% if catalogitem.gift %} ... {% endif %}
{% for availableUpsellGroup in catalogitem.availableUpsellGroups %} ... {% endfor %}
{% for availableUpsellGroup in catalogitem.availableConfiguratorUpsellGroups %} ... {% endfor %}
{% for catalogItem in catalogitem.children %} ... {% endfor %}
{% for discountItem in catalogitem.relatedDiscounts %} ... {% endfor %}
{% for orderItemError in catalogitem.errors %} ... {% endfor %}
{{ catalogitem.price }} {# Price #}
{{ catalogitem.priceTotal }} {# Price #}
{% for productDesigner in catalogitem.availableConfigurators %} ... {% endfor %}
{% for productDesigner in catalogitem.configuratorsWithResult %} ... {% endfor %}
{% for upsell in catalogitem.availableUpsells %} ... {% endfor %}
{{ catalogitem.trackingIds }}
{% if catalogitem.code %} {{ catalogitem.code }} {% endif %}
{% if catalogitem.note %} {{ catalogitem.note }} {% endif %}
{% if catalogitem.variantName %} {{ catalogitem.variantName }} {% endif %}
{% if catalogitem.image %} {{ catalogitem.image }} {# Image #} {% endif %}
{% if catalogitem.item %} {{ catalogitem.item }} {# Item #} {% endif %}
{% if catalogitem.product %} {{ catalogitem.product }} {# Product #} {% endif %}
{% if catalogitem.unit %} {{ catalogitem.unit }} {# Unit #} {% endif %}
{% if catalogitem.upsell %} {{ catalogitem.upsell }} {# Upsell #} {% endif %}
{% if catalogitem.variant %} {{ catalogitem.variant }} {# Variant #} {% endif %}Order/Item/DiscountItem
Attributes of object Order/Item/DiscountItem
| Name | Type | Description |
|---|---|---|
| amount | int | Quantity |
| id | int | Discount ID |
| name | string | Discount name |
| vatRate | float | VAT rate (%) |
| amountChangeAllowed | bool | Is quantity change allowed? |
| catalogItem | bool | Is a catalog item? |
| deleteAllowed | bool | Is removal from order allowed? |
| discountItem | bool | Is a discount item? |
| children | Order/Item/DiscountItem[] | Child items (e.g. bundle parts) |
| note | string | null | Note |
| trackingId | null | string | ID for tracking codes |
| percent | float | null | Value in percent (only if discount was created as percentage) |
| discountCode | Order/DiscountCode | null | Discount code |
| voucher | Order/Voucher | null | Discount code / gift voucher |
| price | Price | null | Discount value |
| priceTotal | Price | null | Total price |
| unit | Unit | null | Quantity unit |
Examples:
{{ discountitem.amount }}
{{ discountitem.id }}
{{ discountitem.name }}
{{ discountitem.vatRate }}
{% if discountitem.amountChangeAllowed %} ... {% endif %}
{% if discountitem.catalogItem %} ... {% endif %}
{% if discountitem.deleteAllowed %} ... {% endif %}
{% if discountitem.discountItem %} ... {% endif %}
{% for discountItem in discountitem.children %} ... {% endfor %}
{% if discountitem.note %} {{ discountitem.note }} {% endif %}
{% if discountitem.trackingId %} {{ discountitem.trackingId }} {% endif %}
{% if discountitem.percent %} {{ discountitem.percent }} {% endif %}
{% if discountitem.discountCode %} {{ discountitem.discountCode }} {# DiscountCode #} {% endif %}
{% if discountitem.voucher %} {{ discountitem.voucher }} {# Voucher #} {% endif %}
{% if discountitem.price %} {{ discountitem.price }} {# Price #} {% endif %}
{% if discountitem.priceTotal %} {{ discountitem.priceTotal }} {# Price #} {% endif %}
{% if discountitem.unit %} {{ discountitem.unit }} {# Unit #} {% endif %}Order/Item/OrderItemError
Attributes of object Order/Item/OrderItemError
| Name | Type | Description |
|---|---|---|
| recommendedAmount | int | Recommended valid quantity |
| code | string | Error code |
| itemName | string | Problematic item name |
| message | string | Error message |
Examples:
{{ orderitemerror.recommendedAmount }}
{{ orderitemerror.code }}
{{ orderitemerror.itemName }}
{{ orderitemerror.message }}Order/Price
Attributes of object Order/Price
| Name | Type | Description |
|---|---|---|
| total | PriceValue | Total value |
| unpaid | PriceValue | Total amount due |
| paid | PriceValue | Total paid |
Examples:
{{ price.total }} {# PriceValue #}
{{ price.unpaid }} {# PriceValue #}
{{ price.paid }} {# PriceValue #}Order/Status
Attributes of object Order/Status
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| name | string | Name |
Examples:
{{ status.id }}
{{ status.name }}Order/Voucher
Attributes of object Order/Voucher
| Name | Type | Description |
|---|---|---|
| code | string | Code |
| validTo | datetime | Expiration date |
Examples:
{{ voucher.code }}
{{ voucher.validTo|date('d. m. Y H:i') }}Order/ZeroPrice
Attributes of object Order/ZeroPrice
| Name | Type | Description |
|---|---|---|
| total | PriceValue | Total value |
| unpaid | PriceValue | Total amount due |
| paid | PriceValue | Total paid |
Examples:
{{ zeroprice.total }} {# PriceValue #}
{{ zeroprice.unpaid }} {# PriceValue #}
{{ zeroprice.paid }} {# PriceValue #}Package
Attributes of object Package
| Name | Type | Description |
|---|---|---|
| parcelCount | int | Number of parcels |
| date | datetime | Dispatch date |
| history | PackageHistory[] | List of package delivery history records |
| status | PackageStatus | Package status |
| code | string | null | Code |
| trackingUrl | string | null | Tracking URL |
Examples:
{{ package.parcelCount }}
{{ package.date|date('d. m. Y H:i') }}
{% for packageHistory in package.history %} ... {% endfor %}
{{ package.status }} {# PackageStatus #}
{% if package.code %} {{ package.code }} {% endif %}
{% if package.trackingUrl %} {{ package.trackingUrl }} {% endif %}PackageHistory
Attributes of object PackageHistory
| Name | Type | Description |
|---|---|---|
| date | datetime | Change date |
| delivered | bool | Delivered |
| deposited | bool | Deposited at branch |
| inTransit | bool | In transit |
| notification | bool | General notification |
| returned | bool | Returned to e-shop |
| description | string | null | Description from carrier |
Examples:
{{ packagehistory.date|date('d. m. Y H:i') }}
{% if packagehistory.delivered %} ... {% endif %}
{% if packagehistory.deposited %} ... {% endif %}
{% if packagehistory.inTransit %} ... {% endif %}
{% if packagehistory.notification %} ... {% endif %}
{% if packagehistory.returned %} ... {% endif %}
{% if packagehistory.description %} {{ packagehistory.description }} {% endif %}PackageStatus
Attributes of object PackageStatus
| Name | Type | Description |
|---|---|---|
| delivered | bool | Has the package been delivered? |
| deposited | bool | Is the package deposited? |
| inTransit | bool | Is the package in transit? |
| returned | bool | Has the package been returned? (uncollected/refused) |
Examples:
{% if packagestatus.delivered %} ... {% endif %}
{% if packagestatus.deposited %} ... {% endif %}
{% if packagestatus.inTransit %} ... {% endif %}
{% if packagestatus.returned %} ... {% endif %}Pagination
Attributes of object Pagination
| Name | Type | Description |
|---|---|---|
| currentPage | int | Current page number |
| nextPageResultCount | int | Number of results on next page |
| pageCount | int | Number of available pages |
| perPage | int | Results per page (maximum) |
| resultsFrom | int | Starting result number |
| resultsTo | int | Ending result number |
| totalResults | int | Total number of results |
| html | html | HTML page links |
| nextPageUrl | string | null | Next page URL |
Examples:
{{ pagination.currentPage }}
{{ pagination.nextPageResultCount }}
{{ pagination.pageCount }}
{{ pagination.perPage }}
{{ pagination.resultsFrom }}
{{ pagination.resultsTo }}
{{ pagination.totalResults }}
{{ pagination.html }}
{% if pagination.nextPageUrl %} {{ pagination.nextPageUrl }} {% endif %}Payment
Attributes of object Payment
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| amount | PriceValue | Amount |
| text | string | null | Payment description |
Examples:
{{ payment.id }}
{{ payment.name }}
{{ payment.amount }} {# PriceValue #}
{% if payment.text %} {{ payment.text }} {% endif %}PaymentCalculator
Attributes of object PaymentCalculator
| Name | Type | Description |
|---|---|---|
| url | string | Calculator URL |
| windowJavascript | string | JavaScript to open calculator window |
Examples:
{{ paymentcalculator.url }}
{{ paymentcalculator.windowJavascript }}PaymentCalculators
Attributes of object PaymentCalculators
| Name | Type | Description |
|---|---|---|
| essox | PaymentCalculator | null | Essox installment calculator |
| homecredit | PaymentCalculator | null | Homecredit installment calculator |
| homecreditSK | PaymentCalculator | null | Homecredit SK installment calculator |
| santander | PaymentCalculator | null | Santander installment calculator |
| cofidis | PaymentCalculator | null | Cofidis installment calculator |
| cofidisHU | PaymentCalculator | null | Cofidis HU installment calculator |
Examples:
{% if paymentcalculators.essox %} {{ paymentcalculators.essox }} {# PaymentCalculator #} {% endif %}
{% if paymentcalculators.homecredit %} {{ paymentcalculators.homecredit }} {# PaymentCalculator #} {% endif %}
{% if paymentcalculators.homecreditSK %} {{ paymentcalculators.homecreditSK }} {# PaymentCalculator #} {% endif %}
{% if paymentcalculators.santander %} {{ paymentcalculators.santander }} {# PaymentCalculator #} {% endif %}
{% if paymentcalculators.cofidis %} {{ paymentcalculators.cofidis }} {# PaymentCalculator #} {% endif %}
{% if paymentcalculators.cofidisHU %} {{ paymentcalculators.cofidisHU }} {# PaymentCalculator #} {% endif %}Price
Attributes of object Price
| Name | Type | Description |
|---|---|---|
| vatRate | float | VAT rate |
| current | PriceValue | Price |
| discountPercent | int | null | Discount (percentage) |
| discountValidTo | datetime | null | Discount expiry date (null if no discount or date is far away) |
| beforeDiscount | PriceValue | null | Price before discount |
| discount | PriceValue | null | Discount (amount) |
Examples:
{{ price.vatRate }}
{{ price.current }} {# PriceValue #}
{% if price.discountPercent %} {{ price.discountPercent }} {% endif %}
{{ price.discountValidTo|date('d. m. Y H:i') }}
{% if price.beforeDiscount %} {{ price.beforeDiscount }} {# PriceValue #} {% endif %}
{% if price.discount %} {{ price.discount }} {# PriceValue #} {% endif %}PriceValue
Attributes of object PriceValue
| Name | Type | Description |
|---|---|---|
| currency | string | Currency |
| currencySymbol | string | Currency symbol (e.g. Kč) |
| formatted | string | Formatted output (e.g. 1 123 Kč) |
| formattedValue | string | Formatted value without the currency symbol (e.g. 1 123) |
| value | float | Value |
| currencySymbolBefore | bool | Whether the currency symbol belongs before the value ($10) instead of after it (10 Kč) |
| perUnit | UnitPrice | null | Price per base volume unit |
Examples:
{{ pricevalue.currency }}
{{ pricevalue.currencySymbol }}
{{ pricevalue.formatted }}
{{ pricevalue.formattedValue }}
{{ pricevalue.value }}
{% if pricevalue.currencySymbolBefore %} ... {% endif %}
{% if pricevalue.perUnit %} {{ pricevalue.perUnit }} {# UnitPrice #} {% endif %}PrintedLabel
Attributes of object PrintedLabel
| Name | Type | Description |
|---|---|---|
| quantity | int | Label count |
| barcodeContent | string | Barcode content |
| name | string | Item name (including variant name) |
| productName | string | Product name |
| qrDataUri | string | QR code with fixed item URL (redirects to current and allows additional tracking) |
| shortUrl | string | Short URL for QR code (redirects to current URL) |
| visibleCode | string | Visible code |
| item | Item | Stock item |
| product | Product | Product (with selected variant) |
| secondVisibleCode | string | null | Second visible code |
| variantName | string | null | Variant system name |
| price | Price | null | Price (if to be displayed) |
Examples:
{{ printedlabel.quantity }}
{{ printedlabel.barcodeContent }}
{{ printedlabel.name }}
{{ printedlabel.productName }}
{{ printedlabel.qrDataUri }}
{{ printedlabel.shortUrl }}
{{ printedlabel.visibleCode }}
{{ printedlabel.item }} {# Item #}
{{ printedlabel.product }} {# Product #}
{% if printedlabel.secondVisibleCode %} {{ printedlabel.secondVisibleCode }} {% endif %}
{% if printedlabel.variantName %} {{ printedlabel.variantName }} {% endif %}
{% if printedlabel.price %} {{ printedlabel.price }} {# Price #} {% endif %}Product
Attributes of object Product
| Name | Type | Description |
|---|---|---|
| id | int | Internal product ID |
| commentType | string | Comment type for this entity |
| name | string | Product name |
| trackingId | string | ID used in feeds and tracking scripts |
| dateCreated | datetime | Date created |
| active | bool | Active |
| compared | bool | Is in comparison list? |
| differentVariantPrices | bool | Do variants have different prices? |
| flagNew | bool | New product |
| flagPromo | bool | Promo / on sale |
| flagSecondHand | bool | Second-hand goods |
| flagSellout | bool | Clearance sale |
| otherDiscountApplicable | bool | Can a coupon or user discount be applied? |
| soldSeparately | bool | Sold separately |
| publicContacts | Address[] | Public contacts |
| attributes | Attribute/AttributeInstance[] | Attributes and values |
| availableUpsellGroups | AvailableUpsellGroup[] | Available upsell groups |
| category | Category | Main category |
| categories | Category[] | Categories |
| otherCategories | Category[] | Other categories |
| files | File[] | Files (manuals, specifications, ...) |
| images | Image[] | Images |
| imagesWithEnumValue | Image[] | Images with enum value |
| images360 | Image[] | Images for 360° view |
| currentImages | Image[] | Images with the currently displayed enum value |
| imagesWithoutEnumValue | Image[] | Images without enum value |
| otherImages | Image[] | Other images |
| item | Item | Item (purchasable unit) |
| labels | Label[] | Labels (indexed by code) |
| configurators | ProductDesigner/ProductDesigner[] | Available configurators for customization |
| enumValues | ProductEnumValue[] | Enum values |
| packTemplateProducts | Product[] | Products for set selection |
| rating | Rating | Rating |
| availableUpsells | Upsell[] | Available upsell items |
| canonicalUrl | Url | Product URL without the user-selected ?varianta=/?enum= parameters that getUrl() appends — the address of the product itself, e.g. for the canonical link. |
| url | Url | Product URL |
| variantChoiceSteps | VariantChoiceStep[] | Variant selection steps |
| currentVariants | Variant[] | Variants with the currently displayed enum value |
| variants | Variant[] | Variants |
| variantsWithEnumValueIds | Variant[] | Variants filtered by enum values (each variant will have all values) |
| variantType | VariantType | Variant type |
| videos | Video[] | Videos |
| trackingIds | array | ID used in feeds and tracking scripts - including all variants |
| currentSubName | string | null | Current selection name (color name, selected variant, ...) |
| nameSuffix | string | null | Name suffix |
| nameSupplier | string | null | Supplier name |
| text | html | null | Text |
| attribute | Attribute/AttributeInstance | null | Attribute with values |
| brand | Brand | null | Brand |
| image | Image | null | Product image |
| imageForEnumValueId | Image | null | Product image for enum value or fallback |
| successor | Product | null | Successor product |
| seo | Seo | null | SEO attributes |
| supplier | Supplier | null | Supplier |
| unit | Unit | null | Unit of measure |
| variant | Variant | null | Main variant |
| warranty | Warranty | null | Warranty |
| contentGrid | array | null | Content grid |
Examples:
Product card with price and image
{{ product.name }}
<i:img src="product.image" format="359x479" fill />
{{ product.item.price.current.formatted }}
{% if product.item.price.discount %}
<del>{{ product.item.price.beforeDiscount.formatted }}</del>
{% endif %}Product labels and brand link
{% for label in product.labels %}
<span style="background: {{ label.color }}">{{ label.name }}</span>
{% endfor %}
{% if product.brand %}
<a href="{{ product.brand.url }}">{{ product.brand.name }}</a>
{% endif %}Product availability and add-to-cart
{% if product.item.available %}
<span>{{ product.item.availability.text }}</span>
<a href="{{ product.item.cartUrl }}">Add to cart</a>
{% else %}
<span>{{ product.item.availability.text }}</span>
{% endif %}ProductDesigner/ProductDesigner
Attributes of object ProductDesigner/ProductDesigner
| Name | Type | Description |
|---|---|---|
| name | string | Item name |
| upsell | Upsell | Upsell |
| result | ProductDesigner/ProductDesignerResult | null | Finished design from customer (images, prices, ...) |
Examples:
{{ productdesigner.name }}
{{ productdesigner.upsell }} {# Upsell #}
{% if productdesigner.result %} {{ productdesigner.result }} {# ProductDesignerResult #} {% endif %}ProductDesigner/ProductDesignerResult
Attributes of object ProductDesigner/ProductDesignerResult
| Name | Type | Description |
|---|---|---|
| imageUrl | string | Preview URL |
| uuid | string | Result identifier |
| price | PriceValue | Design price |
| parts | ProductDesigner/ProductDesignerResultPart[] | Design parts |
Examples:
{{ productdesignerresult.imageUrl }}
{{ productdesignerresult.uuid }}
{{ productdesignerresult.price }} {# PriceValue #}
{% for productDesignerResultPart in productdesignerresult.parts %} ... {% endfor %}ProductDesigner/ProductDesignerResultPart
Attributes of object ProductDesigner/ProductDesignerResultPart
| Name | Type | Description |
|---|---|---|
| imageUrl | string | Image URL |
| label | string | Design part name |
Examples:
{{ productdesignerresultpart.imageUrl }}
{{ productdesignerresultpart.label }}ProductEnum
Enum
Attributes of object ProductEnum
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| values | EnumValue[] | Values |
| text | html | null | Text |
| meaning | AttributeMeaning | null | Meaning |
Examples:
{{ productenum.id }}
{{ productenum.name }}
{% for enumValue in productenum.values %} ... {% endfor %}
{% if productenum.text %} {{ productenum.text }} {% endif %}
{% if productenum.meaning %} {{ productenum.meaning }} {# AttributeMeaning #} {% endif %}ProductEnumValue
Product enum value
Attributes of object ProductEnumValue
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| selected | bool | Is value selected? (by filter, ...) |
| enum | ProductEnum | Enum |
| url | Url | Product URL with highlighted value |
| variants | Variant[] | array | Product variants with enum value |
| text | html | null | Text |
| image | Image | null | Image |
| variantImage | Image | null | Variant image |
Examples:
{{ productenumvalue.id }}
{{ productenumvalue.name }}
{% if productenumvalue.selected %} ... {% endif %}
{{ productenumvalue.enum }} {# ProductEnum #}
{{ productenumvalue.url }} {# Url #}
{% for variant in productenumvalue.variants %} ... {% endfor %}
{% if productenumvalue.text %} {{ productenumvalue.text }} {% endif %}
{% if productenumvalue.image %} {{ productenumvalue.image }} {# Image #} {% endif %}
{% if productenumvalue.variantImage %} {{ productenumvalue.variantImage }} {# Image #} {% endif %}ProductMatcher
Attributes of object ProductMatcher
| Name | Type | Description |
|---|---|---|
| matches | bool | Does product match rules? Does order contain product matching rules? |
Examples:
{% if productmatcher.matches %} ... {% endif %}Rating
Attributes of object Rating
| Name | Type | Description |
|---|---|---|
| count | int | Number of votes |
| voted | bool | Can vote? |
| average | float | null | Average rating |
Examples:
{{ rating.count }}
{% if rating.voted %} ... {% endif %}
{% if rating.average %} {{ rating.average }} {% endif %}Reclaim
Attributes of object Reclaim
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| code | string | Code |
| handoverType | string | Handover method ('prodejna'/'posta'), null when not captured |
| productCode | string | Product code |
| reportingType | string | Reporting method |
| purchaseDate | datetime | Purchase date |
| status | RepairJob/Status | Reclaim status |
| preferredSolutionCodes | array | Preferred resolutions |
| closingDescription | string | null | Shop's closing statement (vyjádření). |
| defectDescription | string | null | Customer-described defect. |
| documentNote | string | null | The customer's own case identifier (a wholesale buyer's RMA number) |
| productName | string | null | Claimed product name — the free-text zbozi_nazev legacy emails print, not the (possibly missing) linked Product. |
| solutionLabel | string | null | Verdict label in the case's language; null until the claim is closed. |
| incomingDate | datetime | null | Incoming date |
| statutoryDeadline | datetime | null | Statutory 30-day handling deadline (§ 19 z. 634/1992 Sb.) from the incoming date; null before the goods arrive. |
| brand | Brand | null | Brand |
| pickupPlace | Delivery/StoreBranch | null | Store where the claim is picked up — the store the claim was received at. Null for claims not filed at a store; the reclaim-pickup block hides itself then, and never guesses among the shop's stores. |
| invoice | Invoice | null | Receipt |
| order | Order | null | Order the claim belongs to — null for walk-in claims created without one ( reklamace.objednavka_id IS nullable, even though Reclaim::getOrder()is typed non-null and therefore throws a TypeError on such a row). |
| product | Product | null | Product |
| store | Store | null | Store |
| supplier | Supplier | null | Supplier |
Examples:
{{ reclaim.id }}
{{ reclaim.code }}
{{ reclaim.handoverType }}
{{ reclaim.productCode }}
{{ reclaim.reportingType }}
{{ reclaim.purchaseDate|date('d. m. Y H:i') }}
{{ reclaim.status }} {# Status #}
{{ reclaim.preferredSolutionCodes }}
{% if reclaim.closingDescription %} {{ reclaim.closingDescription }} {% endif %}
{% if reclaim.defectDescription %} {{ reclaim.defectDescription }} {% endif %}
{% if reclaim.documentNote %} {{ reclaim.documentNote }} {% endif %}
{% if reclaim.productName %} {{ reclaim.productName }} {% endif %}
{% if reclaim.solutionLabel %} {{ reclaim.solutionLabel }} {% endif %}
{{ reclaim.incomingDate|date('d. m. Y H:i') }}
{{ reclaim.statutoryDeadline|date('d. m. Y H:i') }}
{% if reclaim.brand %} {{ reclaim.brand }} {# Brand #} {% endif %}
{% if reclaim.pickupPlace %} {{ reclaim.pickupPlace }} {# StoreBranch #} {% endif %}
{% if reclaim.invoice %} {{ reclaim.invoice }} {# Invoice #} {% endif %}
{% if reclaim.order %} {{ reclaim.order }} {# Order #} {% endif %}
{% if reclaim.product %} {{ reclaim.product }} {# Product #} {% endif %}
{% if reclaim.store %} {{ reclaim.store }} {# Store #} {% endif %}
{% if reclaim.supplier %} {{ reclaim.supplier }} {# Supplier #} {% endif %}RepairJob
Attributes of object RepairJob
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| code | string | Code |
| parts | use App/Entity/RepairJobItem[] | Used parts |
| works | use App/Entity/RepairJobItem[] | Labor |
| closingDescription | string | null | Closing summary (uzavření). |
| productName | string | null | Serviced item name. |
| productStatus | string | null | Item condition as recorded at intake (zbozi_stav). |
| total | string | null | Formatted parts + works total — the legacy "vyřízen" email's "Celková cena služeb a materiálu" line. Null without items. serviskos.serviskos_cena and serviskos_ks are both nullable whileRepairJobItem::getPrice()/getAmount() are typed float, so an unpricedrow throws a TypeError instead of returning null. Such a row is skipped: it was never priced, so it can only contribute 0 to the sum. If no row is priced the total is unknown, not zero — return null so the partial hides the price row instead of promising "0 Kč". |
| date | datetime | null | Intake date. |
| pickupDate | datetime | null | Pickup date. |
| order | Order | null | Linked order — null for walk-in repairs. |
| status | RepairJob/Status | null | Repair job status — null when serviska_stav is NULL, which is a legalrow state ( RepairJob::getStatus(): ?RepairJobStatusType). The servicepartial hides its status row on null rather than fataling the send. |
Examples:
{{ repairjob.id }}
{{ repairjob.code }}
{% for item in repairjob.parts %} ... {% endfor %}
{% for item in repairjob.works %} ... {% endfor %}
{% if repairjob.closingDescription %} {{ repairjob.closingDescription }} {% endif %}
{% if repairjob.productName %} {{ repairjob.productName }} {% endif %}
{% if repairjob.productStatus %} {{ repairjob.productStatus }} {% endif %}
{% if repairjob.total %} {{ repairjob.total }} {% endif %}
{{ repairjob.date|date('d. m. Y H:i') }}
{{ repairjob.pickupDate|date('d. m. Y H:i') }}
{% if repairjob.order %} {{ repairjob.order }} {# Order #} {% endif %}
{% if repairjob.status %} {{ repairjob.status }} {# Status #} {% endif %}RepairJob/Status
Attributes of object RepairJob/Status
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| name | string | Name |
Examples:
{{ status.id }}
{{ status.name }}RepairJobItem
Attributes of object RepairJobItem
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| amount | float | Quantity |
| vatRate | float | VAT rate (%) |
| price | Price | Unit price |
| item | Item | null | Item |
Examples:
{{ repairjobitem.id }}
{{ repairjobitem.amount }}
{{ repairjobitem.vatRate }}
{{ repairjobitem.price }} {# Price #}
{% if repairjobitem.item %} {{ repairjobitem.item }} {# Item #} {% endif %}ReturnCase
Attributes of object ReturnCase
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| code | string | Code |
| stateLabel | string | Customer-language state label via texty (emailtpl_return_state_<value>). DRAFT has no key (a draft is never emailed) and falls back to the raw value. |
| typeLabel | string | "Vratka" vs "reklamace" vs "nedoručená zásilka" via texty; empty string when the row predates the type column. |
| createdDate | datetime | Creation date |
| items | ReturnCaseItem[] | Returned items |
| state | use App/Entity/Returns/ReturnStateType | Return state (enum) — exposes the state-machine value so Twig templates can branch on it (e.g. {% if return.state.value == 'awaiting-payment' %}). |
| refundAccountNumber | string | null | The customer's refund account from the wizard — NOT getPaymentBankAccount(), which is the shop's fee-collection account (the opposite direction). |
| shipmentCarrierCode | string | null | Carrier code of the latest shipment (e.g. zasilkovna, customer, osobne). |
| shipmentPIN | string | null | Shipment submission PIN |
| shippingFee | string | null | Paid-return shipping fee in the shipping-fee Order's currency (the return's purchase currency) — the {@see getShippingOrder} the email pairs this amount with is charged in that currency, so the stored main-currency value must be converted to match ({@see Returns::getChargedShippingFeeInPurchaseCurrency}). Null unless the return is UPFRONT, the only mode with a customer-paid fee Order. |
| incomingDate | datetime | null | Incoming date |
| shipmentHandInDeadline | datetime | null | ČP hand-in deadline (sendData acceptance + 7 days, ČP's POZR expiry). Null for carriers without one — the deadline is a ČP business rule, so it is only ever computed for ČP shipments, even if another carrier starts filling carrier_accepted_at. |
| paymentBankAccount | Delivery/BankAccount | null | Bank account the customer should wire the shipping fee to — looked up via the currency of the linked shipping Order (falls back to default currency). Null if no matching account is configured. |
| invoice | Invoice | null | Receipt. Null for order-backed returns (shipped-but-uninvoiced orders) — Twig text templates referencing return.invoice.* render empty there. |
| order | Order | null | Order behind the case — direct for order-backed returns, else via the invoice. Null only when neither resolves. |
| shippingOrder | ReturnShippingOrder | null | Synthetic shipping-fee Order holding the variable symbol and payment-gateway hash. Null for non-UPFRONT returns. Exposed as a minimal RO so Twig can reach .variableSymbol / .hash without pulling in the full OrderROsurface. |
Examples:
{{ returncase.id }}
{{ returncase.code }}
{{ returncase.stateLabel }}
{{ returncase.typeLabel }}
{{ returncase.createdDate|date('d. m. Y H:i') }}
{% for returnCaseItem in returncase.items %} ... {% endfor %}
{{ returncase.state }}
{% if returncase.refundAccountNumber %} {{ returncase.refundAccountNumber }} {% endif %}
{% if returncase.shipmentCarrierCode %} {{ returncase.shipmentCarrierCode }} {% endif %}
{% if returncase.shipmentPIN %} {{ returncase.shipmentPIN }} {% endif %}
{% if returncase.shippingFee %} {{ returncase.shippingFee }} {% endif %}
{{ returncase.incomingDate|date('d. m. Y H:i') }}
{{ returncase.shipmentHandInDeadline|date('d. m. Y H:i') }}
{% if returncase.paymentBankAccount %} {{ returncase.paymentBankAccount }} {# BankAccount #} {% endif %}
{% if returncase.invoice %} {{ returncase.invoice }} {# Invoice #} {% endif %}
{% if returncase.order %} {{ returncase.order }} {# Order #} {% endif %}
{% if returncase.shippingOrder %} {{ returncase.shippingOrder }} {# ReturnShippingOrder #} {% endif %}ReturnCaseItem
Attributes of object ReturnCaseItem
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| quantity | int | Returned item quantity |
| name | string | Returned item name — invoice line name, or the order line name for order-backed returns (shipped-but-uninvoiced orders). |
| code | string | null | Code — from whichever purchase line (invoice or order) backs the row; null when the line no longer references a catalog item. |
| note | string | null | Customer's per-item note from the wizard. |
| reasonLabel | string | null | Return reason in the case's language. Null without a reason (RETURN-type rows are reason-optional), without a translation for the language, or for legacy constructions that predate the context parameter. |
Examples:
{{ returncaseitem.id }}
{{ returncaseitem.quantity }}
{{ returncaseitem.name }}
{% if returncaseitem.code %} {{ returncaseitem.code }} {% endif %}
{% if returncaseitem.note %} {{ returncaseitem.note }} {% endif %}
{% if returncaseitem.reasonLabel %} {{ returncaseitem.reasonLabel }} {% endif %}ReturnShippingOrder
Minimal read-object exposing the fields of the synthetic return-shipping Order that email templates need — variable symbol, hash, gateway URL. Avoids pulling the full OrderRO surface (which assumes a user-facing order and exposes delivery/customer/vouchers the return-fee flow doesn't have).
Attributes of object ReturnShippingOrder
| Name | Type | Description |
|---|---|---|
| code | string | Order code (e.g. R240001). |
| currency | string | Currency of the order (e.g. CZK, EUR). |
| hash | string | Order hash — used to build gateway redirect URLs like/transakce-<hash>-<subtype>. |
| paymentUrl | string | Absolute URL to the legacy /transakce-<hash>-<subtype> payment-gatewayentry point, or null when no payment subtype is configured. Mirrors ReturnController::buildPaymentGatewayUrl() — there is noURL helper for the payment-start URL here, so we assemble the URL directly rather than via UrlGeneratorInterface. |
| variableSymbol | string | Variable symbol for bank transfer. Falls back to the order code when no explicit VS was set — mirrors Order::getVs(). |
| vs | string | Alias for variableSymbol — matches the Twig convention used elsewhere. |
Examples:
{{ returnshippingorder.code }}
{{ returnshippingorder.currency }}
{{ returnshippingorder.hash }}
{{ returnshippingorder.paymentUrl }}
{{ returnshippingorder.variableSymbol }}
{{ returnshippingorder.vs }}Review
Attributes of object Review
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| date | datetime | Date |
| images | Image[] | Images |
| rating | int | null | Rating |
| ratingCommunication | int | null | Store communication rating |
| ratingDeliveryTime | int | null | Delivery time rating |
| ratingTransportQuality | int | null | Delivery quality rating |
| ratingWebUsability | int | null | Website usability rating |
| cons | string | null | Cons |
| string | null | ||
| name | string | null | Name |
| pros | string | null | Pros |
| ratingReaction | string | null | Store reaction |
| reply | string | null | Public store reply |
| text | string | null | Review text |
| replyDate | datetime | null | Public store reply date |
| recommends | bool | null | Store recommendation |
| product | Product | null | Reviewed product (only for product reviews, null otherwise) |
Examples:
{{ review.id }}
{{ review.date|date('d. m. Y H:i') }}
{% for image in review.images %} ... {% endfor %}
{% if review.rating %} {{ review.rating }} {% endif %}
{% if review.ratingCommunication %} {{ review.ratingCommunication }} {% endif %}
{% if review.ratingDeliveryTime %} {{ review.ratingDeliveryTime }} {% endif %}
{% if review.ratingTransportQuality %} {{ review.ratingTransportQuality }} {% endif %}
{% if review.ratingWebUsability %} {{ review.ratingWebUsability }} {% endif %}
{% if review.cons %} {{ review.cons }} {% endif %}
{% if review.email %} {{ review.email }} {% endif %}
{% if review.name %} {{ review.name }} {% endif %}
{% if review.pros %} {{ review.pros }} {% endif %}
{% if review.ratingReaction %} {{ review.ratingReaction }} {% endif %}
{% if review.reply %} {{ review.reply }} {% endif %}
{% if review.text %} {{ review.text }} {% endif %}
{{ review.replyDate|date('d. m. Y H:i') }}
{% if review.recommends %} ... {% endif %}
{% if review.product %} {{ review.product }} {# Product #} {% endif %}Seo
Attributes of object Seo
| Name | Type | Description |
|---|---|---|
| description | string | null | SEO description |
| keywords | string | null | SEO keywords |
| title | string | null | SEO title |
Examples:
{% if seo.description %} {{ seo.description }} {% endif %}
{% if seo.keywords %} {{ seo.keywords }} {% endif %}
{% if seo.title %} {{ seo.title }} {% endif %}Shop
Attributes of object Shop
| Name | Type | Description | Example output |
|---|---|---|---|
| socialProfiles | SocialProfile[] | Social networks | |
| reviewCount | int | null | Number of order-type reviews counted in the shop rating. Cached hourly by cron. Null when alias is unknown. | |
| string | null | info@my-shop.cz | ||
| language | string | null | Shop language | |
| locale | string | null | Locale | |
| name | string | null | Name | MyShop.cz |
| phone | string | null | Phone | +420 777 123 456 |
| shortDomain | string | null | Domain without WWW | |
| url | string | null | URL | https://my-shop.cz |
| averageRating | float | null | Average rating (0-5) across order-type reviews for the shop language. Cached hourly by cron. Null when no reviews are available yet or alias is unknown. | |
| recommendsRate | float | null | Percentage (0-100) of order-type reviews where the customer recommends the shop. Cached hourly by cron. Null when no reviews carry the recommendation field or alias is unknown. | |
| country | Address/Country | null | Country | |
| image | Image | null | Image |
Examples:
Shop info in footer
{{ shop.name }}
{{ shop.email }}
{{ shop.phone }}
{% for profile in shop.socialProfiles %}
<a href="{{ profile.url }}">{{ profile.type }}</a>
{% endfor %}SocialProfile
Attributes of object SocialProfile
| Name | Type | Description |
|---|---|---|
| type | string | Social network type |
| url | string | Profile URL |
Examples:
{{ socialprofile.type }}
{{ socialprofile.url }}StorageCenter
Attributes of object StorageCenter
| Name | Type | Description |
|---|---|---|
| name | string | Name |
| storageRooms | StorageRoom[] | Storage rooms |
| shortName | string | null | Short name |
| address | Address | null | Center address |
Examples:
{{ storagecenter.name }}
{% for storageRoom in storagecenter.storageRooms %} ... {% endfor %}
{% if storagecenter.shortName %} {{ storagecenter.shortName }} {% endif %}
{% if storagecenter.address %} {{ storagecenter.address }} {# Address #} {% endif %}StorageRoom
Attributes of object StorageRoom
| Name | Type | Description |
|---|---|---|
| name | string | Name |
| doesSupportLocations | bool | Uses storage locations? |
Examples:
{{ storageroom.name }}
{% if storageroom.doesSupportLocations %} ... {% endif %}Store
Attributes of object Store
| Name | Type | Description |
|---|---|---|
| distanceFromPoint | int | Distance of store from point in kilometers |
| id | int | Id |
| name | string | Name |
| cashiers | Admin[] | Cashiers |
| attributes | Attribute/AttributeInstance[] | Attributes and values |
| images | Image[] | Images |
| url | Url | Store URL |
| videos | Video[] | Videos |
| city | string | null | City |
| companyId | string | null | Company ID |
| string | null | ||
| latitude | string | null | GPS - latitude |
| longitude | string | null | GPS - longitude |
| phone | string | null | Phone |
| street | string | null | Street |
| vatId | string | null | VAT ID |
| zip | string | null | Zip code |
| text | html | null | Text |
| country | Address/Country | null | Country |
| attribute | Attribute/AttributeInstance | null | Attribute with values |
| image | Image | null | Image |
| seo | Seo | null | SEO attributes |
| workingHours | WorkingHours | null | Working hours |
| contentGrid | array | null | Content grid |
Examples:
{{ store.distanceFromPoint }}
{{ store.id }}
{{ store.name }}
{% for admin in store.cashiers %} ... {% endfor %}
{% for attributeInstance in store.attributes %} ... {% endfor %}
{% for image in store.images %} ... {% endfor %}
{{ store.url }} {# Url #}
{% for video in store.videos %} ... {% endfor %}
{% if store.city %} {{ store.city }} {% endif %}
{% if store.companyId %} {{ store.companyId }} {% endif %}
{% if store.email %} {{ store.email }} {% endif %}
{% if store.latitude %} {{ store.latitude }} {% endif %}
{% if store.longitude %} {{ store.longitude }} {% endif %}
{% if store.phone %} {{ store.phone }} {% endif %}
{% if store.street %} {{ store.street }} {% endif %}
{% if store.vatId %} {{ store.vatId }} {% endif %}
{% if store.zip %} {{ store.zip }} {% endif %}
{% if store.text %} {{ store.text }} {% endif %}
{% if store.country %} {{ store.country }} {# Country #} {% endif %}
{% if store.attribute %} {{ store.attribute }} {# AttributeInstance #} {% endif %}
{% if store.image %} {{ store.image }} {# Image #} {% endif %}
{% if store.seo %} {{ store.seo }} {# Seo #} {% endif %}
{% if store.workingHours %} {{ store.workingHours }} {# WorkingHours #} {% endif %}
{% if store.contentGrid %} {{ store.contentGrid }} {% endif %}Supplier
Attributes of object Supplier
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| publicContacts | Address[] | Public contacts |
Examples:
{{ supplier.id }}
{{ supplier.name }}
{% for address in supplier.publicContacts %} ... {% endfor %}TextPage
Text page - used for terms and conditions, etc.
Attributes of object TextPage
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| name | string | Page name |
| files | File[] | Files (manuals, specifications, ...) |
| images | Image[] | Images |
| subPages | TextPage[] | Subpages |
| url | Url | Page URL |
| videos | Video[] | Videos |
| code | string | null | Code identifier for template conditions |
| text | html | null | Page text |
| image | Image | null | Main image |
| contentGrid | array | null | Content grid |
Examples:
{{ textpage.id }}
{{ textpage.name }}
{% for file in textpage.files %} ... {% endfor %}
{% for image in textpage.images %} ... {% endfor %}
{% for textPage in textpage.subPages %} ... {% endfor %}
{{ textpage.url }} {# Url #}
{% for video in textpage.videos %} ... {% endfor %}
{% if textpage.code %} {{ textpage.code }} {% endif %}
{% if textpage.text %} {{ textpage.text }} {% endif %}
{% if textpage.image %} {{ textpage.image }} {# Image #} {% endif %}
{% if textpage.contentGrid %} {{ textpage.contentGrid }} {% endif %}TextTemplate
Text page from template - order confirmation, etc.
Attributes of object TextTemplate
| Name | Type | Description |
|---|---|---|
| name | string | Name |
| text | html | null | Page text |
Examples:
{{ texttemplate.name }}
{% if texttemplate.text %} {{ texttemplate.text }} {% endif %}TimeBlock
Attributes of object TimeBlock
| Name | Type | Description |
|---|---|---|
| end | string | Opening end time |
| separator | string | Time separator |
| start | string | Opening start time |
Examples:
{{ timeblock }}
{{ timeblock.end }}
{{ timeblock.separator }}
{{ timeblock.start }}Topic
Attributes of object Topic
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
| image | Image | Image |
| subtopics | Topic[] | Subtopics |
| url | Url | URL (without domain) |
| pathNames | array | Topic path (names) |
| text | html | null | Text |
| seo | Seo | null | SEO attributes |
| parent | Topic | null | Parent topic |
| contentGrid | array | null | Content grid |
Examples:
{{ topic.id }}
{{ topic.name }}
{{ topic.image }} {# Image #}
{% for topic in topic.subtopics %} ... {% endfor %}
{{ topic.url }} {# Url #}
{{ topic.pathNames }}
{% if topic.text %} {{ topic.text }} {% endif %}
{% if topic.seo %} {{ topic.seo }} {# Seo #} {% endif %}
{% if topic.parent %} {{ topic.parent }} {# Topic #} {% endif %}
{% if topic.contentGrid %} {{ topic.contentGrid }} {% endif %}Unit
Attributes of object Unit
| Name | Type | Description |
|---|---|---|
| name | string | Quantity unit name |
Examples:
{{ unit.name }}UnitPrice
Attributes of object UnitPrice
| Name | Type | Description |
|---|---|---|
| formatted | string | Formatted output (e.g. 1 123 CZK/kg) |
| unit | string | Base unit (e.g. kg) |
| price | PriceValue | Price per unit |
Examples:
{{ unitprice }}
{{ unitprice.formatted }}
{{ unitprice.unit }}
{{ unitprice.price }} {# PriceValue #}Upsell
Attributes of object Upsell
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| name | string | Item name |
| inCart | bool | Is in current order? |
| category | Category | Main category |
| price | Price | Unit price |
| group | UpsellGroup | Group |
| code | string | null | Item code |
| vatRate | float | null | VAT rate (%) |
| image | Image | null | Item image |
| product | Product | null | Upsell item product (for URL, description, ...) Null only for upsells whose item/product was deleted; list producers filter those out, so templates never see a product-less upsell. |
| unit | Unit | null | Quantity unit |
Examples:
{{ upsell.id }}
{{ upsell.name }}
{% if upsell.inCart %} ... {% endif %}
{{ upsell.category }} {# Category #}
{{ upsell.price }} {# Price #}
{{ upsell.group }} {# UpsellGroup #}
{% if upsell.code %} {{ upsell.code }} {% endif %}
{% if upsell.vatRate %} {{ upsell.vatRate }} {% endif %}
{% if upsell.image %} {{ upsell.image }} {# Image #} {% endif %}
{% if upsell.product %} {{ upsell.product }} {# Product #} {% endif %}
{% if upsell.unit %} {{ upsell.unit }} {# Unit #} {% endif %}UpsellGroup
Attributes of object UpsellGroup
| Name | Type | Description |
|---|---|---|
| id | int | ID |
| requiredNoteMaximumLength | int | Maximum customer note length |
| name | string | Group name |
| requiredNote | bool | Is customer note required? |
| requiredUpload | bool | Is customer file upload required? |
| singleSelection | bool | Selection mode |
| text | html | null | Text |
| uploadInput | html | null | HTML for file upload input |
Examples:
{{ upsellgroup.id }}
{{ upsellgroup.requiredNoteMaximumLength }}
{{ upsellgroup.name }}
{% if upsellgroup.requiredNote %} ... {% endif %}
{% if upsellgroup.requiredUpload %} ... {% endif %}
{% if upsellgroup.singleSelection %} ... {% endif %}
{% if upsellgroup.text %} {{ upsellgroup.text }} {% endif %}
{% if upsellgroup.uploadInput %} {{ upsellgroup.uploadInput }} {% endif %}Url
Attributes of object Url
| Name | Type | Description | Example output |
|---|---|---|---|
| absolute | string | URL including domain and protocol | https://www.example.org/product-1 |
| path | string | URL within domain | /product-1 |
Examples:
{{ url }}
{{ url.absolute }}
{{ url.path }}UserPointChange
Loyalty program points change
Attributes of object UserPointChange
| Name | Type | Description |
|---|---|---|
| amount | int | Points amount |
| text | string | Description |
| date | datetime | Date |
| dateExpire | datetime | null | Expiration date |
Examples:
{{ userpointchange.amount }}
{{ userpointchange.text }}
{{ userpointchange.date|date('d. m. Y H:i') }}
{{ userpointchange.dateExpire|date('d. m. Y H:i') }}Variant
Attributes of object Variant
| Name | Type | Description |
|---|---|---|
| id | int | Internal variant ID |
| name | string | Variant name |
| trackingId | string | ID used in feeds and tracking scripts |
| active | bool | Active |
| selected | bool | Is preselected? |
| availableUpsellGroups | AvailableUpsellGroup[] | Available upsell groups |
| enumValues | EnumValue[] | Enum values |
| images | Image[] | Variant images |
| item | Item | Item |
| product | Product | Product |
| availableUpsells | Upsell[] | Available upsell items |
| url | Url | Variant URL (variant is preselected in product detail) |
| legacyRel | string | null | Legacy property listing - awaiting migration |
| image | Image | null | Item image |
Examples:
Variant properties display
{{ variant.name }}
{{ variant.code }}
{{ variant.item.price.current.formatted }}
{% if variant.item.available %}In stock{% endif %}VariantChoice
Attributes of object VariantChoice
| Name | Type | Description |
|---|---|---|
| inputValue | string | Value for selection input |
| name | string | Choice name |
| selected | bool | Is value selected? (for input checked) |
| color | string | null | Hex color code (including #) |
| description | string | null | Value description |
| availability | Availability | null | Availability |
| bundle | Bundle | null | Bundle |
| icon | Image | null | Choice icon image |
| image | Image | null | Image |
| price | Price | null | Item price |
Examples:
{{ variantchoice.inputValue }}
{{ variantchoice.name }}
{% if variantchoice.selected %} ... {% endif %}
{% if variantchoice.color %} {{ variantchoice.color }} {% endif %}
{% if variantchoice.description %} {{ variantchoice.description }} {% endif %}
{% if variantchoice.availability %} {{ variantchoice.availability }} {# Availability #} {% endif %}
{% if variantchoice.bundle %} {{ variantchoice.bundle }} {# Bundle #} {% endif %}
{% if variantchoice.icon %} {{ variantchoice.icon }} {# Image #} {% endif %}
{% if variantchoice.image %} {{ variantchoice.image }} {# Image #} {% endif %}
{% if variantchoice.price %} {{ variantchoice.price }} {# Price #} {% endif %}VariantChoiceStep
Attributes of object VariantChoiceStep
| Name | Type | Description |
|---|---|---|
| headline | string | Headline |
| inputName | string | Selection input name |
| mode | string | Selection display mode code |
| final | bool | Last selection step? (i.e. no more steps load after choosing a value) |
| choices | VariantChoice[] | array | Available choices |
| description | string | null | Selection description |
| infoDescription | string | null | Description for more information link |
| messageEmpty | string | null | Error message when value is not selected |
| placeholder | string | null | First "placeholder" item for dropdown |
| icon | Image | null | Icon |
| infoIcon | Image | null | Icon |
| info | TextPage | null | Text page with additional information |
| selectedChoice | VariantChoice | null | Selected choice |
Examples:
{{ variantchoicestep.headline }}
{{ variantchoicestep.inputName }}
{{ variantchoicestep.mode }}
{% if variantchoicestep.final %} ... {% endif %}
{% for variantChoice in variantchoicestep.choices %} ... {% endfor %}
{% if variantchoicestep.description %} {{ variantchoicestep.description }} {% endif %}
{% if variantchoicestep.infoDescription %} {{ variantchoicestep.infoDescription }} {% endif %}
{% if variantchoicestep.messageEmpty %} {{ variantchoicestep.messageEmpty }} {% endif %}
{% if variantchoicestep.placeholder %} {{ variantchoicestep.placeholder }} {% endif %}
{% if variantchoicestep.icon %} {{ variantchoicestep.icon }} {# Image #} {% endif %}
{% if variantchoicestep.infoIcon %} {{ variantchoicestep.infoIcon }} {# Image #} {% endif %}
{% if variantchoicestep.info %} {{ variantchoicestep.info }} {# TextPage #} {% endif %}
{% if variantchoicestep.selectedChoice %} {{ variantchoicestep.selectedChoice }} {# VariantChoice #} {% endif %}VariantType
Attributes of object VariantType
| Name | Type | Description |
|---|---|---|
| id | int | Id |
| name | string | Name |
Examples:
{{ varianttype.id }}
{{ varianttype.name }}Video
Videos should not be output via <video src=, but always via the helper tag <i:video, which handles retina displays and responsiveness.
Attributes of object Video
| Name | Type | Description |
|---|---|---|
| embeddedUrl | string | URL for displaying the player (for Fancybox only, otherwise use i:video) |
| aspectRatioForCss | string | null | Aspect ratio as a CSS-ready "width/height" string (e.g. "1920/1080"), or null if unknown. Use this for the CSS aspect-ratio property: style="aspect-ratio: {{ video.aspectRatioForCss }}" |
| name | string | null | Name |
| thumbnailUrl | string | null | Thumbnail URL of the video, for gallery/lightbox thumbnails (fancybox data-thumb).Falls back through everything the video can offer: the image set in the admin, the poster frame of an uploaded video, and finally the poster YouTube serves for the embedded video. Returns null when the source provides no thumbnail at all (Vimeo). <i:video> fills data-thumb from this automatically, so a templateonly needs it for a thumbnail rendered outside the fancybox trigger. |
| aspectRatio | float | null | Aspect ratio as a float (e.g. 1.778 for 1920×1080), or null if unknown. |
| image | Image | null | Main image |
Examples:
{{ video.embeddedUrl }}
{% if video.aspectRatioForCss %} {{ video.aspectRatioForCss }} {% endif %}
{% if video.name %} {{ video.name }} {% endif %}
{% if video.thumbnailUrl %} {{ video.thumbnailUrl }} {% endif %}
{% if video.aspectRatio %} {{ video.aspectRatio }} {% endif %}
{% if video.image %} {{ video.image }} {# Image #} {% endif %}Visit
Attributes of object Visit
| Name | Type | Description | Example output |
|---|---|---|---|
| perPage | int | Records per page | 20 |
| country | string | Country code | cz |
| currency | string | Currency code | CZK |
| deliveryCountry | string | Delivery country code | cz |
| language | string | Language code | cz |
| android | bool | Is visitor using Android? | |
| bot | bool | Is visitor a bot? | true |
| iOS | bool | Is visitor using iOS? | |
| mobileDevice | bool | Is visitor on mobile device? | true |
Examples:
{{ visit.perPage }}
{{ visit.country }}
{{ visit.currency }}
{{ visit.deliveryCountry }}
{{ visit.language }}
{% if visit.android %} ... {% endif %}
{% if visit.bot %} ... {% endif %}
{% if visit.iOS %} ... {% endif %}
{% if visit.mobileDevice %} ... {% endif %}Voucher/GiftVoucher
Attributes of object Voucher/GiftVoucher
| Name | Type | Description |
|---|---|---|
| code | string | Code |
| name | string | Discount code name |
| validFrom | datetime | Validity start date |
| validTo | datetime | Expiration date |
| value | PriceValue | Voucher value |
Examples:
{{ giftvoucher.code }}
{{ giftvoucher.name }}
{{ giftvoucher.validFrom|date('d. m. Y H:i') }}
{{ giftvoucher.validTo|date('d. m. Y H:i') }}
{{ giftvoucher.value }} {# PriceValue #}Warranty
Attributes of object Warranty
| Name | Type | Description |
|---|---|---|
| months | int | Number of months |
Examples:
{{ warranty.months }}WorkingHours
Attributes of object WorkingHours
| Name | Type | Description |
|---|---|---|
| open | bool | Is currently open? |
| forNextDays | DayBlock[] | Opening hours for upcoming days |
| week | array | Opening hours for the week, consecutive days are merged into one record |
| weekFull | array | Opening hours for the full week, each day separately |
| specialCases | array | Opening hours exceptions |
| nextClose | datetime | null | Date and time of next closing |
| nextOpen | datetime | null | Date and time of next opening (if at all) |
Examples:
{% if workinghours.open %} ... {% endif %}
{% for dayBlock in workinghours.forNextDays %} ... {% endfor %}
{{ workinghours.week }}
{{ workinghours.weekFull }}
{{ workinghours.specialCases }}
{{ workinghours.nextClose|date('d. m. Y H:i') }}
{{ workinghours.nextOpen|date('d. m. Y H:i') }}