Schnittstellenleitfaden: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
Zeile 369: Zeile 369:
'''Folgende Standards werden vereinbart:'''
'''Folgende Standards werden vereinbart:'''


* Elemente ohne Daten werden [[wikipedia:de:Extensible_Markup_Language|XML]]-konform als <Tag-Name /> dargestellt.
* Elemente ohne Daten werden [[wikipedia:de:Extensible_Markup_Language|XML]]-konform als <Tag-Name/> dargestellt.
* Jede Bestellung wird einzeln erfasst.  
* Jede Bestellung wird einzeln erfasst.  
* Der Datensatz enthält Bestellmerkmale sowie alle Details des Kunden.
* Der Datensatz enthält Bestellmerkmale sowie alle Details des Kunden.
* Der Zeichensatz ist UTF-8.
* Der Zeichensatz ist UTF-8.
* Der Name der [[wikipedia:de:Extensible_Markup_Language|XML]]-Datei besteht aus dem Zeitstempel (YYYY-MM-DD-HHNNSS) sowie der Auftragsnummer, welche vom Shopsystem vergeben werden muss.  
* Der Name der [[wikipedia:de:Extensible_Markup_Language|XML]]-Datei besteht aus dem Zeitstempel (YYYY-MM-DD-HHNNSS) sowie der Auftragsnummer, welche vom Webshop vergeben wird.  


{{Tipp1|'''Beispiel:''' 2012-02-06-105730-5432.xml}}
{{Tipp1|'''Beispiel:''' 2012-02-06-105730-5432.xml}}


===Entität "Order"===
==Aufbau der XML-Datei==
Nachfolgend die Entitäten, in welche sich der Tag <order></order> unterteilt. Da ausschließlich eine Bestellung pro Datei dargestellt wird, ist dieses Tag einmalig.
<order>
  [notwendig, einmal]
 
  <paymentDetails>
    [optional, einmal]
  </paymentDetails>
   
  <DeliveryDetails>
    [optional, mehrfach]
  </DeliveryDetails>
  <article>
    [optional, mehrfach]
  </article>
 
</order>
 
<customer>
  [notwendig, einmal]
 
  <DeliveryAddress>
    [optional, einmal]
  </DeliveryAddress>
  <BankDetails>
    [optional, einmal]
  </BankDetails>
</customer>
 
===Die Entität "order"===
 
Die Entität ist primär, notwendig und einmalig. Sie enthält Informationen zur Bestellung.


<!--//////////    Tabelle ANFANG      //////////-->
<!--//////////    Tabelle ANFANG      //////////-->
Zeile 387: Zeile 419:
!! style="background:#B3B7FF" | Erläuterungen
!! style="background:#B3B7FF" | Erläuterungen
|-
|-
|<orderID>
|<orderID>
|I
|Alphanumerisch
|5456
|5456
|Auftragsnummer des WebShop
|Bestellnummer des Shop (optional)
|-
|<type>
|Auswahl (order = Bestellung, request = Anfrage)
|order
|Typ des Auftrags (wird nicht ausgewertet)
|-
|<randomPinCode>
|Alphanumerisch
|48664411
|Zufallspin (wird nicht ausgewertet)
|-
|-
|<ip>
|<ip>
|A
|Alphanumerisch formatiert
|91.53.190.30
|91.53.190.30
|IP-Adresse des Kunden während der Bestellung
|IP Adresse (optional)
|-
|-
|<orderDate>
|<orderDate>
|@
|Zeitstempel ISO-8601
|2012-06-02 14:15:45
|2012-06-02 14:15:45
|Bestellzeitpunkt
|Bestelldatum
|-
|-
|<deliveryDate>
|<deliveryDate>
|D
|Zeitstempel ISO-8601
|2012-07-02
|2012-07-02 11:00:00
|Lieferdatum
|Lieferdatum
|-
|-
|<deliveryPeriod>
|<deliveryPeriod>
|A
|Alphanumerisch
|Vormittags
|Vormittags
|Kommentar zur Bestellung
|Lieferzeit (optional)
|-
|-
|<comment>
|<comment>
|A
|Alphanumerisch
|Leergut steht im Garten
|Leergut steht im Garten
|Kommentar zur Bestellung
|Kommentar (optional)
|-
|-
|<payment>
|<payment>
|A (Auswahl)
|Auswahl (Cash = bar, Invoice = Rechnung, bankCollection = Einzug, paypal = PayPal)  
|bankCollection
|bankCollection
|Cash (Bar), Invoice (Rechnung), bankCollection (Einzug), paypal (PayPal)
|Zahlweise
|-
|<paymentDeadlineInDays>
|Ganzzahl
|5
|Zahlungsziel in Tagen
|-
|<paymentFeeForPaymentDeadlineInPercent>
|Ganzzahl (wird nicht ausgewertet)
|0
|Mahnzins in Prozent (wird nicht ausgewertet)
|-
|<paymentFeeForPaymentDeadline>
|Kommazahl
|0.00
|Mahngebühr als Betrag (wird nicht ausgewertet)
|-
|<priceMode>
|Auswahl (gross = Verbraucher, net = Wiederverkäufer)
|gross
|Kundentyp
|-
|-
|<priceMode>
|<merchandiseValue>
|A (Auswahl)
|Kommazahl
|gross
|81.84
|gross (Brutto), net (Netto)
|Gesamt Netto (wird nicht ausgewertet)
|-
|-
|<taxRate>
|<deliveryCosts>
|N (10.2)
|Kommazahl
|19.00  
|5.00
|Mehrwertsteuersatz
|Liefergebühren (wird nicht ausgewertet)
|-
|-
|<merchandiseValue>
|<smallVolumePurchase>
|N (10.2)
|Kommazahl
|75.69
|0.00
|Warenwert
|Mindermengenzuschlag (wird nicht ausgewertet)
|-
|-
|<deliveryCosts>
|<discountPercent>
|N (10.2)
|Kommazahl
|0.00
|3.00
|Lieferkosten
|Rabatt in Prozent (wird nicht ausgewertet)
|-
|-
|<smallVolumePurchase>
|<discountFix>
|N (10.2)
|Kommazahl
|0.00
|5.45
|Mindermengenzuschlag
|Rabatt als Betrag (wird nicht ausgewertet)
|-
|-
|<discountPercent>
|<sumDeposit>
|N (10.2)
|Kommazahl
|3.00
|6.60
|3% Rabatt auf den Warenwert
|Pfand (wird nicht ausgewertet)
|-
|-
|<discountFix>
|<sumFee>
|N (10.2)
|Kommazahl
|5.45
|0.00
|Gutscheineinlösung
|Gebühren (wird nicht ausgewertet)
|-
|-
|<sumTotal>
|<sumDeliveryCosts>
|N (10.2)
|Kommazahl
|75.69
|0.00
|Gesamtbetrag inklusive Rabatte, Lieferkosten, Zuschläge, Gutscheine, Mehrwertsteuer
|Summe Transportkosten (wird nicht ausgewertet)
|-
|-
|<sumTotal>
|Kommazahl
|75.24
|Gesamtsumme ohne Pfand (wird nicht ausgewertet)
|}
|}
<!--//////////    Tabelle ENDE      //////////-->
<!--//////////    Tabelle ENDE      //////////-->
 
=== Die Entität "paymentDetails"===


{{Hinweis|Abhängig vom <priceMode> werden die Preise Brutto oder Netto übergeben. Ausnahme ist der Wert <sumTotal>, welcher immer die Gesamtsumme inklusive der gesetzlichen Steuer enthält.}}
Die Entität ist in <order> enthalten, optional und einmalig. Sie enthält optionale Informationen zur Zahlweise


{{Hinweis|Die Tags <discountPercent und <discountFix> definieren mögliche Rabatte sowie Gutscheine. Bei prozentualen Rabatten sind diese direkt in den Artikelpreisen berücksichtigt. Bei einem Einmalbetrag werden die Werte in dem Tag <sumTotal> berücksichtigt.}}
<!--//////////    Tabelle ANFANG      //////////-->
:{| class="wikitable" style="text-align:left"
! style="background:#B3B7FF" | Entität
!! style="background:#B3B7FF" | Typ
!! style="background:#B3B7FF" | Beispiel
!! style="background:#B3B7FF" | Erläuterungen
|-
|<paymentSystem>
|Alphanumerisch
|Bank
|Zahlweise
|-
|<externalId>
|Alphanumerisch
|58
|EDI-Code der Zahlweise
|}
<!--//////////    Tabelle ENDE      //////////-->
===Die Entität "DeliveryDetails"===


===Entität "Article"===
Die Entität ist in <order> enthalten, optional und wiederholbar. Sie enthält optionale Informationen zu Transportkosten
Nachfolgend wird dokumentiert in welche Entitäten sich der Tag <article></article> unterteilt, welcher sich innerhalb von order befindet. Der Tag kann je nach Anzahl unterschiedlicher Artikel mehrfach hintereinander erscheinen.


<!--//////////    Tabelle ANFANG      //////////-->
<!--//////////    Tabelle ANFANG      //////////-->
Zeile 479: Zeile 564:
!! style="background:#B3B7FF" | Erläuterungen
!! style="background:#B3B7FF" | Erläuterungen
|-
|-
|<amount>
|<type>
|N
|Auswahl (flat = pauschal, tba.)
|3
|flat
|Anzahl
|Berechnungsweise
|-
|<articleNumber>
|A
|301012
|Artikelnummer
|-
|-
|<name>
|<name>
|A
|Alphanumerisch
|Coca Cola
|Anfahrtspauschale
|Bezeichnung
|Bezeichnung
|-
|-
|<package>
|<price>
|A
|Kommazahl
|12x1,0
|5.00
|Gebindeformat
|Betrag
|-
|<price>
|N (10.2)
|11.99
|Einzelpreis
|-
|<deposit>
|N (10.2)
|3.30
|Pfandwert
|-
|<taxRate>
|N (10.2)
|19.00
|Mehrwertsteuersatz
|-
|<ean>
|A
|4008287077018
|EAN Code
|}
|}
<!--//////////    Tabelle ENDE      //////////-->
<!--//////////    Tabelle ENDE      //////////-->
===Die Entität "article"===


===Entität "DeliveryDetails"===
Die Entität ist in <order> enthalten, (thoretisch) optional und wiederholbar. Sie enthält Informationen zu Bestellposten
Nachfolgend wird dokumentiert in welche Entitäten sich der Tag <deliveryDetails></deliveryDetails> unterteilt, welcher sich innerhalb von order befindet. Sofern es keine Lieferdetails gibt, ist dieser Tag nicht enthalten.


<!--//////////    Tabelle ANFANG      //////////-->
<!--//////////    Tabelle ANFANG      //////////-->
Zeile 531: Zeile 592:
!! style="background:#B3B7FF" | Erläuterungen
!! style="background:#B3B7FF" | Erläuterungen
|-
|-
|<type>
|<amount>
|A (Auswahl)
|Ganzzahl
|flat
|2
|flat=Anfahrtspauschale, article=Artikelaufschlag, individual=individuell
|Anzahl
|-
|<articleQuantity>
|Ganzzahl
|2
|Anzahl
|-
|<articleNumber>
|Alphanumerisch
|301012
|Artikelnummer ERP
|-
|<name>
|Alphanumerisch
|Coca Cola Zero
|Bezeichnung
|-
|<package>
|Alphanumerisch
|12x1,00
|Gebinde
|-
|<price>
|Kommazahl
|11.99
|Ware Einzel
|-
|<unitPrice>
|Kommazahl
|11.99
|Ware Einzel
|-
|<deposit>
|Kommazahl
|3.30
|Pfand Einzel
|-
|<unitDeposit>
|Kommazahl
|0.00
|Pfand pro Einheit
|-
|<unitFee>
|Kommazahl
|0.00
|Gebühr
|-
|-
|<name>
|<taxRate>
|A
|Kommazahl
|Anfahrtspauschale
|19.00
|Name
|MwSt.Satz
|-
|-
|<price>
|<ean>
|N 10.2
|Alphanumerisch
|5.99
|4008287077018
|Preis (Brutto)
|EAN
|}
|}
<!--//////////    Tabelle ENDE      //////////-->
<!--//////////    Tabelle ENDE      //////////-->


===Entität "Customer"===
===Die Entität "customer"===
Folgende Entitäten sind bei dem Tag <customer></customer> enthalten. Das Tag <customer> ist pro Bestellung einmalig.
 
Die Entität ist primär, notwendig und einmalig. Sie enthält Informationen zum Kunden


Primär, Notwendig, einmalig
<!--//////////    Tabelle ANFANG      //////////-->
<!--//////////    Tabelle ANFANG      //////////-->
:{| class="wikitable" style="text-align:left"
:{| class="wikitable" style="text-align:left"
Zeile 558: Zeile 666:
!! style="background:#B3B7FF" | Erläuterungen
!! style="background:#B3B7FF" | Erläuterungen
|-
|-
|<wdCustomerID>
|<externalAddressID>
|I
|Alphanumerisch
|5456
|4535
|Interne Kundennummer
|Externe Adressnummer
|-
|<priceGroupID>
|Ganzzahl
|1
|Nummer der Preisgruppe
|-
|<wdCustomerID>
|Alphanumerisch
|5456
|Kundennummer Shop
|-
|-
|<customerNumber>
|<customerNumber>
|A20
|Alphanumerisch
|1101
|1101
|FAKTURA-X Kundennummer
|Kundennummer ERP
|-
|-
|<street>
|<street>
|A
|Alphanumerisch
|Musterstraße
|Musterstraße
|Straße
|Straße (darf Hausnummer enthalten)
|-
|-
|<streetNumber>
|<streetNumber>
|A
|Alphanumerisch
|10
|10b
|Hausnummer
|Hausnummer (optional)
|-
|-
|<additionalAddressInformation
|<additionalAddressInformation
|A
|Alphanumerisch
|5. Etage
|5. Etage
|Zusatz
|Zusatzinformationen
|-
|-
|<postcode>
|<floor>
|A
|Alphanumerisch
|35708
|2
|Etage
|-
|<elevator>
|Logisch (ja, nein/leer)
|Fahrstuhl vorhanden
|
|-
|<postcode>
|Ganzzahl
|35708
|Postleitzahl
|Postleitzahl
|-
|-
|<town>
|<town>
|A
|Alphanumerisch
|Haiger
|Haiger
|Ort
|Ort
|-
|-
|<title>
|<salutation>
|A
|Alphanumerisch
|Herr Prof. Dr.
|Herr
|Anrede
|Anrede
|-
|-
|<company>
|<title>
|A
|Alphanumerisch
|Mustermann AG
|Prof. Dr.
|Titel
|-
|<company>
|Alphanumerisch
|Mustermann AG
|Firma
|Firma
|-
|-
|<name>
|<name>
|A
|Alphanumerisch
|Mustermann
|Mustermann
|Name
|Name
|-
|-
|<firstName>
|<firstName>
|A
|Alphanumerisch
|Max
|Max
|Vorname
|Vorname
|-
|-
|<phone>
|<phone>
|A
|Alphanumerisch
|02773-12345
|02773-12345
|Telefon
|Telefonnummer
|-
|<fax>
|Alphanumerisch
|
|Telefaxnummer
|-
|<mobile>
|Alphanumerisch
|0175-1234567
|Mobilfunknummer
|-
|-
|<fax>
|<email>
|A
|Alphanumerisch
|02773-12346
|info@mail.de
|Telefax (optional)
|E-Mailadresse
|-
|-
|<mobile>
|<registrationDate>
|A
|Zeitstempel ISO-8601
|0175-1234567
|2012-04-03 15:00:00
|Mobiltelefon (optional)
|Registrierdatum
|-
|-
|<email>
|<dateOfBirth>
|A
|Zeitstempel ISO-8601
|info@mail.de
|
|E-Mail
|Geburtsdatum (wird nicht ausgewertet)
|-
|-
|<registrationDate>
|<dataStatus>
|@
|Auswahl(new = Neu, tba)
|YYYY-MM-DD HH:NN:SS
|new
|Registrierungstag
|
|-
|-
|<newsletter>
|<newsletter>
|I (0..1)
|Logisch (ja, nein/leer)
|0
|
|0= Keine Newsletter, 1=Newsletter
|Newsletteranmeldung
|}
|}
<!--//////////    Tabelle ENDE      //////////-->
<!--//////////    Tabelle ENDE      //////////-->
==Die Entität "DeliveryAddress"===


===Entität "DeliveryAddress"===
Die Entität ist in <customer> enthalten, optional und einmalig. Sie enthält optionale Informationen zur Lieferadresse
Der Tag <deliveryAddress></deliveryAddress> innerhalb von customer ist nur vorhanden, wenn eine abweichende Lieferadresse existiert.


<!--//////////    Tabelle ANFANG      //////////-->
<!--//////////    Tabelle ANFANG      //////////-->
Zeile 654: Zeile 797:
!! style="background:#B3B7FF" | Beispiel
!! style="background:#B3B7FF" | Beispiel
!! style="background:#B3B7FF" | Erläuterungen
!! style="background:#B3B7FF" | Erläuterungen
|<street>
|Alphanumerisch
|Musterstraße
|Straße (darf Hausnummer enthalten)
|-
|-
|<street>
|<streetNumber>
|A
|Alphanumerisch
|Musterstraße
|10b
|Straße
|Hausnummer (optional)
|-
|<streetNumber>
|A
|10
|Hausnummer
|-
|-
|<additionalAddressInformation
|<additionalAddressInformation
|A
|Alphanumerisch
|5. Etage
|5. Etage
|Zusatz
|Zusatzinformationen
|-
|-
|<postcode>
|<postcode>
|A
|Ganzzahl
|35708
|35708
|Postleitzahl
|Postleitzahl
|-
|-
|<town>
|<town>
|A
|Alphanumerisch
|Haiger
|Haiger
|Ort
|Ort
|-
|-
|<title>
|<title>
|A
|Alphanumerisch
|Herr Prof. Dr.
|Prof. Dr.
|Anrede
|Titel
|-
|-
|<company>
|<company>
|A
|Alphanumerisch
|Mustermann AG
|Mustermann AG
|Firma
|Firma
|-
|-
|<name>
|<name>
|A
|Alphanumerisch
|Mustermann
|Mustermann
|Name
|Name
|-
|-
|<firstName>
|<firstName>
|A
|Alphanumerisch
|Max
|Max
|Vorname
|Vorname
|}
|}
<!--//////////    Tabelle ENDE      //////////-->
<!--//////////    Tabelle ENDE      //////////-->
===Die Entität "BankDetails"===


===Entität "BankDetails"===
Die Entität ist in <customer> enthalten, optional und einmalig. Sie enthält optionale Informationen zur Bankverbindung
Der Tag <bankDetails></bankDetails> innerhalb von customer ist nur vorhanden, wenn diese hinterlegt ist. Bitte beachten Sie, dass der tag <payment></payment> innerhalb von <order> den Wert "bankCollection" enthält, sofern der Kunde bei dieser Bestellung Bankeinzug wünscht.


<!--//////////    Tabelle ANFANG      //////////-->
<!--//////////    Tabelle ANFANG      //////////-->
Zeile 712: Zeile 854:
!! style="background:#B3B7FF" | Erläuterungen
!! style="background:#B3B7FF" | Erläuterungen
|-
|-
|<accountOwner>
|<accountOwner>
|A
|Alphanumerisch
|Max Mustermann
|Max Mustermann
|Kontoinhaber
|Kontoinhaber
|-
|-
|<accountNumber>
|<Iban>
|A
|Alphanumerisch
|1234567890
|DE67416500011234567890
|Kontonummer (obsolet)
|-
|<bankCode>
|A
|41650001
|BLZ (obsolet)
|-
|<bank>
|A
|Sparkasse
|Bank (obsolet)
|-
|<Iban>
|A
|DE67416500011234567890
|IBAN
|IBAN
|-
|-
|<bic>
|<bic>
|A
|Alphanumerisch
|WELADED1LIP
|WELADED1LIP
|BIC (kann leer belieben)
|BIC
|}
|}
<!--//////////    Tabelle ENDE      //////////-->
<!--//////////    Tabelle ENDE      //////////-->
{{Hinweis|Abhängig vom <priceMode> werden die Preise Brutto oder Netto übergeben. Ausnahme ist der Wert <sumTotal>, welcher immer die Gesamtsumme inklusive der gesetzlichen Steuer enthält.}}
{{Hinweis|Die Tags <discountPercent und <discountFix> definieren mögliche Rabatte sowie Gutscheine. Bei prozentualen Rabatten sind diese direkt in den Artikelpreisen berücksichtigt. Bei einem Einmalbetrag werden die Werte in dem Tag <sumTotal> berücksichtigt.}}


==Beispieldateien==
==Beispieldateien==