Alle Snippets anzeigen Als Benutzer anmelden

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.