Magento events: {$event.order}

In sommige opvolgacties die gekoppeld zijn aan winkelwagen-events, is er een bestelling beschikbaar via de variabele {$event.order}. Deze variabele verwijst naar de bestelling die is voortgekomen uit de betreffende winkelwagen.

Voorbeelden van events waarbij {$event.order} beschikbaar is:

Veelgebruikte variabelen

In principe zijn alle eigenschappen die door de Magento API worden teruggegeven rechtstreeks beschikbaar als Smarty variabelen. Voor een compleet en actueel overzicht van de beschikbare variabelen kun je het beste de Magento winkelwagen API documentatie raadplegen. De volgende variabelen zijn echter vaak handig in het gebruik:

  • {$event.order.grand_total}: de totaalprijs van de bestelling
  • {$event.order.created_at}: het tijdstip waarop de bestelling geplaatst is
  • {$event.order.customer}: de klant die de bestelling geplaatst heeft
  • {$event.order.customer.name}: de naam van de klant die de bestelling geplaatst heeft
  • {$event.order.items}: een lijst van de producten in de bestelling
  • {$event.order.discount_amount}: de gegeven korting op een bestelling
  • {$event.order.payment}: betaalgegevens over de bestelling
  • {$event.order.payment.method}: de betaalmethode van een bestelling (let op de . tussen payment en method)
  • {$event.order.billing_address}: het factuuradres van de bestelling
  • {$event.order.shipping_assignments}: de verzendadressen van de bestelling

Voorbeeld:

Je bestelling met nummer {$event.order.increment_id} is succesvol geplaatst.

Toegang via {$event.cart.order}

In andere events, zoals Cart-Add, Cart-Remove of Cart-Edit, is {$event.order} niet direct beschikbaar. In veel gevallen kun je dan alsnog bij de bestelling via {$trigeventger.cart.order}.

Dit object bevat dezelfde eigenschappen als {$event.order}. Je kunt dus exact dezelfde variabelen gebruiken, maar met {$event.cart.order} als uitgangspunt:

{$event.cart.order.grand_total}
{$event.cart.order.items}
{$event.cart.order.shipping_assignments}

Zie ook het artikel over {$event.cart} voor meer uitleg.

De producten in de bestelling

De variabele {$event.order.items} bevat een lijst van producten die deel uitmaken van de bestelling. Je kunt deze lijst gebruiken in een foreach-loop:

{foreach from=$event.order.items as item}
  - {$item.qty_ordered}x {$item.name}
{/foreach}

Hiermee toon je het aantal en de naam van elk product in de winkelwagen.

Extra informatie via {$item.product}

De variabele {$event.order.items} bevat een lijst van producten in de bestelling. Elk item in deze lijst heeft standaard eigenschappen zoals {$item.qty_ordered} en {$item.name}. Daarnaast bevat elk item ook een extra eigenschap {$item.product}, die uitgebreide informatie bevat over het bijbehorende product.

Je kunt deze variabele gebruiken binnen de foreach-loop over de items:

{foreach from=$event.order.items as item}
  <img src="{$item.product.image}" />
  {$item.qty_ordered}x {$item.name}
{/foreach}

Alle eigenschappen die beschikbaar zijn via {$event.product} kun je op dezelfde manier aanspreken binnen {$item.product}.

Klantgegevens

Via {$event.order.customer} heb je toegang tot eigenschappen van de klant die de winkelwagen heeft aangemaakt. Bijvoorbeeld:

Beste {$event.order.customer.name},

Meer informatie over de beschikbare klantgegevens vind je op de pagina over {$event.customer}

Let op: klantgegevens zijn alleen beschikbaar als de winkelwagen is gekoppeld aan een ingelogde klant.

Shipping assignments

In Magento is het mogelijk om één bestelling naar meerdere adressen te verzenden. Dit gebeurt via zogeheten shipping assignments. Elke shipping assignment bevat een verzendadres, verzendmethode en een lijst met producten die naar dat adres worden verzonden.

In Copernica zijn deze shipping assignments direct beschikbaar als top-level eigenschap van {$event.order.shipping_assignments}.

Voorbeeld

{foreach from=$event.order.shipping_assignments as assignment}
  Verzendadres: {$assignment.shipping.address.firstname} {$assignment.shipping.address.lastname}
  Verzendmethode: {$assignment.shipping.method}
  Producten:
  {foreach from=$assignment.items as item}
    - {$item.name}
  {/foreach}
{/foreach}

Voor een volledig overzicht van alle beschikbare velden kun je de Magento order API-documentatie raadplegen.