Beantwortet

eBay: Informationen aus addressLine2 (Hausnummer) per Smarty


Benutzerebene 3
Abzeichen +1

Hallo zusammen,

in letzter Zeit häufen sich bei uns “fehlende Hausnummern” beim eBay Import. Diese stehen dann im Feld “addressLine2” welches offensichtlich nicht durch den eingestellten xentral Import berücksichtigt wird.

 

Eingangswerte:

                  <addressLine1>Straßenname</addressLine1>
                  <addressLine2>Hausnummer</addressLine2> (nur ersichtlich wenn Wert enthalten, sonst fehlt das Feld)

 

Meine Vorstellung ist, dies durch eine Smarty-Korrektur korrekt in das Feld <strasse></strasse> geladen wird. Leider fehlt mir hier das Knowhow zwei Werte zusammenzusetzen (verketten) im Smarty.

 

Versucht habe ich es mit

 

{*START PREPARING*}
 {assign var=contactAddress value=$cart->orderData->fulfillmentStartInstructions->item0->shippingStep->shipTo->contactAddress}
 {assign var=allData value=$cart}

{*PREPARE SHIPPING ADDRESS*}
 {assign var=addressLine1 value=$shippingData->addressLine1}
 {assign var=addressLine2 value=$shippingData->addressLine2}
 {if $addressLine2 != ""}
  {assign var=contactAddress value="$addressLine1 $addressLine2"}
 {else}
  {assign var=contactAddress value="$addressLine1"}
 {/if}
 {*END PREPARING*}

{*ADDRESS LOGIC*}
<strasse><![CDATA[{$contactAddress}]]></strasse>

 

Weiß jemand Rat bzw. den korrekten Code zum verketten?

 

Dankeschön.

icon

Beste Antwort von HB3 14 April 2023, 14:21

Original anzeigen

4 Antworten

Benutzerebene 7
Abzeichen +5

Das sollte so eigentlich passen, aber es wird sich nur auf deine Belege, nicht aber auf die Kundenstammdaten auswirken. Der Kunde wird in Xentral vor der Abarbeitung durch SMARTY importiert/angelegt.

Meiner Meinung nach müsste das = ein == sein, so hab ich das eingebaut.

 

Benutzerebene 3
Abzeichen +1

Hi, leider nein. Das Ergebnis bleibt leer.
Wir haben die addressLine2 jetzt übergangsweise in das Feld Ansprechpartner geschoben. Das funktioniert auch und wird entsprechend in den Stammdaten angelegt. Natürlich nix sauberes….

Das “==” führt zu einem Formatfehler, was nach meinem Verständnis auf Sinn ergibt. 
Auch wird kein Ergebnis mit obigem Smarty ausgeworfen.
Wenn du es eingebaut hast - würdest du deine Version des Smarty hier sharen?

Danke dir und viele Grüße
Jan

Benutzerebene 7
Abzeichen +5

Hallo,

ich greife per SMARTY ein Custom-Field einer Shopware-App ab und reichere damit die Internetnummer mit der Bestellnummer des Marktplatzes an.

Mit dem == habe ich mich an die SMARTY Dokumentation gehalten: {if},{elseif},{else} | Smarty

Mein SMARTY-Template:

{if $cart->order->attributes->customFields->cbaxExternalOrderOrdernumber != NULL}
    <onlinebestellnummer>{$cart->order->attributes->orderNumber}-{if $cart->order->attributes->affiliateCode =='galaxus'}GX{else}{if $cart->order->attributes->affiliateCode =='otto'}OT-{else}{/if}{/if}{$cart->order->attributes->customFields->cbaxExternalOrderOrdernumber}</onlinebestellnummer>
   {else}
    <onlinebestellnummer>$cart->order->attributes->orderNumber}]]></onlinebestellnummer>
   {/if}

 

Und das funktioniert.

Benutzerebene 3
Abzeichen +1

Okay, verstanden. Du nutzt kein “assign” in deinem Teil. Ich habe mich ebenso an der SMARTY Doc im Shopimporter orientiert (Unterpunkt Shopify).

Aber du hast mich auf eine Idee gebracht ohne zu assignen und sie funktioniert (vorbehaltlich Beobachtung):

<strasse>
{if $cart->orderData->fulfillmentStartInstructions->item0->shippingStep->shipTo->contactAddress->addressLine2 != NULL} 
    {$cart->orderData->fulfillmentStartInstructions->item0->shippingStep->shipTo->contactAddress->addressLine1} {$cart->orderData->fulfillmentStartInstructions->item0->shippingStep->shipTo->contactAddress->addressLine2}
        {else}
        {$cart->orderData->fulfillmentStartInstructions->item0->shippingStep->shipTo->contactAddress->addressLine1}
{/if}
</strasse>

 

Danke dir für den Anstoß!

Antworten