Hoe je regels overslaat in een dynamisch tabelblok
Wat je leert
Leer hoe je rijen (bijv. items) kunt overslaan in een dynamisch tabelblok. De meest voorkomende use case hiervoor is het verbergen van irrelevante items, zoals verzendverzekering of gratis cadeau-items, uit een e-mail voor een winkelwagen verlaten. Je kunt deze stappen echter volgen voor elke e-mail die een dynamisch tabelblok gebruikt.
Bij dit proces bewerk je de code van je e-mail rechtstreeks. Dit wordt alleen aanbevolen voor technisch onderlegde marketeers of voor marketeers die toegang hebben tot een developer. Ons supportteam kan je niet helpen met het schrijven van maatwerkcode buiten de algemene richtlijnen die in deze documentatie worden behandeld. Om de veiligheid van je gegevens te waarborgen, kan het supportteam van Klaviyo geen HTML-bestanden openen.
Voordat je van start gaat
Dit artikel legt uit hoe je items kunt verbergen in bestaande dynamische tabelblokken. Als je nog geen werkend dynamisch tabelblok hebt gemaakt (bijv. de producten in een e-mail voor een winkelwagen verlaten of een orderbevestiging), lees dan hoe je er vanaf nul een maakt of begin met een bericht in onze flowbibliotheek.
Schrijf je if -instructies
Voordat je wijzigingen aanbrengt in je template, maak je 2 codefragmenten met een tekst- of code-editor (op een plek waar je de fragmenten later kunt kopiëren en plakken). Elk codefragment bestaat uit 3 onderdelen:
- Een openings- if -tag,
{% if ... %}, geeft aan welke items in je tabelblok moeten verschijnen. - Content, zoals een afbeeldingstag of tekst over het product.
- Een afsluitende tag,
{% endif %}.
Maak de openings- if tag aan
Hier zijn enkele voorbeelden van het openen van if -tags:
Tag | Betekenis |
{% if item.price != 0 %} | Als de itemprijs (item.price) iets anders is dan 0. |
{% if item.product.name != "Route Shipping Insurance" %} | Als de itemnaam (item.product.name) iets anders is dan “Route Shipping Insurance.” |
{% if not "T-Shirt" in item.product.title %} | Als de titel van het item (item.product.title) niet "T-Shirt" bevat. |
{% if item.title %} | Als de titel van het item (item.title) is ingesteld (d.w.z. een waarde heeft). |
Deze tag is hoofdlettergevoelig en moet exact overeenkomen met je gegevens. Als de variabele voor de prijs van je item bijvoorbeeld iets anders is dan item.price (bijv. item.Price of item.details.line_price), werk je de code bij zodat die overeenkomt met je gegevensbron.
Maak de content voor de if-instructie
Voor content volg je deze stappen om de bestaande content uit je dynamische tabelblok te gebruiken. Schrijf dit codefragment in een code- of teksteditor; je voegt het in de volgende sectie toe aan je template.
- Klik onder Celinhoud voor de afbeelding van het tabelblok op Vervangen om de plaatsaanduiding voor de afbeelding te bekijken.
- Kopieer de volledige code uit het veld Dynamische variabele of dynamische URL. Houd er rekening mee dat dit een eenvoudige dynamische variabele kan zijn, of een langer codefragment; kopieer alles, ongeacht de lengte.
- Vervang de tijdelijke aanduiding in dit codefragment door de code die je hebt gekopieerd uit het veld Dynamische variabele of dynamische URL.
<img src="PLACEHOLDER" style="width: 200px; height: auto;" width="200"> Als je bestaande tabelblok een eenvoudige dynamische variabele voor de afbeelding heeft, ziet de resulterende content er ongeveer zo uit:
<img src="{{item.product.variant.images.0.src}}" style="width: 200px; height: auto;" width="200"> Als je bestaande tabelblok een langer codefragment bevat, kan de resulterende content er zo uitzien:
<img src="{% if item.product.variant.images.0.src %}{{item.product.variant.images.0.src}}{%else%}{{item.product.images.0.src|missing_product_image}}{%endif%}" style="width: 200px; height: auto;" width="200"> Voeg je eindtag toe
Zet vervolgens alle content bij elkaar: je opening if-instructie, dan je content en tot slot een afsluitende {% endif %} -tag.
Herhaal voor de tekstinhoud
Herhaal dit proces vervolgens met de content aan de rechterkant van je tabelblok (bijv. de tekstcontent). Klik op </> om de code-editor te openen en kopieer alle HTML-content. Wikkel deze content vervolgens in dezelfde if-instructie (stappen 1 en 3) die je voor de afbeeldingscontent hebt gebruikt.
Zo ziet alles er samen uit:
Codefragment 1 (productafbeelding) | Codefragment 2 (productgegevens) |
|
|
En hier is een overzicht van die codefragmenten:
Codefragment 1 (productafbeelding) | Codefragment 2 (productgegevens) |
|
|
Wanneer je deze codefragmenten gebruikt, zorg er dan voor dat je rechte aanhalingstekens (") gebruikt in plaats van typografische aanhalingstekens (“), zodat de code correct wordt weergegeven.
Zodra je beide codefragmenten hebt geschreven, ga je verder in de template-editor door de onderstaande stappen te volgen.
Rijen overslaan in een dynamisch tabelblok
Voordat je je dynamische tabelblok bewerkt, kun je overwegen om het oorspronkelijke blok op te slaan als universele content, voor het geval je ernaar wilt verwijzen in toekomstige berichten. Ontkoppel daarna het blok en bewerk het afzonderlijk, zodat je bewerkingen niet worden opgeslagen in het universele content-blok.
- Als je e-mail deel uitmaakt van een flow, stel je deze in op Concept of Handmatig, zodat er geen berichten worden verzonden terwijl je het flow-bericht bewerkt.
- Zorg ervoor dat de Celinhoud voor beide kolommen van het nieuwe tabelblok is ingesteld op Tekst.
- Klik op </> om de HTML-editor te openen voor de linkerkant van het tabelblok.
- Kopieer het codefragment voor de productafbeelding dat je in de vorige sectie hebt gemaakt en plak het in het HTML-veld.
- Klik linksboven op Klaar .
- Navigeer naar de editor aan de rechterkant van het tabelblok.
- Klik op </> om de HTML-editor te openen voor de rechterkant van het tabelblok.
- Kopieer het codefragment met productgegevens dat je in de vorige sectie hebt gemaakt en plak het in het HTML-veld. Vervang daarbij alle eerdere content.
- Klik op Klaar.
- Bekijk een voorbeeld van de e-mail om te controleren of die eruitziet zoals verwacht: het overgeslagen item mag niet worden weergegeven, maar alle andere items worden normaal weergegeven. Zorg ervoor dat je een voorbeeld bekijkt met een event dat het item bevat dat je probeert te verbergen, zodat je kunt controleren of het verborgen is.
Voorwaardelijke instructies en de inline teksteditor
Wanneer je bepaalde voorwaardelijke instructies toevoegt aan een tekstblok, kunnen deze verdwijnen uit de inline teksteditor. De code is nog steeds aanwezig, maar deze is verborgen. Als je voorwaardelijke instructies wilt bekijken en bewerken, gebruik je de Django Tag Builder, of verplaats je de content naar een speciaal HTML-blok om de code rechtstreeks te bewerken.
De volgende tags verschijnen niet in de inline teksteditor, maar ze blijven in het tekstblok staan:
- {% for ... %}
- {% endfor %}
- {% if ... %}
- {% elif ... %}
- {% else %}
- {% endif %}
- {% with ... %}
- {% endwith %}
Probleemoplossing
Er worden geen items weergegeven in de voorbeeldweergave
- Zorg ervoor dat je een voorbeeld bekijkt met een event dat overeenkomt met de gegevensbron die je hebt gebruikt (bijv. Started checkout voor een bericht over een winkelwagen verlaten).
- Bevestig dat Repeat for en Row alias exact overeenkomen met de Row collection en Row alias uit het oorspronkelijke blok.
Het item dat moet worden overgeslagen, wordt nog steeds weergegeven
Controleer de spelling en hoofdlettergebruik van je if-statement. Als het product nog steeds wordt weergegeven, betekent dat dat het voldoet aan de criteria in je if-statement, dus je if-statement is niet correct geconfigureerd. Lees meer over voorwaardelijke logica in templates.
Resultaat
Als je deze stappen volgt, worden items die niet voldoen aan de criteria in je if-instructie niet weergegeven in berichten zoals e-mails over winkelwagen verlaten of orderbevestiging.