Das Template <keyword>cart.liquid</keyword> rendert die Warenkorb-Seite des Shops.
Das Template muss unter <keyword>templates/cart.liquid</keyword> abgelegt werden.
Innerhalb des <keyword>cart.liquid</keyword> Templates stehen folgende Objekte zur Verfügung:
Das nachfolgend Beispiel zeigt die Ausgabe der Produkte, die im Warenkorb abgelegt wurden.
{% if cart.item_count > 0 %}
{% for line_item in cart.line_items %}
<ul class="cartTableRow">
<li class="cartTableCell first">
{% if line_item.featured_media.src %}
<a href="{{ line_item.url }}">
<img src="{{ line_item.featured_media.src | product_media_url:'small' }}" alt="{% if line_item.featured_media.alt %}{{ line_item.featured_media.alt | escape }}{% endif %}" />
</a>
{% endif %}
<a href="{{ line_item.url }}">{{ line_item.name }}</a><br />
{{ line_item.sku }}
{% if line_item.delivery_time_enum %}{% label 'delivertime' %}: <span style="color:{{ line_item.delivery_time_enum._string1 }}">{{ line_item.delivery_time_enum.name }}</span>{% endif %}
</li>
<li class="cartTableCell second">
{% if line_item._string1 %}{{ line_item._string1 }}{% else %}-{% endif %}
</li>
<li class="cartTableCell third">
{% if line_item._string2 %}{{ line_item._string2 }}{% else %}-{% endif %}
</li>
<li class="cartTableCell four">
<form method="post" action="/cart/remove/" class="removeFromCartForm">
<input type="hidden" name="line_item[position]" value="{{ line_item.position }}" />
<a href="javascript:void();" class="delCartItem">Artikel löschen</a>
</form>
</li>
<li class="cartTableCell five">
<form action="/cart/update/" method="post" class="changeAmountForm">
<input type="hidden" value="{{ line_item.position }}" name="line_item[position]">
<input type="hidden" value="{{ line_item.item_quantity }}" name="line_item[item_quantity]" />
<select class="forminput itemAmountSelect">
{% for i in (1..10) %}
<option value="{{ i }}" {% if forloop.index == line_item.item_quantity %}selected="selected"{% endif %}>{{ i }}</option>
{% endfor %}
</select>
</form>
</li>
<li class="cartTableCell six">
<b>{{ line_item.price | number:'currency' }} {{ shop.locale.currency_symbol }}</b>
{% if line_item.coupon_code and line_item.discount_percent > 0 %}
{{ line_item.discount_percent }}%
{% endif %}
</li>
<li class="cartTableCell seven">
{{ line_item.before_discount_total | number:'currency' }} {{ shop.locale.currency_symbol }}
{% if line_item.discount_total and line_item.discount_total > 0 %}
-{{ line_item.discount_total | number:'currency' }} {{ shop.locale.currency_symbol }}
<div class="line_item_coupon_total">
{{ line_item.total | number:'currency' }} {{ shop.locale.currency_symbol }}
</div>
{% endif %}
</li>
</ul>
{% endfor %}
{% endif %}
Das folgende Beispiel zeigt das Markup für ein "Zur Kasse" Button.
{% if cart.item_count > 0 %}
<form method="get" action="/checkout/">
<button class="button" type="submit">Zur Kasse</button>
</form>
{% endif %}
Das folgende Beispiel zeigt das Markup für ein Formular zur Gutscheincode-Erfassung.
<form method="POST" action="/cart/update/">
<label>Gutschein</label>
<input autocomplete="off" type="text" name="coupon_code" value="{% if cart.coupon_error %}{{ cart.coupon_code }}{% endif %}">
<button class="submitForm button">Einlösen</button>
</form>
Promotion Artikel sind mit einem Aktions-Gutschein oder einer generellen Aktion verknüpfte Geschenk- oder Zusteuer-Artikel. Sie stehen für den Aktions-Geschein unter <obj>cart.coupon_promotion_products</obj> und für die generelle Aktion unter <obj>cart.discount_promotion_products</obj> zur Verfügung. Da diese Promotion Artikel ggf. einen abweichenden Preis oder abweichende maximale Bestellmenge gegenüber den Artikelstammdaten besitzen, muss bei der Warenkorbablage ein zusätzliches Feld <liquid>line_item[item_source]</liquid> mitgesendet werden. Nachfolgendes Beispiel zeigt das Formular für die Ablage von Promotion Artikel eines Aktions-Gutscheins. Analog folgt auch die Ablage bei einer generellen Aktion.
{% for product in cart.coupon_promotion_products %}
{% unless product.is_in_cart %}
{{ product.name }}<br>
<img src="{{ product.featured_media | product_media_url: 'small' }}"><br>
Price: {{ product.price | currency }}<br>
<form method="post" action="/cart/append/">
<input type="hidden" name="line_item[id]" value="{{ product.id }}" />
<input type="hidden" name="line_item[item_source]" value="{{ product.item_source }}" />
<input type="submit" class="btn" value="Add to cart"/ >
</form>
{% endunless %}
{% endfor %}