Inhalt |
---|
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.
Artikel
Verfügbare Daten
Über die API kann auf folgende Daten zugegriffen werden.
...
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
...
Inhalt |
---|
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.
Info | ||
---|---|---|
| ||
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.
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 | Rückgabeformat | ||||
---|---|---|---|---|---|---|---|---|---|
GET | /api/article | - | http://shop.printlounge.local /api/article | [ 25: Handelsware | |||||
GET | /api/article/{article-id} | - | http://shop.printlounge.local /api/article/4711 | [ 25: Handelsware | GET | /api/article/{article-id} | - | http} |
Verfügbare Daten
Bestellung
HTTP Methode | Pfad | Parameter | Request-Body | Beispiel | Rückgabeformat | ||
---|---|---|---|---|---|---|---|
Fürs eine Auflistung der aktuellsten Bestellungen, siehe Bestellstatus: /api/order/ | [ | ||||||
GET | /api/cart/{order-code} | - | https://shop.printlounge.local | /api/ | articlecart/ | 4711{ |
Verfügbare Daten
Bestellung
...
{
"order_code": "XABCDE"
"order_status": 61
}
...
Die folgende Tabelle stellt alle möglichen Statuswerte dar:
...
Addressen
HTTP Methode
Pfad
Parameter
Request-Body
Beispiel
HTTP Methode | Pfad | Parameter | Request-Body | Beispiel | Rückgabeformat | ||
---|---|---|---|---|---|---|---|
Fürs eine Auflistung der aktuellsten Bestellungen, siehe Bestellstatus: /api/order/ | [ | 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_budgetgruppeXABCDE | { "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 1: Article |
Bestellstatus
...
HTTP Methode
...
Pfad
...
Parameter
...
Request-Body
...
Beispiel
...
Zum Blättern:
- limit
- lastSeenId
Zum Filtern:
- orderStatus
- status
- statusPaid
...
[
{
"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"
}
]
sein kann: 1: Article |
Bestellstatus
HTTP Methode | Pfad | Parameter | Request-Body | Beispiel | Rückgabeformat |
---|---|---|---|---|---|
GET | /api/order/ | Zum Blättern:
Zum Filtern:
| /api/order/?limit=20&lastSeenId=4711&orderStatus=61&status=1&statusPaid=1&orderByDesc=0 | [ | |
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"} | http://shop.printlounge.local/api/order/39293 |
Die folgende Tabelle stellt alle möglichen Statuswerte dar:
Status | 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 |
144 | warte auf Kostenfreigabe |
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 | { | |
PUT/PATCH | /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", |
"department": null,
"telephone": "",
"fax": null
}
/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",
": "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: { Wenn keine Daten übermittelt wurden: { |
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 } | http://shop.printlounge.local/api/order/39293 |
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. | { | |
PUT/PATCH | /api/component/Order-Order/tracking/{order-code} | - | { | /api/component/Order-Order/tracking/EVKKKO | { |
...
Benutzer
Für {user-id} kann die Id oder der username verwendet werden
HTTP Methode | Pfad | Parameter | Request-Body | Beispiel | Rückgabeformat | |||||
---|---|---|---|---|---|---|---|---|---|---|
GET | /api/ | order-trackinguser/{ | order-code}[?cart_item_id={cart_item_id}]cart_item_id=134 | httpsuser-id} | http://shop.printlounge.local | :4432/api/ | order-tracking/PMOAEG?cart_item_id=134[user/42 | { | Hermes
...
http://shop.printlounge.local/api/user/42
oder
http://shop.printlounge.local/api/user/johndoe
...
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 | { | "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 } | http://shop.printlounge.local/api/order/39293 |
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.
Benutzer
Für {user-id} kann die Id oder der username verwendet werden
...
HTTP Methode
...
Pfad
...
Parameter
...
Request-Body
...
Beispiel
...
{
“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",
“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":"",
“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"
}
...
{
“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",
“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":"",
“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"
}
“last_name":"Doe", | |||||
PUT/PATCH | /api/user/{user-id} | { | http://shop.printlounge.local/api/user/42 oder | "" |
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 | { | |
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 | { | http://shop.printlounge.local /api/address-book/42 ?customer_user_id=123456 | "" |
Lagerbestand
HTTP Methode | Pfad | Parameter | Request-Body | Beispiel | Rückgabeformat | ||||
---|---|---|---|---|---|---|---|---|---|
GET | /api/ | addressarticle- | bookstock/{ | addressarticle-id} | customer_user_id | httphttps://shop.print-server.net /api/article-stock/4711 | {"stock":"123"} | ||
PUT/PATCH | /api/article-stock/{article-id} | [addToStock] | {"stock":"500"} | https://shop.printlounge.localprint-server.net /api/article-stock/4711?addToStock=1 | "" | ||||
GET | /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 | { | 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} | http://shop.printlounge.local /api/article-stock/4711 | {"stock":"123"article-stock | https://shop.print-server.net /api/article-stock | [ |
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} | { | |||
PUT/PATCH | /api/articleexternal-number-stock/{articleexternal-idnumber} | [addToStock] { " stocknewStock": " 500121" | http://shop.printlounge.local /api/article-stock/4711?addToStock=1 | "" |
Wenn der Parameter addToStock gesetzt ist, dann wird der übermittelte Lagerbestand (stock) zum Aktuellen hinzugefügt.
...
{ |
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 | [{ | |
GET | /api/order-cart-status/{order-cart-id} | http://shop.printlounge.local /api/order-cart-status/123321 | { | ||
PUT/PATCH | /api/order-cart-status/{order-cart-id} | { "status":"2", "service_provider_status":"3" } | http://shop.printlounge.local /api/order-cart-status/123321 |
...
HTTP Methode | Pfad | Parameter | Request-Body | Beispiel | Rückgabeformat |
---|---|---|---|---|---|
GET | /api/cart-item/{cart-item-id} | http://shop.printlounge.local /api/cart-item/4711 | { |
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 | [ | ||
GET | /api/cart-item/{cart-item-id}/info/sapNumber | https://dev.localhost/api/cart-item/4711/info/sapNumber | "mySAP-1" |
DHL Mailoptimizer/Portooptimierung
...
HTTP Methode | Pfad | Parameter | Beispiel | Rückgabeformat |
---|---|---|---|---|
GET | /api/article-option/printfile/{option_id} | http://shop.printlounge.local/api/article-option/printfile/56269 | { | |
POST | /api/article-option/printfile/{option_id} | link file | http://t.printlounge.local/api/article-option/printfile/56269 | { |
Add-On: Fremddienstleister Produktion (ThirdPartyProduction)
HTTP Methode | Pfad | Parameter | Request-Body | Beispiel | Rückgabeformat |
---|---|---|---|---|---|
PUT/PATCH | /api/module/ThirdPartyProduction/releaseOrderItem/{orderItemId} | { |
Rückgabewerte/Response codes
...