Hallo,
leider konnte mir der Xentral Suppport nicht weiterhelfen (nicht im Support-Umfang enthalten, genauso wenig wie eine funktionierende Betriebsanleitung
), daher poste ich hier unseren Smarty Importer für Woocommerce. Vielleicht kann bitte ein fähiger Programmierer darüber schauen und den Code optimieren? 
Seit dem Update auf 23.3.1 funktioniert zB die Abfrage der Abweichenden Lieferadresse nicht mehr. Obwohl im Smarty-Test oft “0” ausgegeben wird, wird beim Import trotzdem eine “1” geschrieben. Weiß jemand warum? 
Außerdem meinte der Xentral-Support, dass nur die erkannten Knoten ersetzt werden sollen und nicht das ganze Template ersetzt werden soll (Häkchen in Smarty-Einstellung “Warenkorb ersetzten”). Wir haben dies gesetzt, und bisher keine Probleme damit. Hat dazu bereits jemand Erfahrungen gemacht?
Durch die Nutzung unterschiedlichster Plugins im Shop sieht die XML-Datei auch sehr unterschiedlich aus, die Grundstrutktur sollte jedoch gleich sein. Wir fragen nicht alle Sachen im Smarty ab, daher sind nicht alle ansprechbaren Variablen enthalten.
Da wir ein Problem mit den rückgerechneten Preisen in Xentral hatten (Rundungsfehler in rückgerechneten Preisen mit dem 1 Cent Fehler bzw. fehlerhafte Erkennung der Zahlungsströmen, haben wir den Import so umgebaut, dass Bruttopreise vom Shop ausgegeben werden bei Lieferland Deutschland, und Nettopreise bei innergemeinschaftlicher Lieferung. Drittland müsste noch ergänzt werden durch Abfrage der definierten Lieferländer z.B. “CH” oder “UK”. Es werden dann die Nettopreise rückgerechnet.
Gern würde ich eure Meinung hören, was gut ist und was noch verbessert werden kann. Wir möchten den Code so schlank wie möglich halten.
Enthalten sind folgende Abfragen:
- Stückpreis Brutto
- Anrede, Anschreiben, Gruppe (gruppe funktioniert leider noch nicht)
- abweichende Lieferadresse
- USt-ID/VAT-Nummer mit Brutto/Nettopreis
Was noch nicht enthalten ist:
- Rabatte
- Fremdnummern (unsere Nummern sind gleich, weil wir ein Produzent sind)
- Drittländer
- Artikeloptionen
Hier unser Smarty-Template zu freien Nutzung und Weiterentwicklung ohne Gewähr
:
{Warenkorb}
auftragsdaten->date_created}]]>
auftragsdaten->date_modified}]]>
auftragsdaten->number}]]>
1
auftragsdaten->customer_note}]]>
{Versand}
auftragsdaten->shipping_lines->item0->method_id}]]>
auftragsdaten->shipping_lines->item0->total+$cart->auftragsdaten->shipping_lines->item0->total_tax}]]>
auftragsdaten->tax_lines->item0->rate_percent}]]>
{if $cart->auftragsdaten->billing->first_name neq $cart->auftragsdaten->shipping->first_name
OR $cart->auftragsdaten->billing->last_name neq $cart->auftragsdaten->shipping->last_name
OR $cart->auftragsdaten->billing->company neq $cart->auftragsdaten->shipping->company
OR $cart->auftragsdaten->billing->address_1 neq $cart->auftragsdaten->shipping->address_1
OR $cart->auftragsdaten->billing->address_2 neq $cart->auftragsdaten->shipping->address_2
OR $cart->auftragsdaten->billing->postcode neq $cart->auftragsdaten->shipping->postcode
OR $cart->auftragsdaten->billing->city neq $cart->auftragsdaten->shipping->city
OR $cart->auftragsdaten->billing->country neq $cart->auftragsdaten->shipping->country}
<abweichende_lieferadresse>1</abweichende_lieferadresse>
{else}
<abweichende_lieferadresse>0</abweichende_lieferadresse>
{/if}
{Zahlung}
auftragsdaten->transaction_id}]]>
auftragsdaten->currency}]]>
auftragsdaten->total}]]>
auftragsdaten->payment_method}]]>
{Metadaten}
{foreach key=metadataKey item=metadataItem from=$cart->auftragsdaten->meta_data}
{if $metadataItem->key == “is_vat_exempt”}
{if $metadataItem->value == “yes”}
<ust_befreit>1</ust_befreit>
{/if}
{/if}
{if $metadataItem->key == “billing_vat”}
value}]]>
{/if}
{if $metadataItem->key == “wpml_language”}
value}]]>
{/if}
{if $metadataItem->key == “_billing_anrede”}
{assign var=billing_anrede $metadataItem->value}
{/if}
{if $metadataItem->key == “_shipping_anrede”}
{assign var=shipping_anrede $metadataItem->value}
{/if}
{/foreach}
{Anrede, Anschreiben und Gruppe}
{if $cart->auftragsdaten->billing->company == “”}
B2C
{if $billing_anrede == “Frau”}
frau
Sehr geehrte Frau {$cart->auftragsdaten->billing->last_name}
{/if}
{if $billing_anrede == “Herr”}
herr
Sehr geehrter Herr {$cart->auftragsdaten->billing->last_name}
{/if}
{if $billing_anrede == “Mister”}
herr
Dear Mr. {$cart->auftragsdaten->billing->last_name}
{/if}
{if $billing_anrede == “Miss”}
frau
Dear Ms. {$cart->auftragsdaten->billing->last_name}
{/if}
{else}
B2B Registrierung
{if $billing_anrede == “Company”}
Dear Ladies and Gentlemen
{/if}
{/if}
{Rechnungsadresse}
{if $cart->auftragsdaten->billing->company == “”}
auftragsdaten->billing->first_name} {$cart->auftragsdaten->billing->last_name}]]>
{else}
auftragsdaten->billing->company}]]>
auftragsdaten->billing->first_name} {$cart->auftragsdaten->billing->last_name}]]>
{/if}
auftragsdaten->billing->phone}]]>
auftragsdaten->billing->address_1}]]>
auftragsdaten->billing->postcode}]]>
auftragsdaten->billing->city}]]>
auftragsdaten->billing->country}]]>
auftragsdaten->billing->email}]]>
auftragsdaten->billing->address_2}]]>
{Lieferadresse}
{if $cart->auftragsdaten->billing->company == “”}
<lieferadresse_name>auftragsdaten->shipping->first_name} {$cart->auftragsdaten->shipping->last_name}]]></lieferadresse_name>
{else}
<lieferadresse_name>auftragsdaten->shipping->company}]]></lieferadresse_name>
<lieferadresse_ansprechpartner>auftragsdaten->shipping->first_name} {$cart->auftragsdaten->shipping->last_name}]]></lieferadresse_ansprechpartner>
{/if}
<lieferadresse_strasse>auftragsdaten->shipping->address_1}]]></lieferadresse_strasse>
<lieferadresse_plz>auftragsdaten->shipping->postcode}]]></lieferadresse_plz>
<lieferadresse_ort>auftragsdaten->shipping->city}]]></lieferadresse_ort>
<lieferadresse_land>auftragsdaten->shipping->country}]]></lieferadresse_land>
<lieferadresse_adresszusatz>auftragsdaten->shipping->address_2}]]></lieferadresse_adresszusatz>
{Artikelliste}
{foreach key=lineItemKey item=lineItem from=$cart->auftragsdaten->line_items}
<{$lineItemKey}>
sku}]]>
name}]]>
quantity}]]>
{foreach key=metadataKey item=metadataItem from=$cart->auftragsdaten->meta_data}
{if $metadataItem->key == “is_vat_exempt”}
{if $metadataItem->value == “yes”}
<price_netto>{($lineItem->subtotal+$lineItem->subtotal_tax)/$lineItem->quantity}</price_netto>
0
befreit
{else}
{($lineItem->subtotal+$lineItem->subtotal_tax)/$lineItem->quantity}
auftragsdaten->tax_lines->item0->rate_percent}]]>
{/if}
{/if}
{/foreach}
</{$lineItemKey}>
{/foreach}