Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#65912] integration doc] add documentation about frequently used smarty codes #386

Open
wants to merge 46 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
d54295c
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 8, 2024
9e09c5d
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 21, 2024
edcc198
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 21, 2024
8d34618
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 21, 2024
e5bbfd0
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 21, 2024
882b259
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 22, 2024
a6704c5
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 22, 2024
5bfa2a1
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 22, 2024
0185320
Add files via upload
JeroenCopernica May 22, 2024
84669a0
Add files via upload
JeroenCopernica May 22, 2024
6019c07
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 22, 2024
4c9ed38
Add files via upload
JeroenCopernica May 22, 2024
9eef871
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 22, 2024
e267a3c
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 22, 2024
74aeeb3
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 22, 2024
88452c4
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 23, 2024
f793306
Add files via upload
JeroenCopernica May 23, 2024
8307e37
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 23, 2024
b875239
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 23, 2024
7727543
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 23, 2024
435c28f
Add files via upload
JeroenCopernica May 23, 2024
d6bb5cb
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 23, 2024
ac57a36
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 23, 2024
8985fc6
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 23, 2024
ea3a648
Add files via upload
JeroenCopernica May 23, 2024
860a4e4
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 23, 2024
3ae90bf
Add files via upload
JeroenCopernica May 23, 2024
4f3e601
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 23, 2024
8b19645
Add files via upload
JeroenCopernica May 23, 2024
bd80715
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 23, 2024
74e03a9
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 24, 2024
32becd7
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 24, 2024
8a65cef
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 24, 2024
c5263ef
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 24, 2024
f72f7c9
Add files via upload
JeroenCopernica May 24, 2024
d34cb80
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 24, 2024
f4475aa
Add files via upload
JeroenCopernica May 24, 2024
cf844aa
Delete Publisher/images/nl/magento_vb2.png
JeroenCopernica May 27, 2024
9a8e7d9
Add files via upload
JeroenCopernica May 27, 2024
9dfdab8
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 29, 2024
260644e
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 29, 2024
99e552a
Update email-editor-personalization-variables-magento.md
JeroenCopernica May 29, 2024
02bfe7d
Delete Publisher/images/nl/magento_vb1.png
JeroenCopernica May 29, 2024
3737763
Delete Publisher/images/nl/magento_vb1b.png
JeroenCopernica May 29, 2024
36c69b2
Delete Publisher/images/nl/magento_vb2.png
JeroenCopernica May 29, 2024
025c607
Delete Publisher/images/nl/magento_vb2b.png
JeroenCopernica May 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
196 changes: 174 additions & 22 deletions Publisher/nl/email-editor-personalization-variables-magento.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,56 @@
# Magento
De Copernica-integratie met Magento is specifiek ontwikkeld voor Magento 2.0 en hoger.
Na het koppelen van een Magento-webshop in de [web-module](https://ms.copernica.com/#/web/),
krijg je direct toegang via tot alle klant-, bestel-, product- en winkelwagengegevens in je
drag-and-drop-templates via Smarty-variabelen.

De Copernica-integratie met Magento is specifiek ontwikkeld voor Magento 2.0 en hoger. Na het koppelen van een Magento webshop in
de [web-module](https://ms.copernica.com/#/web/), zijn direct de volgende variabelen beschikbaar in je drag-and-drop-templates:
## Inhoudsopgave
In dit artikel geven we uitleg over de volgende onderwerpen:

- [Integratie identifier](#integratie-identifier)
- [Welke variabelen zijn er beschikbaar?](#welke-variabelen-zijn-er-beschikbaar)
- [Variabelen met meerdere elementen](#variabelen-met-meerdere-elementen)
- [Modifiers](#modifiers)
- [Voorbeelden](#voorbeeld1)
- [Tonen van de 2 meest recent toegevoegde producten](#voorbeeld1)
- [Tonen van informatie van bestelling](#voorbeeld2)

## <a name="integratie-identifier"></a>Integratie identifier

De variabelen om gegevens uit je Magento-webshop op te halen, beginnen altijd met een integratie-identifier.
Deze identifier verwijst naar de naam die de webshop heeft binnen de lijst van integraties, en stelt je in
staat om gegevens uit meerdere webshops te halen door ze allemaal een andere identifier te geven. Bij het
invoeren van de integratie in de [web-module](https://ms.copernica.com/#/web/) heb je deze identifier moeten
invoeren. Veel gebruikers kiezen als identifier de naam van de webshop ("mijnwebshop") of gewoon "magento".
Als je "mijnwebshop" als identifier hebt ingevoerd, gebruik je: {$mijnwebshop.variabele}.

## <a name="welke-variabelen-zijn-er-beschikbaar"></a>Welke variabelen zijn er beschikbaar?

De gegevens die je ophaalt, worden vanuit de API van Magento ingeladen in je mailing. De velden die de API teruggeeft, zijn allemaal rechtstreeks beschikbaar als Smarty-variabele, bijvoorbeeld {$identifier.product.$sku.name} en {$identifier.product.$sku.price}.

Enkele veelvoorkomende Smarty-variabelen zijn:
- **{$identifier.customer.$customerID}**: haal klantgegevens op aan de hand van het ID
- **{$identifier.order.$orderID}**: haal een bestelling op aan de hand van het ID
- **{$identifier.order.$orderID.customer}**: haal klantgegevens op voor deze bestelling
- **{$identifier.order.$orderID.items[]}**: haal alle items op uit deze bestelling
- **{$identifier.order.$orderID.items[].product}**: haal het product op uit deze bestelling
- **{$identifier.product.$sku}**: haal een product op aan de hand van de SKU (Stock Keeping Unit)
- **{$identifier.product.$sku.image}**: haal de afbeelding van het product op
- **{$identifier.product.$sku.url}**: haal de afbeelding van het product op
- **{$identifier.product.$sku.price.currency}**: haal enkel de currency van het product op
- **{$identifier.product.$sku.price.value}**: haal enkel de waarde van het product op
- **{$identifier.cart.$cartID}**: haal een winkelwagen op aan de hand van het ID
- **{$identifier.cart.$cartID.customer}**: haal klantgegevens op voor deze winkelwagen
- **{$identifier.cart.$cartID.items[]}**: haal alle items op uit het winkelwagenitem
- **{$identifier.cart.$cartID.items[].product}**: haal productgegevens op uit het winkelwagenitem

In bovenstaande voorbeelden moet je de variabelen die beginnen met een dollarteken (zoals $identifier, $orderID, $sku, enzovoort) vervangen
door de identifier van de integratie, het order-ID, de stock-keeping-unit, enzovoort.

De integratie-identifier verwijst naar de naam die de webshop heeft binnen de lijst van integraties, en stelt je in staat om
gegevens uit meerdere webshops te halen door ze allemaal een andere identifier te geven. Bij het invoeren van de integratie in
de [web-module](https://ms.copernica.com/#/web/) heb je deze identifier moeten invoeren. Veel gebruikers kiezen als identifier de
naam van de webshop ("mijnwebshop") of gewoon "magento". Als je "magento" als identifier hebt ingevoerd, gebruik je dus: {magento.customer.$customerID}.

## Welke velden zijn er precies beschikbaar?

De gegevens die je ophaalt worden vanuit de API van Magento ingeladen in je mailing. De velden die de API teruggeeft zijn allemaal
rechtstreeks beschikbaar als Smarty variabele, dus bijvoorbeeld {$identifier.product.$sku.name} en {$identifier.product.$sku.price}.
De precies beschikbare velden zijn er te veel om op te noemen, en zijn ook niet voor elke webshop hetzelfde omdat ze afhankelijk kunnen
zijn van de Magento-versie. Voor een actueel overzicht kun je daarom het best de documentatie van de Magento-API raadplegen.
Alle velden die worden teruggegeven door de API kun je gebruiken bij het personalizeren:

Voor een actueel overzicht van beschikbare variabelen kun je de documentatie van de Magento-API raadplegen:
- [order](https://adobe-commerce.redoc.ly/2.4.7-admin/tag/ordersid#operation/GetV1OrdersId)
- [cart](https://adobe-commerce.redoc.ly/2.4.7-admin/tag/cartscartId#operation/GetV1CartsCartId)
- [product](https://adobe-commerce.redoc.ly/2.4.7-admin/tag/productssku#operation/GetV1ProductsSku)
- [customer](https://adobe-commerce.redoc.ly/2.4.7-admin/tag/customerscustomerId#operation/GetV1CustomersCustomerId)

Onderaan dit artikel geven we enkele voorbeelden van veelgebruikte functionaliteiten.

## Variabelen met meerdere elementen
## <a name="variabelen-met-meerdere-elementen"></a>Variabelen met meerdere elementen

Er zijn verschillende variabelen waarin meerdere rijen met gegevens kunnen zitten, bijvoorbeeld als je alle producten uit je webshop wilt ophalen.
Hieronder vind je een lijst met variabelen die binnen een foreach-statement kunnen worden gebruikt:
Expand All @@ -58,7 +71,7 @@ En, zoals je hierboven al zag, zijn er ook variabelen om alle items van een orde
Overiges, dit zijn voor de meeste webshops nogal veel producten, dus erg zinvol is bovenstaande code vaak niet. Het wordt
al een stuk handiger als je wat *modifiers* gebruikt om te zoeken naar specifieke producten or bestellingen.

## Modifiers
## <a name="modifiers"></a>Modifiers

Normaal gesproken gebruik je modifiers om teksten te filteren, bijvoorbeeld om hoofdletters om te zetten naar kleine letters, of om
HTML code te escapen. Modifiers kunnen echter ook worden ingezet om lijsten te filteren en te sorteren. Hiervoor hebben we de
Expand Down Expand Up @@ -121,3 +134,142 @@ Je kunt verschillende modifiers combineren om specifieke resultaten te krijgen,
```

Met deze Smarty-code worden de eerste 5 producten opgehaald waarvan de prijs lager is dan 15, gesorteerd op prijs.

## <a name="voorbeeld1"></a>Voorbeeld 1 - Tonen van de 2 meest recent toegevoegde producten

In dit voorbeeld leer je hoe je de twee nieuwste producten uit je webshop kunt laden in je e-mailtemplate.

### Stap 1 - Structuurelementen toevoegen
Begin met het toevoegen van drie structuren aan je e-mailtemplate. Gebruik hiervoor de volgende container-opties:
- Bovenste structuur: 1 container
- Middelste structuur: 2 containers, waarbij de linker container een breedte heeft van 120
- Onderste structuur: 1 container

### Stap 2 - Foreach-statement toevoegen
Voeg in de bovenste structuur een tekstblok toe met het volgende Smarty foreach-statement:
```
{foreach from=$identifier.products|orderby:"id":"desc"|limit:2 item="product"}
```
Dit statement zorgt ervoor dat de twee meest recent toegevoegde producten worden opgehaald, gesorteerd op ID. Vervang 'identifier' door de integratie-identifier die je hebt opgegeven bij het aanmaken van je integratie.

In de onderste structuur voeg je een tekstblok toe om het foreach-statement af te sluiten:
```
{/foreach}
```

### Stap 3 - Blokken en Smarty-code toevoegen
In de middelste structuur heb je nu twee containers, waarbij de linker container een breedte heeft van 120.

#### Linker container
Voeg een afbeeldingsblok toe in de linker container. Voor het afbeeldingspad in je afbeeldingsblok gebruik je:
```
{$product.image}
```

Voor de link in je afbeeldingsblok gebruik je:
```
{$product.url}
```

#### Rechter container
Voeg drie elementen toe in de rechter container, onder elkaar:
- tekstblok
- tekstblok
- knop

In het eerste tekstblok plaats je:
```
{$product.name}
```

Deze waarde maak je dikgedrukt.

In het tweede tekstblok plaats je:
```
{$product.short_description|unescape}
```
De Smarty modifier `|unescape` zorgt ervoor dat HTML in de tekst wordt omgezet naar leesbare code in je template.

Voor de knop gebruik je als link:
```
{$product.url}
```

en als knoplabel:
```
€ {$product.price.value}
```

## <a name="voorbeeld2"></a>Voorbeeld 2 - Tonen van informatie van bestelling

In dit voorbeeld leer je hoe je de informatie van een bestelling uit je webshop kunt inladen in je e-mailtemplate.

### Stap 1 - Structuurelementen toevoegen
Begin met het toevoegen van vijf structuren aan je e-mailtemplate. Gebruik hiervoor de volgende container-opties:
- Eerste structuur: 1 container
- Tweede structuur: 2 containers, waarbij de linker container een breedte heeft van 120
- Derde structuur: 1 container
- Vierde structuur: 1 container
- Vijfde structuur: 1 container

### Stap 2 - Foreach-statement toevoegen
Voeg in het eerste structuurelement een tekstblok toe met het volgende Smarty foreach-statement:
```
{foreach from=$identifier.order.$orderID.items item=order}
```
Vervang 'identifier' door de integratie-identifier die je hebt opgegeven bij het aanmaken van je integratie.
De variabele $orderID vervang je met de order ID van de bestelling. Bij het invoeren van een vast ordernummer
is het dollarteken niet nodig: `{foreach from=$identifier.order.00001.items item=order}`.

In het vierde structuurelement voeg je een tekstblok toe om het foreach-statement af te sluiten:
```
{/foreach}
```

### Stap 3 - Tonen van informatie per product
In het tweede structuurelement heb je nu twee containers, waarbij de linker container een breedte heeft van 120.

#### Linker container
Voeg een afbeeldingsblok toe in de linker container. Voor het afbeeldingspad in je afbeeldingsblok gebruik je:
```
{$order.product.image}
```

Voor de link in je afbeeldingsblok gebruik je:
```
{$order.product.url}
```

#### Rechter container
Voeg een tekstblok toe aan de rechter container. Hierin plaats je:

```
{$order.product.name}
​SKU: {$order.product.sku}
Aantal: {$order.qty_ordered}
Prijs: € {$order.price_incl_tax|number_format:2}
```

De waarde {$order.product.name} maak je dikgedrukt.

### Stap 4 - Tonen van totaal prijs per product
Om de totale waarde van een regel uit de bestelling te tonen, voeg je in het derde structuurelement een tekstblok toe met de volgende tekst:
```
Totaal: € {$order.row_total_incl_tax|number_format:2}
```

Deze tekst lijn je rechts uit.

### Stap 5 - Tonen van informatie gehele bestelling
In het laatste structuurelement voeg je een tekstblok toe.
Hierin plaats je:
```
Verzendkosten: € {$identifier.order.$orderID.base_shipping_incl_tax|number_format:2}
Totaal bedrag order: € {$identifier.order.orderID.base_grand_total|number_format:2}
```

Vervang 'identifier' door de integratie-identifier die je hebt opgegeven bij het aanmaken van je integratie.
De variabele $orderID vervang je met de order ID van de bestelling. Bij het invoeren van een vast ordernummer
is het dollarteken niet nodig: `{foreach from=$identifier.order.00001.items item=order}`.

Lijn deze tekst rechts uit.