Magento bestellingen

Alle bestellingen die in je webshop beschikbaar zijn, zijn ook toegankelijk via Smarty variabelen, en je kunt de eigenschappen van de bestellingen rechtstreeks in mailings plaatsen met deze Smarty variabelen:

{$mywebshop.order.123.grand_total}
{$mywebshop.order.123.created_at}
{$mywebshop.order.123.customer.email}

Hierboven zie je een voorbeeld van hoe je wat eigenschappen van bestelling "123" in je mailing opneemt. Hierbij verwijst {$mywebshop} naar de naam van je integratie, en "123" naar het ID van een bestelling.

Welke variabelen zijn beschikbaar?

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 'Variabelen'-tab bij een integratie in de Integraties-module raadplegen. Deze tool toont alle eigenschappen van beschikbare objecten rechtstreeks via de Magento-koppeling. Daarnaast kun je deze variabelen ook terugvinden in de Magento order API documentatie De volgende variabelen zijn echter vaak handig in het gebruik:

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

In bovenstaande voorbeelden moet je $id vervangen door het ID van een bestelling.

Speciale variabelen

De meeste eigenschappen die door de Magento API worden teruggegeven worden rechtstreeks en ongefilterd doorgegegeven aan Smarty. Een aantal variabelen krijgt echter een speciale behandeling, waardoor ze nog wat makkelijker in het gebruik zijn.

Klantgegevens

Standaard biedt de Magento API een aantal eigenschappen over de klant die een bestelling heeft geplaatst, waar je met variabelen als {$order.customer_email} of {$order.customer_firstname} in je mailing naar kunt verwijzen. Dit zijn klantgegevens die de klant heeft ingevoerd bij het plaatsen van de bestelling:

Beste {$order.customer_firstname},

Daarnaast kun je ook alle andere eigenschappen van de klant gebruiken met de {$order.customer}-variabele. Dit werkt alleen voor klanten die waren ingelogd toen ze een bestelling plaatsten. En let op: er is een extra API call naar de webshop voor nodig om de klantgegevens op deze manier op te halen.

Beste {$order.customer.firstname},

De items van een bestelling

Speciale aandacht vereist de variabele {$order.items}. Hierin staat een array van alle items uit de bestelling. Deze variabele wordt rechtstreeks doorgegeven van de Magento API naar de personalisatievariabelen, en je kunt dus alle eigenschappen van de items inzien op de webpagina over de Magento order API documentatie.

Omdat in deze variabele een array staat, gebruik je de variabele vaak in combinatie met een {foreach} loop:

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

Hier gebruiken we naam {$item.qty_ordered} en {$item.name}. Maar er zijn dus veel meer eigenschappen beschikbaar die allemaal op de Magento website worden beschreven.

De betaalmethode

Een ander aandachtspunt is de payment-eigenschap. Dit is geen normale string variabele, en kan dus niet rechtstreeks in een template gebruikt worden, maar bevat wel diverse andere properties. Zo kun je bijvoorbeeld aan de ontvanger laten zien hoeveel verzendkosten worden verrekend met {$payment.shipping_amount}, kun je het betaalde bedrag voor deze bestelling weergeven met {$payment.amount_paid}, of op basis van de betaalmethode de mail personaliseren met {$payment.method}. In de Magento order API documentatie kun je precies vinden welke variabelen beschikbaar zijn.

Meerdere bestellingen

De variabele {$mywebshop.orders} geeft je toegang tot alle bestellingen uit de webshop, en kun je bijvoorbeeld gebruiken in combinatie met een {foreach} loop:

{foreach from=$mywebshop.orders|limit:10 item="order"}
    {$order.id}: {$order.grand_total}
{/foreach}