Prämienprodukte im Warenkorb anbieten
Sie können Ihren durchschnittlichen Warenkorbwert gut erhöhen, indem Sie Prämienartikel in Ihrem Warenkorb anbieten. Dieses Snippet zeigt ab einem Mindestwarenkorbwert i.H.v. 20 € einige Prämienartikel an. Das sind jeweils kostenlose Artikel, die auch keine Versandkosten erzeugen, zusammengefasst in der Produktgruppe “Prämienartikel”.
Im Beispiel zu sehen unter: http://demo-express.versacommerce.de
#63 Anzeige von Prämienartikeln, abhängig vom Mindestwarenkorbwert
{% if cart.subtotal_price > 20 %}
{% assign bonus_products = collections.praemienartikel.products %}
{% assign bonus_products_codes = bonus_products|map:'code' %}
{% assign cart_item_product_codes = cart.items|map:'code' %}
{% assign intersection = cart_item_product_codes|intersect:bonus_products_codes %}
{% if intersection == blank %}
<div class="box">
<form id="bonusform" name="bonusform" class="productform" action="/cart/add/" method="post">
<input id="product_id" type="hidden" name="id" />
<h3>Prämien</h3>
<p>Wir möchten uns für Ihren Einkauf bedanken – suchen Sie sich eine unserer Prämien aus:</p>
<ul>
{% for product in bonus_products %}
<li>
<a href="#" onclick="add_this_bonus({{ product.id }});">
{{ product.featured_image_url | refit: '200x200' | img_tag }}
</a>
</li>
{% endfor %}
</ul>
</form>
</div>
{% endif %}
{% endif %}
Im ersten Schritt {% if cart.subtotal_price > 20 %} wird abgefragt, ob die Summe der Warenkorbartikel den Mindestwert für Prämienartikel überschreiten.
Im Folgenden werden einige Variablen gesetzt: bonus_products sind alle Produkte der Produktgruppe "Prämienartikel", deren EAN´s werden in das Array bonus_products_codes geschrieben. Dasselbe geschieht mit den bereits im Warenkorb vorhandenen Artikeln (cart_item_product_codes).
Um zu prüfen, ob sich einer der Prämienartikel bereits im Warenkorb befindet, wird dann die Schnittmenge ermittelt: {% assign intersection = cart_item_product_codes|intersect:bonus_products_codes %}
Wenn die Schnittmenge leer ist ( also keiner der Prämienartikel im Warenkorb liegt), können die Prämienartikel angezeigt werden.
#64 Prämienartikel Form per Javascript vorbereiten und absenden
<script type="text/javascript"> function add_this_bonus(id) { $('#bonusform #product_id').val(id); $('#bonusform').submit(); } </script>
Weil in diesem Design JQuery bereits eingebunden war, kann das Script zum Setzen der ID in der anzuwendenden Form sehr einfach bleiben. Der Wert des hidden fields "product_id" wird auf die ID des angeklickten Produktes gesetzt und die Form submittet.