EditCartContent Request

Mit dem "EditCartContent"-Request kann der Warenkorb einer Bestellung im BillPay-System sowohl vor als auch nach Aktivierung geändert werden. Es können bspw. im Falle einer Retoure einzelne Artikel oder ganze Warenkorbpositionen aus dem Warenkorb entfernt werden.

Es können aber auch nachträglich Artikel in den Warenkorb eingefügt werden. Hierfür gelten die folgenden Regeln:

  • Ist der neue Warenkorbwert kleiner oder gleich dem alten Warenkorb, wird die Änderung in jedem Fall akzeptiert.
  • Ist der neue Warenkorbwert größer als der alte Warenkorb, wird auf Seiten von BillPay versucht den Kunden für den höheren Bestellwert zu autorisieren. Ist dies erfolgreich, wird der Warenkorb entsprechend der Anfrage angepasst. Schlägt die Autorisierung fehl, wird die Anfrage mit dem Fehlercode 105 abgelehnt und der alte Warenkorb bleibt für die Bestellung bestehen.

Inhaltlich meldet der Händler mit diesem Request den neuen Warenkorbinhalt an BillPay. Bei erfolgreicher Verarbeitung wird der alte Warenkorb bzw. die im neuen Warenkorb nicht mehr enthaltenen Bestandteile verworfen und der neu übergebene Warenkorb übernommen.

*Hinweis: Rechnungs- und Lieferadresse des Kunden, Bestellreferenznummer, Währung und Zahlart können über diesen Weg nicht geändert werden.

Request

XML Header

<?xml version="1.0" encoding="UTF-8"?>

Data Knoten

Attribut Pflicht Werte Details
version + wird vom Bibliothek festgelegt Versionsnummer der genutzten API
<data api_version="1.5.11">
    <!-- Request Daten -->
</data>

Default Params Knoten (Händler Zugangsdaten)

Attribut Pflicht Werte Details
mid + N..4 Ihre Händler Id
pid + N..4 Ihre domainspezifische Portal Id
bpsecure + String MD5 Hash des geheimen Passwort
    <default_params 
      mid="2" 
      pid="3" 
      bpsecure="0d48732f425b6df88c58244d6882369e" />

Total Knoten (Details zur Bestellung)

Im total-Knoten werden alle zusammenfassenden Informationen der Bestellung sowie die händlerseitige Bestellnummer übergeben.

*Hinweis: Die Bestellnummer muss mit der aus der Vorauthorisierung übereinstimmen!

Attribut Pflicht Werte Details
shippingname + AN..50 Versandkosten-Name (z.B. "Express-Versand")
shippingprice + N..7 Nettowert aller warenkorbspez. Kosten (z.B. Lieferkosten, Zuschläge) in kleinster Währungseinheit (1,00 EUR = 100)
shippingpricegross + N..7 Bruttowert aller warenkorbspez. Kosten (z.B. Lieferkosten, Zuschläge) in kleinster Währungseinheit (1,00 EUR = 100)
rebate + N..7 Positiver Nettowert aller Rabatte, Coupons und sonstiger betragsmindernder Posten in kleinster Währungseinheit (1,00 EUR = 100)
rebategross + N..7 Positiver Bruttowert aller Rabatte, Coupons und sonstiger betragsmindernder Posten in kleinster Währungseinheit (1,00 EUR = 100)
carttotalprice + N..7 Nettowert der Bestellung in kleinster Währungseinheit (1,00 EUR = 100)
carttotalpricegross + N..7 Bruttowert der Bestellung in kleinster Währungseinheit (1,00 EUR = 100)
currency + Vorgabe ISO4217 Dreistelliger Währungscode (z.B. "EUR")
reference + AN..40 Bestellnummer beim Händler (erlaubte Zeichen: 0-9, a-z, A-Z,.,-,_,/)*
    <total 
      shippingname="Express Versand" 
      shippingprice="840" 
      shippingpricegross="1000" 
      rebate="1681" 
      rebategross="2000" 
      carttotalprice="26050" 
      carttotalpricegross="31000" 
      currency="EUR" 
      reference="976692924" />

Article Data Knoten (Liste der bestellten Artikel)

Im article_data-Knoten werden alle Informationen rund um die in der Bestellungen enthaltenen Warenkorbpositionen abgebildet. Pro einzigartigem Artikel wird ein `article´-Knoten gesetzt.

*Wichtig! IDs dürfen in einer Anfrage nicht mehrfach auftreten!

Hinweis: Die mit dem editCartContent-Request übergebenen Bestelldaten werden analog zur Vorauthorisierung einer Konsistenzprüfung unterzogen. Dabei muss die Summe der Einzelpositionen mit den übergebenen aggregierten Gesamtwerten übereinstimmen.

Attribut Pflicht Werte Details
articleid + AN..20 Eindeutige Artikel-ID für die Warenkorbposition*
articlequantity + N..7 Menge des Artikels im Warenkorb
articlename + AN..50 Name des Artikels
articleprice + N..7 Nettopreis des Artikels in kleinster Währungseinheit (1,00 EUR = 100)
articlepricegross + N..7 Bruttopreis des Artikels in kleinster Währungseinheit (1,00 EUR = 100)
    <article_data>
         <article 
            articleid="1234" 
            articlequantity="1" 
            articlename="Shirt" 
            articleprice="10084" 
            articlepricegross="12000" />
        <article 
            articleid="2345" 
            articlequantity="1" 
            articlename="Hose"             
            articleprice="16807" 
            articlepricegross="20000" />
    </article_data>

Sonderfall: Bearbeiten einer Teillieferung / Teilaktivierung

Neben den üblichen Parametern wird eine "invoice_list" mitgesendet. Diese referenziert die einzelnen Teilrechnungen mit einem "invoice_number" Parameter. Darunter wird für jede Teilrechnung eine Liste "invoice_params" übergeben, welche Gesamtrechnungswert, Versandkosten und Rabatt beinhaltet. Hierin wiederum findet sich eine vollständige Auflistung aller Artikel als "article_data".

Attribut Pflicht Werte Details
invoice_number + AN Shopseitige Rechnungsnummer der Teillieferung
shippingprice + N..7 Nettowert aller warenkorbspez. Kosten (z.B. Lieferkosten, Zuschläge) in kleinster Währungseinheit (1,00 EUR = 100)
shippingpricegross + N..7 Bruttowert aller warenkorbspez. Kosten (z.B. Lieferkosten, Zuschläge) in kleinster Währungseinheit (1,00 EUR = 100)
rebate + N..7 Positiver Nettowert aller Rabatte, Coupons und sonstiger betragsmindernder Posten in kleinster Währungseinheit (1,00 EUR = 100)
rebategross + N..7 Positiver Bruttowert aller Rabatte, Coupons und sonstiger betragsmindernder Posten in kleinster Währungseinheit (1,00 EUR = 100)
carttotalprice + N..7 Nettowert der Bestellung in kleinster Währungseinheit (1,00 EUR = 100)
carttotalpricegross + N..7 Bruttowert der Bestellung in kleinster Währungseinheit (1,00 EUR = 100)
articleid + AN..20 Eindeutige Artikel-ID für die Warenkorbposition*
articlequantity + N..7 Menge des Artikels im Warenkorb
articlename + AN..50 Artikelbezeichnung
articleprice + N..7 Nettopreis des Artikels in kleinster Währungseinheit (1,00 EUR = 100)
articlepricegross + N..7 Bruttopreis des Artikels in kleinster Währungseinheit (1,00 EUR = 100)

Vollständiges XML-Beispiel (keine Teilrechnungen)

Eine Einheit (T-Shirt) davon wurde retourniert, sodass die Anzahl der Artikel in der Hauptbestellung verringert werden muss. Zudem wurden alle Beträge im Summen-Knoten angepasst.

<?xml version="1.0" encoding="UTF-8"?>
<data api_version="1.5.11">
   <default_params mid="4441" pid="6021" bpsecure="25d55ad283aa400af464c76d713c07ad" />
   <total shippingname="Express Versand" shippingprice="840" shippingpricegross="1000" rebate="1681" rebategross="2000" carttotalprice="26050" carttotalpricegross="31000" reference="976692924" />
   <article_data>
      <article articleid="1234" articlequantity="1" articlename="Shirt" articleprice="10084" articlepricegross="12000" />
      <article articleid="2345" articlequantity="1" articlename="Hose" articleprice="16807" articlepricegross="20000" />
   </article_data>
</data>  

Vollständiges XML-Beispiel (mit Teilrechnungen)

Eine Einheit aus dieser Bestellung wurde retourniert, sodass die Artikelanzahl in der Hauptbestellung sowie in der "invoice_list" verringert werden muss. Zudem wurden alle Summen in den Summen-Knoten angepasst.

<?xml version="1.0" encoding="UTF-8"?>
<data api_version="1.5.11">
   <default_params mid="4441" pid="6021" bpsecure="25d55ad283aa400af464c76d713c07ad" />
   <total shippingname="Express Versand" shippingprice="840" shippingpricegross="1000" rebate="1681" rebategross="2000" carttotalprice="26050" carttotalpricegross="31000" currency="EUR" reference="976692924" />
  <article_data>
    <article articleid="1234" articlequantity="1" articlename="Shirt" articleprice="10084" articlepricegross="12000" />
    <article articleid="2345" articlequantity="1" articlename="Hose" articleprice="16807" articlepricegross="20000" />
  </article_data>
  <invoice_list>
    <invoice invoice_number="INV551202291" >
      <invoice_params rebate="1681" rebategross="2000" shippingprice="840" shippingpricegross="1000" carttotalprice="9243" carttotalpricegross="11000" />
      <article_data>
        <article articleid="1234" articlequantity="1" articlename="Shirt" articleprice="10084" articlepricegross="12000" />
      </article_data>
    </invoice>
    <invoice invoice_number="INV1046242416" >
      <invoice_params rebate="0" rebategross="0" shippingprice="0" shippingpricegross="0" carttotalprice="16807" carttotalpricegross="20000" />
      <article_data>
        <article articleid="2345" articlequantity="1" articlename="Hose" articleprice="16807" articlepricegross="20000" />
      </article_data>
    </invoice>
  </invoice_list>
</data>     

EditCartContent Response

Die Antwort auf den EditCartContent-Requets liefert einen Error Code (0=Erfolg) sowie eine dazugehörige Nachricht für den Kunden (=customer_message) und für Ihr Log (=merchant_message).

<?xml version="1.0" encoding="UTF-8"?>
<data api_version="1.5.11" customer_message="" merchant_message="" error_code="0">
</data>