API-Schnittstelle

Einführung

Die API-Schnittstelle der Print Lounge ermöglicht einen automatisierten, maschinengeeigneten Zugriff auf Daten aus der Print Lounge. Dies ermöglicht eine Integration in interne Prozesse und Tools. Die API ist ein zusätzliches Modul und kann für jeden Mandanten aktiviert werden. Für die Nutzung sind keine speziellen Pakete oder Optionen erforderlich. Die verfügbaren Daten entsprechen den Daten aus der Print Lounge. Auf dieser Seite werden generelle API-Informationen bereitgestellt. Der Abruf von Print Lounge-Daten geschieht über die URL.

API-Authentifizierung

Die Authentifizierung erfolgt durch eine Basic-Authentication. Hierfür werden API-Benutzer und API-Key übermittelt.

Der API-Benutzer/API-Key kann in der Administration unter Verwaltung → Shops → bearbeiten → API gesetzt werden. Beim Passwort wird die Passwortrichtlinie angewendet.

Der API-Benutzer/API-Key muss bei allen Abfragen übermittelt werden. Geschieht dieses nicht oder werden ungültige API-Daten verwendet, meldet die API den Fehlercode „401 Unauthorized“. Um API-Daten zu erhalten, kontaktieren Sie bitte Ihren Shopbetreiber.

Wird bei der Authentifizierung mehrfach ein falsches Passwort verwendet, wird der Zugriff für 15 Minuten gesperrt. Nach der Sperrzeit ist keine manuelle Freischaltung notwendig, dies passiert automatisch und kann anschließend wieder verwendet werden.

Ab Release 8.5.0 gibt es Limits

Es ist dann so, dass pro Shop nur 300 Anfragen pro 15min getätigt werden dürfen.

Artikel

Verfügbare Daten

Über die API kann auf folgende Daten zugegriffen werden. (Diese Methode ist veraltet, bitte anstelle den Endpunkt "/api/article" verwenden)

URL

Daten

Parameter

Rückgabe

{*}.print-server.net/api/article.php

Artikel

status = 1|0

offset

limit

sortby

sort = ASC|DESC

format = json|serialize|print

Array

(

    [data] => Array

        (

            [39336] => Array

                (

                    [name] => Artikelbezeichung

                    [name_internal] => Artikelbezeichung Intern

                    [created] => 2016-03-01T15:19:41+0100

                    [changed] => 2016-04-13T12:19:27+0200

                )

        )

    [error] =>

)

Ausgabeformat

Alle Anfragen und Rückgabewerte sind UTF-8 kodiert. Standardmäßig erfolgt die Rückgabe der API-Schnittstelle im Json-Format. Alternativ kann eine serialisierte Rückgabe oder zu Testzwecken auf Ausgabe umgestellt werden. Dafür ist der Parameter „format“ mit dem Wert „json“,  „serialize“ oder „print“ an jede URL anzuhängen.

REST-API

Jedes Kommando für die API – Schnittstelle ist eine HTTP Anfrage.

In der URL wird das Ziel, das gewünschte Datenobjekt angegeben und die HTTP Methode (GET, POST, PUT, DELETE) gibt an, was gemacht werden soll.

  • GET: Liefert einen oder mehrere Datenobjekte.

  • POST: Erstellt ein neues Datenobjekt.

  • PUT: Ändert ein bestehendes Datenobjekt.

  • DELETE: Löscht ein bestehendes Datenobjekt.

Artikel

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Info

Rückgabeformat

GET

/api/article

 -

http://shop.printlounge.local
/api/article

[  
   {  
      "id":"39293",
      "name":"Handelsware",
      "nameIntern":"intern",
      "fullDescription":"<p>full<\/p>\r\n",
      "detailedDescription":"<p>detailed<\/p>\r\n",
      "additionalInformation":"<p>additional<\/p>\r\n",
      "articleType":"25",
      "articleSapNumber":"sap",
      "productionTime":"1",
      "deliveryTime":"2"
   },
   {  
      "id":"39294",
      "name":"PrintOnDemand",
      "nameIntern":"",
      "fullDescription":"",
      "detailedDescription":"",
      "additionalInformation":"",
      "articleType":"26",
      "articleSapNumber":"SAP-Nummer12",
      "productionTime":"0",
      "deliveryTime":"0"
   }
]

Wobei articleType sein kann:

25: Handelsware
80: Handeslware mit Upload
27: Handelsware Plus
26: Print on Demand
139: Mietartikel
100: Artikelpaket
152: Mailing
106: Global

GET

/api/article

number

http://shop.printlounge.local
/api/article?number=A112233

Es kann nach der Artikelnummer/SAP-Nummer gefiltert werden.

[  
   {  
      "id":"39293",
      "name":"Handelsware",
      "nameIntern":"intern",
      "fullDescription":"<p>full<\/p>\r\n",
      "detailedDescription":"<p>detailed<\/p>\r\n",
      "additionalInformation":"<p>additional<\/p>\r\n",
      "articleType":"25",
      "articleSapNumber":"A112233",
      "productionTime":"1",
      "deliveryTime":"2"
   },
   {  
      "id":"39294",
      "name":"PrintOnDemand",
      "nameIntern":"",
      "fullDescription":"",
      "detailedDescription":"",
      "additionalInformation":"",
      "articleType":"26",
      "articleSapNumber":"A112233",
      "productionTime":"0",
      "deliveryTime":"0"
   }
]

GET

/api/article/{article-id}

-

http://shop.printlounge.local
/api/article/4711

{  
   "id":"39293",
   "name":"Handelsware",
   "nameIntern":"intern",
   "fullDescription":"<p>full<\/p>\r\n",
   "detailedDescription":"<p>detailed<\/p>\r\n",
   "additionalInformation":"<p>additional<\/p>\r\n",
   "articleType":"25",
   "articleSapNumber":"sap",
   "productionTime":"1",
   "deliveryTime":"2"
}

Artikeloptionen ab v8.23.0Blue

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Info

Rückgabeformat

GET

/api/article-option

(optional) articleId

https://shop.printlounge.local/api/article-option?articleId=111

{

"success": true,

"message": "",

"data": [

{

"id": 11,

"tag": "Farbe",

"name": "Grün",

"articleId": 11,

"externalNumber": "ao_112",

"orderBy": 2,

"backgroundColor": "",

"price": 0,

"stock": 5,

"status": 3

},

{

"id": 12,

"tag": "Farbe",

"name": "Rot",

"articleId": 11,

"externalNumber": "ao_113",

"orderBy": 3,

"backgroundColor": "",

"price": 0,

"stock": 15,

"status": 3

}

]

}

GET 

/api/article-option/{article-option-id}

https://shop.printlounge.local/api/article-option/11

{

"success": true,

"message": "",

"data": {

"id": 14,

"tag": "Farbe",

"name": "Lila",

"articleId": 11,

"externalNumber": "ao_111",

"orderBy": 4,

"backgroundColor": "",

"price": 0,

"stock": 6,

"status": 3

}

}

POST

/api/article-option

{

"articleId": 11,

"tag": "Farbe",

"name": "Lila",

"stock": 11,

"price": 0,

"priceIntern": 0,

"orderBy": 4,

"status": 3

}

https://shop.printlounge.local/api/article-option

{

"success": true,

"message": "",

"data": {

"id": 16,

"tag": "Farbe",

"name": "Lila",

"articleId": 11,

"externalNumber": null,

"orderBy": 4,

"backgroundColor": "",

"price": 0,

"stock": 11,

"status": 3

}

}

PUT/PATCH

/api/article-option/{article-option-id}

{

"articleId": 11,

"tag": "Farbe",

"name": "Lila",

"stock": 11,

"price": 0,

"priceIntern": 0,

"orderBy": 4,

"status": 3

}

https://shop.printlounge.local/api/article-option/11

{

"success": true,

"message": "",

"data": {

"id": 16,

"tag": "Farbe",

"name": "Lila",

"articleId": 11,

"externalNumber": null,

"orderBy": 4,

"backgroundColor": "",

"price": 0,

"stock": 11,

"status": 3

}

}

DELETE

/api/article-option/{article-option-id}

https://shop.printlounge.local/api/article-option/11

{
"success": true,
"message": "",
"data": []
}

Verfügbare Daten

Bestellung

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

Fürs eine Auflistung der aktuellsten Bestellungen, siehe Bestellstatus:
/api/order/

[
{
"id": 1235,
"internalOrderCode": "ABCDEG",
"orderCode": "MY4720",
"status": 1,
"orderStatus": 61,
"statusPaid": 1,
"lastModified": "2021-11-11 11:11:11",
"createDate": "2021-11-11 11:11:11"
},
{
"id": 1234,
"internalOrderCode": "ABCDEF",
"orderCode": "MY4710",
"status": 1,
"orderStatus": 61,
"statusPaid": 0,
"lastModified": "2020-11-11 11:11:11",
"createDate": "2020-11-11 11:11:11"
}
]

GET

/api/cart/{order-code}

-

https://shop.printlounge.local/api/cart/XABCDE

{ "id": 645135 "client_id": 1234 "order_customer_id": 3124 "order_budgetgroup_user_id": 564231 "order_budgetgruppe": "example content" "order_code": "example content" "order_number": 231
"external_order_code": "example content" "order_total": 0 "order_deliver_address_company": "example content" "order_deliver_address_company2": "example content" "order_deliver_address_name": "example content" "order_deliver_address_firstname": "example content" "order_deliver_address_lastname": "example content" "order_deliver_address_title": "example content" "order_deliver_address_street": "example content" "order_deliver_address_zip": 12345 "order_deliver_address_town": "example content" "order_deliver_address_country_code": "example content" "order_deliver_address_email": "example content" "order_deliver_address_email2": "example content" "order_payment_method": 0 "order_deliver_address_department": "example content" "order_deliver_address_cost_center": "example content" "order_deliver_address_customer_order_number": "example content" "order_deliver_address_phone": "example content" "order_deliver_address_fax": "example content" "order_deliver_address_country": "example content" "order_bank_code": "example content" "order_bank_name": "example content" "order_depositor": "example content" "order_tax_id": "example content" "invoice_address_company1": "example content" "invoice_address_company2": "example content" "invoice_address_company3": "example content" "invoice_address_title": "example content" "invoice_address_name": "example content" "invoice_address_firstname": "example content" "invoice_address_lastname": "example content" "invoice_address_phone": "example content" "invoice_address_street": "example content" "invoice_address_zip": 12345 "invoice_address_town": "example content" "invoice_address_country": "example content" "invoice_address_country_code": "example content" "order_customer_user_id": 984563 "order_user_name": "example content" "serviceprovider_id": 0 "serviceprovider_x_id": 0 "serviceprovider_status": "example content" "cart_table": 1 "order_express_delivery": 0 "order_express_delivery_surcharge": "example content" "order_delivery_method": "example content" "order_comment": "example content" "order_budget_before": 0.00 "order_budget_booking": 0.00 "order_budget_booking_after": 0.00 "order_status": 62 "order_delivery_date": "example content" "packages": 0 "weight": 0 "barcode": "example content" "order_approval": "example content" "approval_email": "example content" "order_approval_explaination": "example content" "pdate": "example content" "sdate": "example content" "mdate": "example content" "cdate": "example content" "status": 3 "status_paid": 0 "date_paid": "example content" "status_sendmail": 1 "opentrans_status": 0 "printshop": 0 "order_type_print_job": 1 "order_type_pdf": 0 "emailing_name": "example content" "emailing_email": "example content" "emailing_additional_text": "example content" "invoice_number": 0 "individual_order_code": "example content" "individual_order_item_code": 0 "individual_invoice_number": "example content" "individual_order_item_code_invoice": 0 "coupon_code": 0 "payment_interface": 0 "md5_order_consolidation": 0 "md5": "example content" "collective_price_scale": 0 "approved_by": "example content" "order_language": "example content" "order_budged": "example content" "shipping_charges": 9.99 "vat_amount": 0.00 "net_amount": 10.00 "gross_amount": 10.00 "auth_micropayment": "example content" "budgedgroup_discount": 0 "budgedgroup_discount_amount": "example content" "position_feedback": 0 "vat_included": 54 "date_of_invoice": "example content" "cartItems": { "1": { "id": 121314 "client_id": 1234 "order_id": 645135 "parent_id": 0 "type": 1 "aid": 231450 "article_type": 26 "persdata": "example content" "persdata_array": "example content" "additional_fields_array": "example content" "cart_additional_fields_array": "example content" "article_options_remark": "example content" "quantity": 370169 "quantity_value": 1 "remark": "example content" "filename": "example content" "pdf_filenames": "example content" "cost_center": "example content" "mdate": "example content" "cdate": "example content" "rdate": "example content" "r_remark": "example content" "r_short": "example content" "r_email": "example content" "s_desc": "example content" "s_quantity_value": 1 "s_cost_center": "example content" "s_total": "example content" "s_ntotal": 1 "s_vat": 2 "mailing_count": 0 "status": "example content" "send_reminder": 0 "printshop": 0 "payment_interface": 0 "md5": "example content" "show": 1 "jobname": "example content" "premium_interactive_editor": 0 "premium_image_upload": 0 "page_count": 1 "download_count": 0 "article_options": "example content" "pdf_download_only": 0 "local_order_workflow_step_id": 0 "uploadpath": "example content" "direct_download": 0 "cart_addresses_array": 0 "serviceprovider_id": 0 "serviceprovider_status": "example content" "order_number": 133 "do_not_calculate": 0 "postage_graduation": 0 "ftp_checksum": "example content" "ftp_download": 0 "ftp_error": 0 "data_id": 0 "status_sendmail": 1 "reorder": 0 "article_reorder": 0 "voucher": 0 "voucher_id": 0 "voucher_array": "example content" "approval_address_id": 0 "mailing": 0 "report_group_id": 0
"priceSapNumber": "Nummer zum Bestellzeitpunkt" oder null
"articleSapNumber": "Nummer zum Bestellzeitpunkt" oder null
"price_internal": 1.5
"vat_amount_internal": 0.29
"net_amount_internal": 1.5
"gross_amount_internal": 1.79 }
"vat_amount_internal": 0.29
"net_amount_internal": 1.5
"gross_amount_internal": 1.79
"userGroupSapNumber": "Nummer zum Bestellzeitpunkt" oder null } }

Wobei type sein kann:

1: Article
2: Versand
3: Handling
4: Dienstleisterversand
5: Artikeloption
6: Artikel freies Kontingent
7: Artikel Lagerrückführung
8: Zusätzliche Gebühr für kleine Mengen
9: credit fpr handling cost
10: Kundendiscount
11: Payment
12: Artikeldiscpount
13: Kostenlose Position durch Admin hinzugefügt
14: Artikelbestellgebühr
15: Artikel dynamische Option
16: Postaktuell Artikel
17: Kostenübernahme
18: Werbezuschüsse
19: Zusätzlicher Aufpreis
101: Externer Artikel über OCI-Punchout empfangen

Bestellstatus

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/order/

Zum Blättern:

  • limit

  • lastSeenId

Zum Filtern:

  • orderStatus

  • status

  • statusPaid

    • 1 = bezahlt

    • 0 = unbezahlt

  • orderByDesc

    • 1 = aktiviert (Standard)

    • 0 = deaktiviert

  • userGroupId

    • Benutzergruppen-ID

  • userGroupCustomerNumber

    • Benutzergruppen: Kundennummer (z.B. SAP)

/api/order/?limit=20&lastSeenId=4711&orderStatus=61&status=1&statusPaid=1&orderByDesc=0

Benutzergruppen-Filter:

zu beachten ist, dass das Filtern nach der Benutzergruppe bei vielen Bestellungen Einfluss auf die Geschwindigkeit hat.

Benutzergruppen-ID:

/api/order/?limit=20&userGroupId=1234567890

Kundennummer (z.B. SAP):

Die SAP bzw. Kundennummer der Benutzergruppe hat noch mehr Einfluss auf die Geschwindigkeit der Antwort bei vielen Bestellungen. Dies sollte mit bedacht verwendet werden.

/api/order/?limit=20&userGroupCustomerNumber=ABC123

[
{
"id": 1235,
"internalOrderCode": "ABCDEG",
"orderCode": "MY4720",
"status": 1,
"orderStatus": 62,
"statusPaid": 1,
"lastModified": "2021-11-11 11:11:11",
"createDate": "2021-11-11 11:11:11"
},
{
"id": 1234,
"internalOrderCode": "ABCDEF",
"orderCode": "MY4710",
"status": 1,
"orderStatus": 61,
"statusPaid": 0,
"lastModified": "2020-11-11 11:11:11",
"createDate": "2020-11-11 11:11:11"
}
]

GET

/api/order/{order-code}

-

https://shop.printlounge.local/api/order

{ "order_code": "XABCDE" "order_status": 61 }

PUT/PATCH

/api/order/{order-code}

-

{"order_status":"137"}

optional kann zusätzlich external_order_code übergeben werden. Also z.b:

{"order_status":"137", "external_order_code": "dieExterneBestellnummer"}

Über den Parameter "serviceprovider_export" kann außerdem festgelegt werden, ob der Dienstleister-Export angestoßen werden soll

{"serviceprovider_export": 1}

http://shop.printlounge.local/api/order/39293

Die folgende Tabelle stellt alle möglichen Statuswerte dar: 

Status (orderStatus)

Bezeichnung

61

in Produktion

62

im Versand

63

geliefert

69

Storno

73

auf Freigabe warten

74

Freigabe abgelehnt

88

Freigabe erteilt

117

erledigt

137

abgerechnet

140

warte auf Zahlungsanbieter (extern)

144

warte auf Kostenfreigabe

155

warten auf Zahlungsanbieter

156

warten auf Zahlungsanbieter (Erinnerung versendet)

157

Teillieferung

158

in Bearbeitung

200

Pay before order "not completed"

Status

Bezeichnung

1

OK

3

OCI / Bezahlungsschnittstelle

10

Gelöscht (softdeleted)

Addressen

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/order/{{OrderCode}}/addresses/deliver

/api/order/{{OrderCode}}/addresses/invoice

-

/api/order/RQREJC/addresses/deliver

/api/order/RQREJC/addresses/invoice

{
"company1": "Firma",
"company2": "Firma2",
"company3": null,
"name": "Ansprechpartner",
"firstName": "",
"lastName": "",
"title": "",
"street": "Street",
"zip": "12345",
"town": "Stadt",
"country": "Deutschland",
"countryCode": "DE",
"email": "mail@lead-print.com",
"department": null,
"telephone": "",
"fax": null
}

PUT/PATCH

/api/order/{{OrderCode}}/addresses/deliver

/api/order/{{OrderCode}}/addresses/invoice

-

{
"company1": "Firma",
"company2": "Firma2",
"company3": null,
"name": "Ansprechpartner",
"firstName": "",
"lastName": "",
"title": "",
"street": "Street",
"zip": "12345",
"town": "Stadt",
"country": "Deutschland",
"countryCode": "DE",
"email": "mail@lead-print.com",
"department": null,
"telephone": "",
"fax": null
}

/api/order/RQREJC/addresses/deliver

/api/order/RQREJC/addresses/invoice

true


Wenn die Daten nicht valide sind:

{
    "success": false,
    "message": "Validation errors",
    "data": {
        "countryCode": [
            "validation.size.string"
         ]
    }
}


Wenn keine Daten übermittelt wurden:

{
    "success": false,
    "message": "no data to found",
    "data": []
}

Tracking/Sendungsverfolgung

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/order-tracking/{order-code}[?cart_item_id={cart_item_id}]

cart_item_id=134

https://shop.printlounge.local:4432/api/order-tracking/PMOAEG?cart_item_id=134

[
{
"id":"134",
"delivery_service_id":"6",
"delivery_service_name":"Hermes",
"delivery_service_tracking_id":""
}
]

PUT/PATCH

/api/order-tracking/{order-code}

{
"tracking_id":"tracking code 123-456-789",
"tracking_service_id":2,
"cart_item_id":132453,

"status": "OK", // der Status der Position ab version 8.28.0

// Aktiviert die Benachrichtigungsmails an Kunden

"sendNotification": 1

// Aktiviert die XML-Übertragung an eigene Versanddienstleister

"transferXml": 1
}

http://shop.printlounge.local/api/order/39293

PUT/PATCH

ab v8.28.0Blue

/api/order-tracking/bulk

https://shop.printlounge.local/api/order-tracking/bulk

Der Parameter tracking_service_id enthält die ID des Zustelldienstes, die zuvor im Backend der Print Lounge angelegt werden muss. Über den optionalen Parameter order_item_id kann die ID der Bestellposition übergeben werden, sofern der Trackingcode nur für eine bestimmte Position hinterlegt werden soll.

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/cart/{order-code}

-

Bei der Abfrage der Bestellung kann unter dem Punkt "Barcode" die Tracking number der Bestellung ausgelesen werden.

{
...
"barcode": "example content",
...
}

PUT/PATCH

/api/component/Order-Order/tracking/{order-code}

-

{
"trackingNumber": "myTrackingNumber"
}

/api/component/Order-Order/tracking/EVKKKO

{
"success": true,
"message": "",
"data": []
}

Benutzer

Für {user-id} kann die Id oder der username verwendet werden

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/user/{user-id}

http://shop.printlounge.local/api/user/42

{
“id":999999,
“client_id":1234,
“budgetgroup_id":234510,
“group_id":0,
“gender":118,
“username":"johndoe",
“first_name":"John",
“last_name":"Doe",
“longname":"John Doe",
"distributorship":"",
“company1":"BE.BEYOND",
“company2":"BE.BEYOND",
“company3":"BE.BEYOND",
“street":”Hanns-Martin-Schleyer-Straße",
“zip":"35",
“city":"Willich",
“countrycode":"DE",
“country":"Deutschland",
“phone":”+49 (0) 2154 / 48 09-0",
“fax":”+49 (0) 2154 / 48 09-90",
“email":”info@bebeyond.de”,
“web":”http://bebeyond.de",
“mobile":”+49 (0) 2154 / 48 09-0",
“customernumber ":"4711",
“code":"CODE123456",
“costcenter":"31337",
“branch":"IT & Software",
“function":"Developer",
“business_unit":"department",
“state":"",
“vatid":"DE123456789",
“hours1":"",
“hours2":"",
“hours3":"",
“distribution":"",
“type":"",
“bank":"",
“bank_code":"",
“bank_account_number":"",
“iban":"",
“bic":"",
“managing_director":"",
“headquarter":"",
“tax_id":"",
“district_court":"",
“customfield1":"",
“customfield2":"",
“customfield3":"",
“customfield4":"",
“customfield5":"",
“customfield6":"",
“customfield7":"",
“customfield8":"",
“customfield9":"",
“customfield10":"",
“status":"OK",
“invoice_address_company1":" Be.Beyond",
“invoice_address_company2":" GmbH & Co KG",
“invoice_address_name":"John",
“invoice_address_street":" Hanns-Martin-Schleyer-Straße 35",
“invoice_address_zip":" 47877 ",
“invoice_address_town":" Willich",
“invoice_address_country":"Deutschland"
}

PUT/PATCH

/api/user/{user-id}

{
“gender":118,
“username":"johndoe",
“first_name":"John",
“last_name":"Doe",
“longname":"John Doe",
"distributorship":"",
“company1":"BE.BEYOND",
“company2":"BE.BEYOND",
“company3":"BE.BEYOND",
“street":”Hanns-Martin-Schleyer-Straße",
“zip":"35",
“city":"Willich",
“countrycode":"DE",
“country":"Deutschland",
“phone":”+49 (0) 2154 / 48 09-0",
“fax":”+49 (0) 2154 / 48 09-90",
“email":”info@bebeyond.de”,
“web":”http://bebeyond.de",
“mobile":”+49 (0) 2154 / 48 09-0",
“customernumber ":"4711",
“code":"CODE123456",
“costcenter":"31337",
“branch":"IT & Software",
“function":"Developer",
“business_unit":"department",
“state":"",
“vatid":"DE123456789",
“hours1":"",
“hours2":"",
“hours3":"",
“distribution":"",
“type":"",
“bank":"",
“bank_code":"",
“bank_account_number":"",
“iban":"",
“bic":"",
“managing_director":"",
“headquarter":"",
“tax_id":"",
“district_court":"",
“customfield1":"",
“customfield2":"",
“customfield3":"",
“customfield4":"",
“customfield5":"",
“customfield6":"",
“customfield7":"",
“customfield8":"",
“customfield9":"",
“customfield10":"",
“invoice_address_company1":" Be.Beyond",
“invoice_address_company2":" GmbH & Co KG",
“invoice_address_name":"John",
“invoice_address_street":" Hanns-Martin-Schleyer-Straße 35",
“invoice_address_zip":" 47877 ",
“invoice_address_town":" Willich",
“invoice_address_country":"Deutschland"
}

http://shop.printlounge.local/api/user/42

oder

http://shop.printlounge.local/api/user/johndoe

""

POST

/api/user/

Adressbuch

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/address-book/

customer_user_id

http://shop.printlounge.local
/api/address-book/
?customer_user_id=123456

{
"1":{
"id":"42"
“company":"BE.BEYOND",
“company_addition":”GmbH",
“company_addition2":"& Co KG”,
“contact_person":"Herr Mustermann",
“first_name":"John",
“last_name":"Doe",
“street":”Hanns-Martin-Schleyer-Straße",
“postcode":"35",
“location":"Willich",
“phone":”+49 (0) 2154 / 48 09-0",
“mail":”info@bebeyond.de”,
“cost_location":"4711",
}
}

GET

/api/address-book/{address-id}

customer_user_id

http://shop.printlounge.local
/api/address-book/42
?customer_user_id=123456

{
"id":"42"
“company":"BE.BEYOND",
“company_addition":”GmbH",
“company_addition2":"& Co KG”,
“contact_person":"Herr Mustermann",
“first_name":"John",
“last_name":"Doe",
“street":”Hanns-Martin-Schleyer-Straße",
“postcode":"35",
“location":"Willich",
“phone":”+49 (0) 2154 / 48 09-0",
“mail":”info@bebeyond.de”,
“cost_location":"4711",
}

PUT/PATCH

/api/address-book/{address-id}

customer_user_id

{
“company":"BE.BEYOND",
“company_addition":”GmbH",
“company_addition2":"& Co KG”,
“contact_person":"Herr Mustermann",
“first_name":"John",
“last_name":"Doe",
“street":”Hanns-Martin-Schleyer-Straße",
“postcode":"35",
“location":"Willich",
“phone":”+49 (0) 2154 / 48 09-0",
“mail":”info@bebeyond.de”,
“cost_location":"4711",
}

http://shop.printlounge.local
/api/address-book/42
?customer_user_id=123456

""

Lagerbestand

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/article-stock/{article-id}

https://shop.print-server.net
/api/article-stock/4711

{"stock":"123"}

PUT/PATCH

/api/article-stock/{article-id}

[addToStock]

{"stock":"500"}

https://shop.print-server.net
/api/article-stock/4711?addToStock=1

""

PUT/PATCH
ab v8.23.0Blue

/api/article-stock/bulk

{

"{article-id}": {

"addToStock": false,

"stock": 50

},

"{article-id}": {

"addToStock": true,

"stock": "test"

}

}

{

"111": {

"addToStock": false,

"stock": 50

},

"222": {

"addToStock": true,

"stock": "test"

}

}

https://shop.print-server.net/api/article-stock/bulk

{

"results": [

{

"articleId": 111,

"status": 200

},

{

"articleId": 222,

"status": 400,

"error": "stock is not a number"

}

]

}

GET

/api/article-stock

https://shop.print-server.net
/api/article-stock

[
{
"articleId": 123,
"stock": 30
},
{
"articleId": 456,
"stock": 4934
},
{
"articleId": 789,
"stock": 908
}
]

Wenn der Parameter addToStock gesetzt ist, dann wird der übermittelte Lagerbestand (stock) zum Aktuellen hinzugefügt.

Fehlt dieser Parameter, wird der übermittelte Lagerbestand gesetzt.

Ebenso gibt es die Möglichkeit dies über eine externe Nummer (im System auch SAP Nummer genannt) gesetzt werden:

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/external-number-stock/{external-number}

{
"success": true,
"message": "",
"data": {
"articles": [
{
"id": 65020,
"name": "Artikel mit Gewicht",
"stockValue": 121
}
],
"articleOptions": [
{
"tag": "LB-Option-x",
"description": "LB-Option-3 name",
"stockValue": 121
},
{
"tag": "B-Option",
"description": "Eins",
"stockValue": 0
}
]
}
}

PUT/PATCH

/api/external-number-stock/{external-number}

{
"newStock": "121"
}

{
"success": true,
"message": "",
"data": {
"updatedCount": "3"
}
}

PUT/PATCH
ab v8.23.0Blue

/api/external-number-stock/bulk

{

"{external-number}": {

"newStock": 50

},

"{external-number}": {

"newStock": 60

}

}

{

"article_111": {

"newStock": 50

},

"article_222": {

"newStock": 60

}

}

{

"results": [

{

"external_number": "article_111",

"status": 200,

"updatedCount": 1

},

{

"external_number": "article_222",

"status": 404,

"error": "no article or article-option with SAP-Number: article_222 found."

}

]

}

Order-Cart

Status

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/order-cart-status/

 order_code

http://shop.printlounge.local
/api/order-cart-status/?order_code=PSYADU

[{
"id":"123321",
"status":"TEMP",
"service_provider_status":"new"
}]

GET

/api/order-cart-status/{order-cart-id}

http://shop.printlounge.local
/api/order-cart-status/123321

{
"id":"1545186",
"status":"TEMP",
"service_provider_status":"new"
}

PUT/PATCH

/api/order-cart-status/{order-cart-id}

{
"status":"2",
"service_provider_status":"3"
}

http://shop.printlounge.local
/api/order-cart-status/123321

In der folgenden Tabelle ist die Zuordnung zwischen Status und der Nummerierung:

Nummer

Order Cart Status

Service Provider Status

1

OK

new

2

AUF FREIGABE WARTEN

active

3

AUF ZAHLUNG WARTEN

closed

4

DRUCKFREIGABE ANFORDERN

storno

5

DRUCKFREIGABE ABGELEHNT

cleared

6

PACKED

7

SHIPPED

8

FREIGABE ABGELEHNT

9

STORNO

10

GELÖSCHT

11

TEMP

Details

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/cart-item/{cart-item-id}

http://shop.printlounge.local
/api/cart-item/4711

{
"id": "4711",
"client_id": "42",
"order_id": "123",
"parent_id": "4710",
"type": "5",
"aid": "0",
"article_type": "0",
"persdata": "",
"persdata_array": "",
"additional_fields_array": "",
"cart_additional_fields_array": "",
"article_options_remark": "",
"quantity": "1",
"quantity_value": "1",
"remark": "",
"filename": "",
"pdf_filenames": "",
"cost_center": "",
"mdate": "2021-08-12 16:09:08",
"cdate": "2021-08-10 11:18:18",
"rdate": "0000-00-00 00:00:00",
"r_remark": null,
"r_short": "",
"r_email": "",
"s_desc": "B-Option: Eins",
"s_quantity_value": "1 St\u00fcck",
"s_cost_center": "",
"s_total": "\u00a3 1,00",
"s_ntotal": "100",
"s_vat": "1",
"mailing_count": "0",
"status": "OK",
"send_reminder": "0",
"printshop": "0",
"payment_interface": "0",
"md5": "4b0c123b9ae682cd9b57224e90a651bf",
"show": "1",
"jobname": "",
"premium_interactive_editor": "0",
"premium_image_upload": "0",
"page_count": "0",
"download_count": "0",
"article_options": "",
"pdf_download_only": "0",
"local_order_workflow_step_id": "0",
"uploadpath": "",
"direct_download": "0",
"cart_addresses_array": "0",
"serviceprovider_id": "80882",
"serviceprovider_status": "new",
"order_number": "0",
"do_not_calculate": "0",
"postage_graduation": "0",
"ftp_checksum": "",
"ftp_download": "0",
"ftp_error": "0",
"data_id": "0",
"status_sendmail": "1",
"reorder": "0",
"article_reorder": "0",
"voucher": "0",
"voucher_id": "0",
"voucher_array": "",
"approval_address_id": "0",
"mailing": "0",
"report_group_id": "0",
"price_internal": 1.5
}

Infos

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

GET

/api/cart-item/{cart-item-id}/info

https://dev.localhost/api/cart-item/4711/info

[
{
"name": "articleOptionId",
"value": 5692
},
{
"name": "sapNumber",
"value": "mySAP-1"
}
]

GET

/api/cart-item/{cart-item-id}/info/sapNumber

https://dev.localhost/api/cart-item/4711/info/sapNumber

"mySAP-1"

DHL Mailoptimizer/Portooptimierung (veraltet)

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

PUT/PATCH

/api/dhlmailoptimizer/{process_id}

{
"status":"1"
}

http://shop.printlounge.local
/api/dhlmailoptimizer/PC08E6

Add-On: Druckdaten pro Artikeloption (Handelsware Plus)DruckdatenProArtikeloption

HTTP Methode

Pfad

Parameter

Beispiel

Rückgabeformat

GET

/api/article-option/printfile/{option_id}

http://shop.printlounge.local/api/article-option/printfile/56269

{
"link": "shop.printlounge.local",
"file": "56269_test.pdf"
}

POST

/api/article-option/printfile/{option_id}

link

file

http://t.printlounge.local/api/article-option/printfile/56269

{
"status": "OK"
}

Add-On: Fremddienstleister Produktion (ThirdPartyProduction)

HTTP Methode

Pfad

Parameter

Request-Body

Beispiel

Rückgabeformat

PUT/PATCH

/api/module/ThirdPartyProduction/releaseOrderItem/{orderItemId}

{
"TransferToDropShippingApi": 0
}

Rückgabewerte/Response codes

Es wird ein entsprechender HTTP Statuscode zurückgegeben um den Erfolgs- oder Fehlerfall mitzuteilen.  

200 OK

GET, PUT oder DELETE Kommando war erfolgreich.

201 Created

POST Kommando war erfolgreich.

400 Bad request

Die Anfrage ist unvollständig oder existiert nicht. Es muss die URL oder Parameter anpepasst werden.

401 Unauthorized

Der Benutzer ist nicht angemeldet.

403 Forbidden

Der Benutzer hat keine Rechte um die Anfrage auszuführen.

404 Not found

Das Ziel konnte nicht gefunden werden.

500 Internal Server Error

Dieser tritt meistens bei Validierungsfehler auf. Die Fehlerinformationen sind im „Body“ der Antwort vorhanden und haben folgenden Aufbau:

{

    "error": "Parameter nicht beschreibbar"

}

Alle Anfragen und Rückgabewerte sind UTF-8 codiert. Die Rückgabe erfolgt im Json-Format.

Schnittstelle im Browser testen

Zum Testen kann entweder ein Rest Api Plugin für den Browser installiert werden, oder die Browser-Entwickleroption verwendet werden. 

Mit dem Firefox wird die Entwickleroption mit F12 aktiviert. Dort muss dann der Reiter Netzwerkanalyse ausgewählt und die Seite neu geladen werden.

Dort werden alle Netzwerkabfragen aufgelistet. In diesem Beispiel sollte es nur eine Anfrage sein. Diese müsste markiert werden, dann öffnet sich zur rechten Details.

In den Details wird die Antwort vom Server ordentlich als JSON dargestellt:

Bei der Kopfzeile kann durch Bearbeiten und erneut senden die einzelnen Funktionen getestet werden. Hierfür auf den entsprechenden Button geklickt werden:

Für ein PUT muss das GET aus der oberen linken Box abgeändert werden. Ebenso muss im Request-Body der zu ändernden Parameter wie folgt angegeben werden:

{"order_status":"117"}

Durch das Betätigen des Knopfes "Senden" wird die überarbeitete Anfrage versendet.

Wird ein Status-Code 200 zurückgegeben, ist dies erfolgreich gewesen. Bei anderen gibt es eine entsprechende Fehlermeldung in der Antwort.