Zum Hauptinhalt springen

[Auftragseingang – GCW] Beispiele für Template Mapper

T
Verfasst von Toby Dawson
Vor über 3 Wochen aktualisiert

Dieser Leitfaden bietet Ihnen praktische Beispiele für Jinja2-Template-Mappings in GelatoConnect, damit Sie gängige Datenumwandlungen einfach umsetzen können. Egal, ob Sie Bestelldaten abgleichen, Benachrichtigungen anpassen oder Nachschlagefunktionen einbauen möchten – diese Beispiele geben Ihnen eine solide Grundlage.

Beispiel für eine einfache Bestellaufgabe

Dieses Beispiel zeigt Ihnen, wie Sie eine Standardbestellung aufgeben können:

Eingabedaten:

{ "order": { "id": "12345", "customer_email": "[email protected]", "Artikel": [ { "id": "item-1", "product_code": "POSTER-A3", "quantity": 2, "file_url": "https://example.com/files/poster.pdf" } ], "shipping": { "recipient": { "first_name": "John", "last_name": "Smith" }, "address": { "line1": "123 Hauptstraße", "line2": "Wohnung 4B", "city": "New York", "postal_code": "10001", "country": "US", "state": "NY" }, "phone": "212-555-1234" } }}

Vorlagen-Zuordnung:

{ "orderReferenceId": "####{{ order.id }}", "orderType": "Bestellung", "currency": "USD", "shippingAddress": { "firstName": "####{{ order.shipping.recipient.first_name }}", "lastName": "####{{ order.shipping.recipient.last_name }}", "addressLine1": "####{{ order.shipping.address.line1 }}", "addressLine2": "####{{ order.shipping.address.line2 }}", "city": "####{{ order.shipping.address.city }}", "postCode": "####{{ order.shipping.address.postal_code }}", "country": "####{{ order.shipping.address.country }}", "state": "####{{ order.shipping.address.state }}", "email": "####{{ order.customer_email }}", "phone": "####{{ order.shipping.phone }}" }, "items": [ {% for item in order.items %} { "itemReferenceId": "####{{ item.id }}", "productUid": "####{{ lookups({'product_code': item.product_code}, strict=False, default='') }}", "quantity": ####{{ item.quantity }}, "Dateien": [ { "type": "Standard", "url": "####{{ item.file_url }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}

Mit mehreren Produktdateien arbeiten

Dieses Beispiel zeigt, wie Sie Produkte mit mehreren Dateien (Vorder- und Rückseite) verwalten können:

Eingabedaten:

{ "orderReferenceId": "####{{ order.id }}", "orderType": "Bestellung", "currency": "USD", "shippingAddress": { "firstName": "####{{ order.shipping.recipient.first_name }}", "lastName": "####{{ order.shipping.recipient.last_name }}", "addressLine1": "####{{ order.shipping.address.line1 }}", "addressLine2": "####{{ order.shipping.address.line2 }}", "city": "####{{ order.shipping.address.city }}", "postCode": "####{{ order.shipping.address.postal_code }}", "country": "####{{ order.shipping.address.country }}", "state": "####{{ order.shipping.address.state }}", "email": "####{{ order.customer_email }}", "phone": "####{{ order.shipping.phone }}" }, "items": [ {% for item in order.items %} { "itemReferenceId": "####{{ item.id }}", "productUid": "####{{ lookups({'Artikelnummer': item.product_code}, strict=False, default='') }}", "quantity": ####{{ item.quantity }}, "Dateien": [ { "type": "Standard", "url": "####{{ item.file_url }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}

Vorlagen-Zuordnung:

{ "orderReferenceId": "####{{ orderNumber }}", "orderType": "Bestellung", "currency": "USD", "shippingAddress": { {% set nameParts = deliveryDetails.contactName.split(' ') %} "firstName": "####{{ nameParts[0] }}", "lastName": "####{{ nameParts[1:] | join(' ') }}", "addressLine1": "####{{ deliveryDetails.address.street }}", "city": "####{{ deliveryDetails.address.city }}", "state": "####{{ deliveryDetails.address.state }}", "postCode": "####{{ deliveryDetails.address.zip }}", "country": "####{{ deliveryDetails.address.country }}", "email": "####{{ deliveryDetails.email }}", "phone": "####{{ deliveryDetails.phone }}" }, "Artikel": [ {% for product in products %} { "itemReferenceId": "####{{ product.productId }}", "productUid": "####{{ lookups({'Artikelnummer': product.sku}, strict=False, default='') }}", "Menge": ####{{ product.qty }}, "Dateien": [ { "type": "Vorderseite", "url": "####{{ product.files.front }}" }, { "type": "Rückseite", "url": "####{{ product.files.back }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}

Beispiel für bedingte Logik

Dieses Beispiel zeigt, wie Sie mit verschiedenen Produkttypen flexibel umgehen können:

Eingabedaten:

{ "orderId": "ORD-5555", "Kunde": { "name": "Alice Johnson", "email": "[email protected]", "Telefon": "555-123-4567" }, "shipping": { "address": "789 Pine St", "apartment": "Wohnung", "city": "Boston", "state": "MA", "zipCode": "02108", "country": "US" }, "Artikel": [ { "id": "ITEM-A", "type": "Poster", "sku": "POSTER-LG", "Menge": 1, "image": "https://example.com/files/poster.jpg" }, { "id": "ITEM-B", "type": "Karte", "sku": "KARTE-SM", "quantity": 100, "frontImage": "https://example.com/files/card-front.jpg", "backImage": "https://example.com/files/card-back.jpg" } ]}

Vorlagen-Zuordnung:

{ "orderReferenceId": "####{{ orderId }}", "orderType": "Bestellung", "currency": "USD", "shippingAddress": { {% set nameParts = customer.name.split(' ') %} "firstName": "####{{ nameParts[0] }}", "lastName": "####{{ nameParts[1:] | join(' ') }}", "addressLine1": "####{{ shipping.address }}", {% if shipping.apartment %} "addressLine2": "####{{ shipping.apartment }}", {% endif %} "city": "####{{ shipping.city }}", "state": "####{{ shipping.state }}", "postCode": "####{{ shipping.zipCode }}", "country": "####{{ shipping.country }}", "email": "####{{ customer.email }}", "phone": "####{{ customer.phone }}" }, "items": [ {% for item in items %} { "itemReferenceId": "####{{ item.id }}", "productUid": "####{{ lookups({'Artikelnummer': item.sku}, strict=False, default='') }}", "quantity": ####{{ item.quantity }}, "Dateien": [ {% if item.type == 'poster' %} { "type": "Standard", "url": "####{{ item.image }}" } {% elif item.type == 'card' %} { "type": "Vorderseite", "url": "####{{ item.frontImage }}" }, { "type": "Rückseite", "url": "####{{ item.backImage }}" } {% endif %} ] }{% if not loop.last %},{% endif %} {% endfor %} ]}

Beispiel für eine Rückmeldung zum Bestellstatus

In diesem Beispiel sehen Sie, wie eine Benachrichtigung über eine Statusänderung einer Bestellung im Postback-Format gestaltet wird:

Eingabedaten:

{ "orderId": "a6a1f9ce-2bdd-4a9e-9f8d-0009df0e24d9", "orderReferenceId": "J123X456", "customerReferenceId": "CUST-789", "fulfillmentStatus": "versendet", "created": "12.04.2023 10:26:52", "items": [ { "itemReferenceId": "123", "fulfillmentStatus": "versendet", "Fulfillments": [ { "trackingCode": "TRK123456789", "trackingUrl": "https://example.com/tracking?code=TRK123456789", "carrierName": "FedEx", "carrierUid": "fed_ex_ground", "fulfillmentCountry": "US", "fulfillmentStateProvince": "NY" } ] } ]}

Vorlagen-Mapping:

{ "event": "BESTELLUNG_VERSENDET", "timestamp": "####{{ created }}", "order": { "id": "####{{ orderReferenceId }}", "customer_id": "####{{ customerReferenceId }}", "status": "####{{ fulfillmentStatus | upper }}", "shipped_items": [ {% for item in items %} {% if item.fulfillmentStatus == 'shipped' %} { "item_id": "####{{ item.itemReferenceId }}", "tracking": { {% for fulfillment in item.fulfillments %} "carrier": "####{{ fulfillment.carrierName }}", "tracking_number": "####{{ fulfillment.trackingCode }}", "tracking_url": "####{{ fulfillment.trackingUrl }}", "shipped_from": { "country": "####{{ fulfillment.fulfillmentCountry }}", "state": "####{{ fulfillment.fulfillmentStateProvince }}" } {% endfor %} } }{% if not loop.last %},{% endif %} {% endif %} {% endfor %} ] }}

Beispiel für erweiterte Suchfunktionen

Dieses Beispiel zeigt, wie Sie komplexe Zuordnungen für die Produktzuweisung und die Auswahl des Versanddienstleisters vornehmen können:

Eingabedaten:

{ "reference": "ORDER-8888", "Empfänger": { "fullName": "Robert Brown", "emailAddress": "[email protected]", "phoneNumber": "888-555-1212", "shippingInformation": { "streetAddress": "Eichenallee 321", "city": "Chicago", "state": "IL", "postalCode": "60601", "countryCode": "US" } }, "orderItems": [ { "lineItemId": "LI-001", "productReference": { "code": "BK-HCVR-A5", "type": "Hardcover-Buch", "size": "A5" }, "quantity": 1, "assetUrls": { "coverFile": "https://example.com/files/book-cover.pdf", "interiorFile": "https://example.com/files/book-interior.pdf" }, "additionalAttributes": { "pageCount": 120, "paperType": "Premiumpapier" } } ], "shippingPreference": "Standardversand", "region": "Nordamerika"}

Vorlagen-Zuordnung:

{% set shipping_lookup = { "express_north_america": "fed_ex_2_day", "express_europe": "dhl_express_eu", "standard_north_america": "UPS Ground", "standard_europe": "dhl_parcel_eu"} %}{% set product_lookup = {} %}{% set product_lookup = product_lookup.update({ "BK-HCVR-A5-premium": "buch_produkt_pf_a5_pt_premium_cl_4-4_hcvr", "BK-HCVR-A5-standard": "falten_produkt_pf_a5_pt_standard_cl_4-4_hcvr", "BK-SCVR-A5-premium": "Buch_Produkt_PF_A5_PT_Premium_CL_4-4_SCVR", "BK-SCVR-A5-standard": "buchprodukt_pf_a5_pt_standard_cl_4-4_scvr"}) %}{ "orderReferenceId": "####{{ reference }}", "orderType": "Bestellung", "currency": "USD", {% set shipping_key = shippingPreference + '_' + region %} "shipmentMethodUid": "####{{ shipping_lookup.get(shipping_key, 'normal') }}", "shippingAddress": { {% set name_parts = recipient.fullName.split(' ') %} "firstName": "####{{ name_parts[0] }}", "lastName": "####{{ name_parts[1:] | join(' ') }}", "addressLine1": "####{{ recipient.shippingInformation.streetAddress }}", "city": "####{{ recipient.shippingInformation.city }}", "state": "####{{ recipient.shippingInformation.state }}", "postCode": "####{{ recipient.shippingInformation.postalCode }}", "country": "####{{ recipient.shippingInformation.countryCode }}", "email": "####{{ recipient.emailAddress }}", "phone": "####{{ recipient.phoneNumber }}" }, "items": [ {% for item in orderItems %} { "itemReferenceId": "####{{ item.lineItemId }}", {% set product_key = item.productReference.code + '-' + item.additionalAttributes.paperType %} "productUid": "####{{ product_lookup.get(product_key, lookups({'code': item.productReference.code, 'paper': item.additionalAttributes.paperType}, strict=False, default='')) }}", "quantity": ####{{ item.quantity }}, "Seitenanzahl": ####{{ item.additionalAttributes.pageCount }}, "Dateien": [ { "type": "Umschlag", "url": "####{{ item.assetUrls.coverFile }}" }, { "type": "innen", "url": "####{{ item.assetUrls.interiorFile }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}

Mit Daten arbeiten und sie richtig formatieren

Dieses Beispiel zeigt, wie Sie Datumsformate anwenden und Texte bearbeiten können:

Eingabedaten:

{ "orderNum": "INV-20230412-001", "datePlaced": "12.04.2023 14:30", "clientDetails": { "id": "CLIENT001", "contactInfo": { "name": "SARAH WILLIAMS", "email": "[email protected]", "Telefon": "1.212.555.7890" }, "deliveryAddress": { "line1": "555 Broadway", "line2": "10. Etage", "city": "New York", "region": "New York", "code": "10012", "country": "Vereinigte Staaten" } }, "lineItems": [ { "refCode": "LI-001-A", "productIdentifier": "BROCHURE-A4-GLOSSY", "amount": 250, "Design": "https://example.com/files/brochure.pdf" } ]}

Vorlagen-Mapping:

{% set country_codes = { "Vereinigte Staaten": "US", "Vereinigtes Königreich": "GB", "Kanada": "CA", "Australien": "AU", "Germany": "DE", "Frankreich": "FR"} %}{% set date_parts = datePlaced.split('T')[0].split('-') %}{% set formatted_date = date_parts[2] + '.' + date_parts[1] + '.' + date_parts[0] %}{ "orderReferenceId": "####{{ orderNum }}", "orderType": "Bestellung", "currency": "USD", "Metadaten": [ { "key": "clientId", "value": "####{{ clientDetails.id }}" }, { "key": "Bestelldatum", "value": "####{{ formatted_date }}" } ], "shippingAddress": { {% set name_parts = clientDetails.contactInfo.name | lower | title | split(' ') %} "firstName": "####{{ name_parts[0] }}", "lastName": "####{{ name_parts[1:] | join(' ') }}", "addressLine1": "####{{ clientDetails.deliveryAddress.line1 }}", "addressLine2": "####{{ clientDetails.deliveryAddress.line2 }}", "city": "####{{ clientDetails.deliveryAddress.city }}", "state": "####{{ clientDetails.deliveryAddress.region }}", "postCode": "####{{ clientDetails.deliveryAddress.code }}", "country": "####{{ country_codes.get(clientDetails.deliveryAddress.country, 'US') }}", "email": "####{{ clientDetails.contactInfo.email }}", "phone": "####{{ clientDetails.contactInfo.telephone | replace('.', '-') }}" }, "items": [ {% for item in lineItems %} { "itemReferenceId": "####{{ item.refCode }}", "productUid": "####{{ lookups({'product_id': item.productIdentifier}, strict=False, default='') }}", "quantity": ####{{ item.amount }}, "files": [ { "type": "Standard", "url": "####{{ item.design }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}

Fehlerbehandlung und Standardwerte

Dieses Beispiel zeigt, wie Sie Fehler sicher abfangen und dabei Standardwerte verwenden:

Eingabedaten:

{ "id": "ORD-91011", "buyer": { "name": "Michael Johnson" // E-Mail-Feld fehlt }, "shipping": { "name": "Michael Johnson", "address": "111 River Rd", // Stadt fehlt "province": "Ontario", "postal": "M5V 2H1", "country": "CA" }, "items": [ { "id": "ITEM-001", "sku": "KALENDER-WAND", "Menge": 1, "assets": { "main": "https://example.com/files/kalender.pdf" } }, { // Unvollständiger Artikel "id": "ITEM-002" } ]}

Vorlagen-Zuordnung:

{ "orderReferenceId": "####{{ id }}", "orderType": "Bestellung", "currency": "CAD", "shippingAddress": { {% set recipient = shipping.name | default('') %} {% set name_parts = recipient.split(' ') if recipient else ['', ''] %} "firstName": "####{{ name_parts[0] | default('Unbekannt') }}", "lastName": "####{{ name_parts[1:] | join(' ') | default('Kunde') }}", "addressLine1": "####{{ shipping.address | default('Adresse fehlt') }}", "city": "####{{ shipping.city | default('Toronto') }}", "state": "####{{ shipping.province | default('ON') }}", "postCode": "####{{ shipping.postal | default('') }}", "country": "####{{ shipping.country | default('CA') }}", "email": "####{{ buyer.email | default('[email protected]') }}", "phone": "####{{ buyer.phone | default('000-000-0000') }}" }, "items": [ {% for item in items %} {% if item.id und item.artikelnummer und item.quantity %} { "itemReferenceId": "####{{ item.id }}", "productUid": "####{{ lookups({'artikelnummer': item.sku}, strict=False, default='') }}", "quantity": ####{{ item.quantity }}, "Dateien": [ { "type": "Standard", "url": "####{{ item.assets.main | default('') }}" } ] }{% if not loop.last %},{% endif %} {% endif %} {% endfor %} ]}

Mehrere Quellen geschickt verbinden

In diesem Beispiel werden Daten aus verschiedenen Quellen zusammengeführt:

Eingabedaten:

{ "order": { "id": "PO-12345", "type": "Standard" }, "Kunde": { "id": "CUST-789", "segment": "Geschäft" }, "Empfänger": { "first": "David", "last": "Miller", "email": "[email protected]", "phone": "303-555-1212", "delivery": { "address": "987 State St", "suite": "Suite 500", "city": "Denver", "state": "CO", "zip": "80202", "country": "US" } }, "Produkte": [ { "id": "PROD-A1", "code": "FLYER-A4-FULL", "count": 500, "Design": "https://example.com/files/flyer.pdf" } ], "shipping": { "method": "Standardversand", "expectedDays": 3 }, "promotion": { "campaign": "SPRING2023", "Quelle": "E-Mail" }}

Vorlagen-Zuordnung:

{% set shipping_method_map = { "overnight": "fed_ex_priority_overnight", "express": "fed_ex_2_day", "ground": "fed_ex_ground"} %}{ "orderReferenceId": "####{{ order.id }}", "orderType": "####{{ 'Entwurf' if order.type == 'preorder' else 'Bestellung' }}", "currency": "USD", "customerReferenceId": "####{{ customer.id }}", "shipmentMethodUid": "####{{ shipping_method_map.get(shipping.method, 'normal') }}", "Metadaten": [ { "key": "Kampagne", "value": "####{{ promotional.campaign }}" }, { "key": "Quelle", "value": "####{{ promotional.source }}" }, { "key": "Segment", "value": "####{{ customer.segment }}" }, { "key": "voraussichtlicheLieferung", "value": "####{{ shipping.expectedDays }}" } ], "shippingAddress": { "firstName": "####{{ recipient.first }}", "lastName": "####{{ recipient.last }}", "addressLine1": "####{{ recipient.delivery.address }}", "addressLine2": "####{{ recipient.delivery.suite }}", "city": "####{{ recipient.delivery.city }}", "state": "####{{ recipient.delivery.state }}", "postCode": "####{{ recipient.delivery.zip }}", "country": "####{{ recipient.delivery.country }}", "email": "####{{ recipient.email }}", "phone": "####{{ recipient.phone }}" }, "items": [ {% for product in products %} { "itemReferenceId": "####{{ product.id }}", "productUid": "####{{ lookups({'Artikelnummer': product.code}, strict=False, default='') }}", "Menge": ####{{ product.count }}, "Dateien": [ { "type": "Standard", "url": "####{{ product.design }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}

Arbeiten mit komplexen verschachtelten Strukturen

Dieses Beispiel zeigt, wie Sie mit komplex verschachtelten Datenstrukturen umgehen können:

Eingabedaten:

{ "data": { "transaction": { "identifiers": { "internalRef": "TX-44556", "customerRef": "CUST-ABC123" }, "metadata": { "createdAt": "12.04.2023 09:15", "source": "Web", "Tags": ["priority", "corporate"] } }, "parteien": { "Absender": { "organization": "Acme Corp", "contact": { "person": { "givenName": "Thomas", "familyName": "Anderson" }, "details": { "email": { "address": "[email protected]" }, "phone": { "number": "415-555-9876", "Durchwahl": "123" } } } }, "recipient": { "person": { "givenName": "Sarah", "familyName": "Connor" }, "contactDetails": { "emailAddress": "[email protected]", "phoneNumber": "213-555-4321" }, "location": { "address": { "street": "1984 Tech Blvd", "unit": "#42", "locality": "Los Angeles", "region": "Kalifornien", "postalCode": "90210", "country": "USA" } } } }, "contents": { "items": [ { "descriptor": { "id": "ITM-X789", "type": "Broschüre", "specifications": { "format": "A4", "paperType": "Glänzend", "colorProfile": "CMYK" } }, "quantity": { "value": 1000, "unit": "Stück" }, "digitalAssets": { "printable": { "fileLocation": "https://example.com/files/broschuere-komplex.pdf" } } } ] } }}

Vorlagen-Mapping:

{% set country_map = { "USA": "USA", "United States": "USA", "United States of America": "USA", "UK": "GB", "Vereinigtes Königreich": "GB", "England": "GB"} %}{ "orderReferenceId": "####{{ data.transaction.identifiers.internalRef }}", "orderType": "Bestellung", "currency": "USD", "customerReferenceId": "####{{ data.transaction.identifiers.customerRef }}", "Metadaten": [ { "key": "createdAt", "value": "####{{ data.transaction.metadata.createdAt }}" }, { "key": "Quelle", "value": "####{{ data.transaction.metadata.source }}" }, {% for tag in data.transaction.metadata.tags %} { "key": "tag_####{{ loop.index }}", "value": "####{{ tag }}" }{% if not loop.last %},{% endif %} {% endfor %} ], "shippingAddress": { "firstName": "####{{ data.parties.recipient.person.givenName }}", "lastName": "####{{ data.parties.recipient.person.familyName }}", "addressLine1": "####{{ data.parties.recipient.location.address.street }}", "addressLine2": "####{{ data.parties.recipient.location.address.unit }}", "city": "####{{ data.parties.recipient.location.address.locality }}", "state": "####{{ data.parties.recipient.location.address.region }}", "postCode": "####{{ data.parties.recipient.location.address.postalCode }}", "country": "####{{ country_map.get(data.parties.recipient.location.address.country, data.parties.recipient.location.address.country) }}", "email": "####{{ data.parties.recipient.contactDetails.emailAddress }}", "phone": "####{{ data.parties.recipient.contactDetails.phoneNumber }}" }, "items": [ {% for item in data.contents.items %} { "itemReferenceId": "####{{ item.descriptor.id }}", "productUid": "####{{ lookups({ 'type': item.descriptor.type, 'format': item.descriptor.specifications.format, 'Papier': item.descriptor.specifications.paperType }, strict=False, default='') }}", "quantity": ####{{ item.quantity.value }}, "Dateien": [ { "type": "Standard", "url": "####{{ item.digitalAssets.printable.fileLocation }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}

Tipps für erfolgreiche Template Mapper

Wenn Sie mit Jinja2 Template Mappers in GelatoConnect arbeiten, sollten Sie diese praktischen Tipps beachten:

  1. Setzen Sie Debugging-Techniken ein:

    • Fügen Sie vorübergehende Felder hinzu, um Zwischenergebnisse anzuzeigen

    • Verwenden Sie den Filter {% raw %}####{{ variable | tojson }}{% endraw %}, um komplexe Objekte zu überprüfen.

  2. Set-Anweisungen mit Bedingungen kombinieren:

    jinja{% set shipping_type = 'express' if order.priority == 'high' else 'standard' %}
  3. Umgang mit fehlenden oder verschachtelten Daten:

    jinja####{{ data.get('nested', {}).get('deeply', {}).get('property', 'default_value') }}
  4. Erstellen Sie Übersichtslisten für häufige Zuordnungen:

    {% set status_map = {'NEW': 'eingegangen', 'SHIPPED': 'versendet', 'DELIVERED': 'zugestellt'} %}"status": "####{{ status_map.get(input_status, 'unbekannt') }}"
  5. Wiederverwendbare Logik in Makros bündeln:

    {% macro format_phone(phone) %}####{{ phone | replace(' ', '') | replace('.', '-') }}{% endmacro %}
  6. Verwenden Sie Filter, um Daten zu verwandeln:

    • Rand: Entfernt Leerzeichen

    • replace: Text ersetzen

    • upper/lower/title: Schreibweise ändern

    • default: Geben Sie Ersatzwerte an

    • tojson: Als JSON-String formatieren

  7. Beachten Sie die Leistung bei großen Datenmengen:

    • Berechnen Sie Werte vor der Schleife

    • Verwenden Sie Set-Anweisungen außerhalb von Schleifen

    • Halten Sie Vorlagen klar und zielgerichtet

Wie geht es weiter

Nachdem Sie sich diese praktischen Beispiele angeschaut haben, können Sie jetzt:

  1. Passen Sie diese Vorlagen an Ihre individuellen Integrationsbedürfnisse an

  2. Kombinieren Sie verschiedene Techniken, um noch vielseitigere Veränderungen zu gestalten.

  3. Testen Sie Ihre Vorlagen gründlich mit echten Daten

  4. Richten Sie Postback-Auslöser mit diesen Vorlagen ein

  5. Setzen Sie Nachschlagefunktionen ein, um Werte effizient zuzuordnen.

Hat dies deine Frage beantwortet?