Import von Aufträgen via Smarty

Ich versuche Aufträge von einem FTP Server via Smarty ins Xentral zu importieren. Vieles funktioniert leider wird der Auftragstatus falsch importiert er sollte auf angelegt sein und nicht freigegeben.

Hier ist mein Smarty Skript_

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <xml>
        {*  Damit die Positionen jeweiks dem richtigen Auftrag zu geordnet werden kann 
            wird die Hilfsvariabeln letztebestellnummer verwendet *}
        {assign var="letztebestellnummer" value=0}
        {assign var="ersterbeleg" value=1}

        {* Globale Variabeln *}
        {assign var="mandantWD" value=14427}
        {assign var="mandantMM" value=44685}
        {assign var="herkunftGalaxus" value=18}

        <auftrag_list>
            {foreach from=$object key=keyrow item=position}
                {if $letztebestellnummer <> $position->internet and $ersterbeleg == 0}
                    </auftrag_position_list>
                    </auftrag>
                {/if}

                {assign var="versandprofil" value="{$position->versandart}"}

                {* Setze die Standard Versandart *}
                {assign var="versandart" value="postpaceconomy_1"}

                {* Mapping Versandprofil Plentymarkets -> Xentral*}
                {if in_array($versandprofil, [44, 56, 75, 78])}
                    {assign var="versandart" value="postpaceconomy_1"}
                {elseif in_array($versandprofil, [53, 68])}
                    {assign var="versandart" value="einschreibenInland_1"}
                {elseif in_array($versandprofil, [57, 59, 60, 62, 64, 69, 72, 77, 80])}
                    {assign var="versandart" value="postpacpriority_1"}
                {elseif in_array($versandprofil, [73, 74])}
                    {assign var="versandart" value="swissexpressmond_1"}
                {/if}

                {* Wenn die Bestellunnummer noch nicht vorgekommen ist eröffne einen Auftrag -> XML öffender tag <auftrag> *}
                {if $letztebestellnummer <> $position->internet or $ersterbeleg == 1}
                    <auftrag>
                        {* Setze die letze Bestellnummer (internet bzw. Auftrags ID von Plenty) neu, ersterbeleg auf falsch*}
                        {$ersterbeleg = 0}{$letztebestellnummer= $position->internet}

                        {* Initialisere Variabeln *}
                        {assign var="status" value="angelegt"}
                        {assign var="datum" value="{$position->datum|date_format:"%d.%m.%Y"}"}
                        {assign var="istfirma" value=0}
                        {assign var="externalOrderIds" value="{$position->externeauftragsid}"}
                        {assign var="externalOrderIdArray" value="|"|explode:$externalOrderIds}
                        {assign var="mandant" value="{$position->plentyId}"}
                        {assign var="herkunft" value="{$position->herkunftsId}"}
                        {assign var="internet" value="{$mandant}|{$herkunft}"}
                        {assign var="abweichendelieferaddresse" value=0}
                        {assign var="projekt" value="STANDARD"}
                        {assign var="anrede" value=""}
                        {assign var="bemerkungen" value=""}
                        {assign var="bestellnummer" value="{$position->internet}"}

                        {* Kontaktdaten *}
                        {assign var="email" value="{$position->email}"}
                        {assign var="telefon" value="{$position->telefon}"}

                        {* Rechnungsadresse Daten *}
                        {assign var="firma" value="{$position->firma}"}
                        {assign var="addresszusatz" value="{$position->adresszusatz|escape:"html"}"}
                        {assign var="ansprechparter" value="{$position->ansprechpartner}"}
                        {assign var="name" value="{$position->name}"}
                        {assign var="strasse" value="{$position->strasse}"}
                        {assign var="plz" value="{$position->plz}"}
                        {assign var="ort" value="{$position->ort}"}
                        {assign var="land" value="{$position->land}"}

                        {* Lieferaddresse Daten*}
                        {assign var="lieferfirma" value="{$position->lieferfirma}"}
                        {assign var="lieferadresszusatz" value="{$position->lieferadresszusatz|escape:"html"}"}
                        {assign var="lieferansprechparter" value="{$position->lieferansprechparter}"}
                        {assign var="liefername" value="{$position->liefername}"}
                        {assign var="lieferort" value="{$position->lieferort}"}
                        {assign var="lieferstrasse" value="{$position->lieferstrasse}"}
                        {assign var="lieferplz" value="{$position->lieferplz}"}
                        {assign var="lieferland" value="{$position->lieferland}"}

                        {* Projekt bestimmen *}
                        {if $mandant == $mandantWD and $herkunft != $herkunftGalaxus}
                            {assign var="projekt" value="WD"}
                        {elseif $herkunft == $herkunftGalaxus}
                            {assign var="projekt" value="DIGITECGALAXUS"}
                        {elseif $mandant == $mandantMM}
                            {assign var="projekt" value="MM"}
                        {/if}

                        {* Sind Firmendaten vorhanden *}
                        {if $firma != "" || $lieferfirma != ""}
                            {assign var="istfirma" value=1}
                        {/if}

                        {* Anrede bestimmen und Name und Ansprechpartner setzen  *}
                        {if $istfirma == 1}
                            {$anrede="firma"}
                            {if $firma != ""}
                                {assign var="name" value="{$firma}"}
                            {elseif $lieferfirma != ""}
                                {assign var="name" value="{$lieferfirma}"}
                            {/if}
                        {/if}

                        {* Check ob Rechnung und Lieferaddress daten übereinstimmen *}
                        {if $name != $liefername || $strasse != $lieferstrasse}
                            {assign var="abweichendelieferaddresse" value=1}
                        {/if}

                        {* Mandant Informationen *}
                        {assign var="mandantInfos" value="<strong>Plentymarkets | Mandant ID:</strong><br />{$mandant}<br />
                <strong>Plentymarkets | Herkunft ID:</strong><br />{$herkunft}<br />
                <strong>Plentymarkets | Versandprofil ID:</strong><br />{$versandprofil}<br />
                <strong>Versandart:</strong><br />{$versandart}<br />" }

                        {assign var="rechnungsadresse" value="Rechnungsaddresse: <br />"}

                        {if ansprechparter != ''}
                            {assign var="rechnungsadresse" value="{$rechnungsadresse|cat: $ansprechparter}<br />"}
                        {/if}
                        {if addresszusatz != ''}
                            {assign var="rechnungsadresse" value="{$rechnungsadresse|cat: $addresszusatz}<br />"}
                        {/if}
                        {if istfirma == 1 && firma != ''}
                            {assign var="rechnungsadresse" value="{$rechnungsadresse|cat: $addresszusatz}<br />"}
                        {/if}
                        {assign var="rechnungsadresse" value="{$rechnungsadresse|cat: $name}<br />"}
                        {assign var="rechnungsadresse" value="{$rechnungsadresse|cat: $plz} "}
                        {assign var="rechnungsadresse" value="{$rechnungsadresse|cat: $ort}<br />"}
                        {assign var="rechnungsadresse" value="{$rechnungsadresse|cat: $land}<br />"}

                        <projekt>{$projekt}</projekt>
                        <datum>{$datum}</datum>
                        <status>{$status}</status>
                        <internet>{$internet}</internet>
                        <versandart>{$versandart}</versandart>
                        <adresszusatz>{$addresszusatz}</adresszusatz>
                        <strasse>{$strasse}</strasse>
                        <plz>{$plz}</plz>
                        <ort>{$ort}</ort>
                        <land>{$land}</land>
                        <ihrebestellnummer>{$bestellnummer}</ihrebestellnummer>
                        <email>{$email}</email>
                        <telefon>{$telefon}</telefon>
                        <lieferunterabteilung></lieferunterabteilung>
                        <internebemerkung>{$mandantInfos|escape:"html"}{$rechnungsadresse|escape:"html"}
                        </internebemerkung>
                        <name>{$name}</name>
                        <ansprechpartner>{$ansprechpartner}</ansprechpartner>
                        <abweichendelieferadresse>{$abweichendelieferaddresse}</abweichendelieferadresse>
                        {if $abweichendelieferaddresse}
                            {if $lieferfirma != ""}
                                <liefername>{$lieferfirma}</liefername>
                                <lieferansprechpartner>{$lieferansprechpartner}</lieferansprechpartner>
                            {else}
                                <liefername>{$liefername}</liefername>
                            {/if}
                            <lieferstrasse>{$lieferstrasse}</lieferstrasse>
                            <lieferplz>{$lieferplz}</lieferplz>
                            <lieferort>{$lieferort}</lieferort>
                            <lieferland>{$lieferland}</lieferland>
                            <lieferadresszusatz>{$lieferadresszusatz}</lieferadresszusatz>
                        {/if}
                        <firma>{$istfirma}</firma>
                        <anrede>{$anrede}</anrede>
                        <auftrag_position_list>
                        {/if}
                        <auftrag_position>
                            <name_de>{$position->bezeichnung|escape:"html"}</name_de>
                            <menge>{$position->menge}</menge>
                            <preis_netto>{$position->preis}</preis_netto>
                            <nummer>{$position->nummer}</nummer>
                        </auftrag_position>
                    {/foreach}
                </auftrag_position_list>
            </auftrag>
        </auftrag_list>
    </xml>
</response>

Kann hier jemand sagen, wieso der Status nach dem Import nicht auf angelegt ist?

Hi @Nicolas_Andrea_Almy ,

sieht eigentlich soweit korrekt aus. Versuchs einmal in Grossbuchstaben, also “ANGELEGT”.

Sonst hätte ich auch keine Idee, ausser direkt über den neuen Sales Order Endpunkt der API zu gehen.

Wenn es per FTP und XML gehen soll/muss, könnten wir dir mit unserer Middleware weiterhelfen.

@Sebastian_Halbig siehst du hier etwas auffälliges?

Beste Grüße,
Daniel

@Daniel_Schmidtchen Danke, Daniel!

@Nicolas_Andrea_Almy

Hi!

Versuch mal bitte “offen”. Ich meine mich zu erinnern, dass ich auch schon einmal darüber gestolpert bin.

Leider ist die Beschreibung seitens XENTRAL doch Bescheiden, wenn es um Smarty geht.

Gib mal Feedback, sonst muss ich noch mal suchen, was da anstelle von “angelegt” reinkommt. Sonst einfach mal eine XML Blank ausprobieren und nur die wichtigen Dinge hinterlegen ohne die Bedingungen und den Status einsetzen. Aber ich lese korrekt raus, das freigegeben funktioniert?

Viele Grüße,

Sebastian

@Sebastian_Halbig
Habe jetzt es mal mit offen und OFFEN versucht. Leider hat das noch nicht geklappt. Ich versuche es noch mal ohne den XML-Tag . Ich habe aber gemeint, dann legt er die Aufträge als freigegeben an.

@Nicolas_Andrea_Almy

Was passiert denn, wenn Du versendet reinschreibst? Kommt dann auch Freigegeben? Dann würde ich eine Ebene höher im Übertragungsmodul schauen, ob Da etwas gesetzt ist.