Table of Contents | ||||||
---|---|---|---|---|---|---|
|
...
Erstellen einer Nachricht
Erstellen eines neuen Teasers, einer News oder einer Push-Nachricht für einen Subshop
Request
...
Below is the description of the WEBSALE API to connect your systems to create, edit and send teasers, news and push messages for your WEBSALE app.
Create a news item
Create a new teaser, news or push message for a subshop
Request
Code Block |
---|
Content-Type
application/json
Authorization
...
token
is required
Request-Body
EigenschaftProperty | TypType | BeschreibungDescription | DefaultPflichtfeld für Aktivierung* | Mandatory field for activation |
---|---|---|---|---|
newsType | numberNachrichtentyp | (Pflichtfeld zum Anlegen eines Eintrags, kann nachträglich nicht geändert werdenMessage type (mandatory field for creating an entry, cannot be changed later) 0 = Push -Nachrichtmessage | 0 | JaYes |
title | string | Überschrift Headline (max. 64 Zeichencharacters) | "" | Ja Yes (außer Teaserexcept teaser) |
text | string | Nachrichtentext, der im Message text to be displayed in the "News" -Reiter angezeigt werden solltab. (max. 160 Zeichencharacters) | "" | Ja Yes (außer Teaserexcept teaser) |
urlType | string | Art der angegebenen Type of URL specified | "" | NeinNo |
url | string | URL , die bei Klick geöffnet werden soll to be opened on click (max. 160 Zeichencharacters) | ""Ja | Yes, wenn if "urlType" angegeben wurdeis specified |
image_url | string | relativer Pfad zum Teaserbild (relativ ab benutzerrelative path to teaser image (relative from user/appdata/bilderimages ) | ""Ja | , wenn Nachricht vom Typ Teaser istYes, if message is of type teaser |
validFrom | number | Timestamp , ab dem die Nachricht angezeigt werden sollfrom which message should be displayed | 0 | JaYes |
validUntil | number | Timestamp , bis zu dem die Nachricht angezeigt werden sollup to which the message should be displayed | 0 | JaYes |
active | boolSchalter, damit die Nachricht aktiv an Geräte verteilt wird. Der Versand von Push-Nachrichten muss zusätzlich über einen separaten Endpunkt angestoßen werden | Switch so that the message is actively distributed to devices. Sending push messages must also be triggered by a separate endpoint. | false | Ja |
* Damit eine Nachricht aktiviert werden kann, müssen alle Pflichtfelder korrekt gesetzt sein.
Beispiel Request-Body
...
Yes |
* All mandatory fields must be set correctly for a message to be activated.
Example Request-Body
Create a new news with the title "New news".
Code Block | ||
---|---|---|
| ||
{
"newsType": 1,
"title": "Neue News"
} |
Beispiel cURL
Erstelle eine neue News mit dem Titel "Neue News".
Code Block |
---|
curl \
-X POST \
-H "Content-Type: application/json" \
-H "X-Authorization: Bearer eyJhbGciOiJIUzI1Ni...jBhOWMyMmRmNzFkOT==" \
-d '{
"newsType": 1,
"title": "Neue News"
}' \
"https://websale.de/api/websaleapp2/news/Deutsch" |
Response
...
Example cURL
Create a new news with the title "New News".
Code Block |
---|
Response
On success HTTP code 200 is returned. The content contains the current data of the news object.
Code Block | ||
---|---|---|
| ||
{
"id": 64,
"title": "Neue News",
"sendCount": 0,
"newsType": 1,
"active": false,
"sentStatus": 0,
"text": "",
"url": "",
"urlType": "",
"timeStamp": 1574870841,
"validFrom": 0,
"validUntil": 0,
"image_url": "",
"progressCurrent": 0,
"progressTotal": 0,
"sentDateTime": 0,
"firstActivated": 0,
"lastUpdated": 1574870841
} |
Ist ein Fehler aufgetreten, wird ein 400er-Code zurückgegeben.
...
Fehlercode
...
Beschreibung
...
400
...
Fehlerhafter Content. Genauerer Fehlergrund innerhalb vom Response-Body
Bearbeiten einer vorhandenen Nachricht
Bearbeiten eines vorhandenen Teasers, einer News oder einer Push-Nachricht für einen Subshop. Es werden nur die Felder aktualisiert, die im Request angegeben wurden und überschreibbar sind.
Request
Code Block |
---|
PUT https://websale.de/api/websaleapp2/news/{subshopid}/{id} |
If an error occurred, a 400 code is returned.
Error code | Description |
---|---|
400 | Faulty content. Exact reason for the error within the response body |
Editing an existing message
Edit an existing teaser, news or push message for a subshop. Only the fields that were specified in the request and can be overwritten will be updated.
Request
Code Block |
---|
Content-Type
application/json
Authorization
...
token
is required
Request-Body
...
EigenschaftProperty | TypType | BeschreibungDescription | DefaultPflichtfeld für Aktivierung* | Mandatory field for activation |
---|---|---|---|---|
title | string | ÜberschriftHeadline | "" | Ja Yes (außer Teaserexcept teaser) |
text | string | Nachrichtentext, der im News text to be displayed in the "News" -Reiter angezeigt werden solltab | "" | Ja Yes (außer Teaserexcept teaser) |
urlType | string | Art der angegebenen Type of the specified URL "internal-login" = Die angegebene URL wird innerhalb der App aufgerufen. Durch den mitgeschickten Authentifizierungstoken ist der User (wenn in der App angemeldet) direkt im Shop angemeldetThe specified URL is called within the app. The authentication token sent with the URL means that the user (if logged in to the app) is logged in directly to the store | "" | NeinNo |
url | string | URL , die bei Klick geöffnet werden sollto be opened on click | "" | JaYes, wenn if urlType angegeben wurdeis specified |
image_url | string | relativer Pfad zum Teaserbild (relativ ab benutzerrelative path to teaser image (relative from user/appdata/bilderimages ) | ""Ja | , wenn Nachricht vom Typ Teaser istYes, if message is of type teaser |
validFrom | number | Timestamp , ab dem die Nachricht angezeigt werden sollfrom which message should be displayed | 0 | JaYes |
validUntil | number | Timestamp , bis zu dem die Nachricht angezeigt werden sollup to which the message should be displayed | 0 | JaYes |
active | boolSchalter, damit die Nachricht aktiv an Geräte verteilt wird. Der Versand von Push-Nachrichten muss zusätzlich über einen separaten Endpunkt angestoßen werden | Switch so that the message is actively distributed to devices. Sending push messages must also be triggered by a separate endpoint. | false | Ja |
* Damit eine Nachricht aktiviert werden kann, müssen alle Pflichtfelder korrekt gesetzt sein.
Beispiel Request-Body
Yes |
* All mandatory fields must be set correctly for a message to be activated.
Example request body
Activation of an existing message
Code Block | ||
---|---|---|
| ||
{
"active": true
} |
Beispiel cURL
Aktivierung der Nachricht mit der ID 64 aus dem Subshop 'Deutsch'
Code Block |
---|
curl \
-X PUT \
-H "Content-Type: application/json" \
-H "X-Authorization: Bearer eyJhbGciOiJIUzI1Ni...jBhOWMyMmRmNzFkOT==" \
-d '{
"active": true
}' \
"https://websale.de/api/websaleapp2/news/Deutsch/64" |
Response
...
Example cURL
Activation of the message with the ID 64 from the subshop 'German
Code Block |
---|
Response
If successful, HTTP code 200 is returned. The content contains the current data of the message object.
Code Block | ||
---|---|---|
| ||
{
"id": 64,
"title": "Neue News",
"sendCount": 0,
"newsType": 1,
"active": true,
"sentStatus": 0,
"text": "121",
"url": "",
"urlType": "",
"timeStamp": 1574870841,
"validFrom": 0,
"validUntil": 0,
"image_url": "",
"progressCurrent": 0,
"progressTotal": 0,
"sentDateTime": 0,
"firstActivated": 0,
"lastUpdated": 1574871267
} |
Ist ein Fehler aufgetreten, wird ein 400er-Code zurückgegeben.
...
Fehlercode
...
Beschreibung
...
400
...
Fehlerhafter Content. Genauerer Fehlergrund innerhalb vom Response-Body
...
404
...
Der Eintrag mit der angegebenen ID existiert nicht.
Versand einer allgemeinen Push-Nachricht
Versand einer noch nicht verschickten Push-Nachricht an alle Empfänger. Die Push-Nachricht muss aktiv sein und sie durfte noch nicht verschickt worden sein.
Request
...
If an error occurred, a 400 code is returned.
Error code | Description |
---|---|
400 | Faulty content. Exact reason for the error within the response body |
404 | The entry with the specified ID does not exist. |
Sending a general push message
Sending of a push message that has not yet been sent to all recipients. The push message must be active and it must not have been sent yet.
Request
Code Block |
---|
Content-Type
application/json
Authorization-Token
wird benötigtis required
Request-Body
wird nicht benötigt
Beispiel cURL
Verschicke Push-Nachricht mit der ID 65 aus dem Subshop 'Deutsch'.
Code Block |
---|
curl \
-X POST \
-H "Content-Type: application/json" \
-H "X-Authorization: Bearer eyJhbGciOiJIUzI1Ni...jBhOWMyMmRmNzFkOT==" \
"https://websale.de/api/websaleapp2/news/send/Deutsch/65" |
Response
Bei Erfolg wird HTTP-Code 200 zurückgegeben.
Ist ein Fehler aufgetreten, wird ein 400er-Code zurückgegeben.
...
Fehlercode
...
Beschreibung
...
404
...
Der Eintrag mit der angegebenen ID existiert nicht.
...
406
...
Der angegebene Eintrag ist nicht vom Typ 'Push-Nachricht', ist noch nicht aktiv oder wurde bereits verschickt.
Versand einer personalisierten Nachricht
Versand einer personalisierten Nachricht ohne vorheriges Erzeugen eines Eintrags
Request
Code Block |
---|
POST https://websale.de/api/websaleapp2/news/personalized/send/{subshopid} |
not required
Example cURL
Send push message with ID 65 from subshop 'German'.
Code Block |
---|
Response
If successful, HTTP code 200 is returned.
If an error occurred, a 400 code is returned.
Error code | Description |
---|---|
404 | The entry with the given ID does not exist. |
406 | The specified entry is not of type 'Push message', is not yet active or has already been sent. |
Sending a personalized message
Sending a personalized message without first creating an entry
Request
Code Block |
---|
Content-Type
application/json
Authorization
...
token
is required
Request-Body
EigenschaftProperty | TypType | BeschreibungDescription | DefaultPflichtfeld | Mandatory field |
---|---|---|---|---|
name | stringInterne Bezeichnung der Push-Nachricht zur Identifikation in der Versandliste | Internal name of the push message for identification in the dispatch list | "" | JaYes |
message | objectObjekt mit allen Informationen der Nachrichten | Object with all message information | {} | JaYes |
message.title | string | ÜberschriftTitle* (max. 64 Zeichencharacters) | "" | JaYes |
message.text | string | Nachrichtentext, der im Message text to be displayed in the "News" -Reiter angezeigt werden solltab* (max. 160 Zeichencharacters) | "" | JaYes |
message.urlType | string | Art der angegebenen Type of URL specified | "" | NeinNo |
message.url | string | URL , die bei Klick geöffnet werden soll to be opened on click (max. 128 Zeichen) | "" | JaYes, wenn if urlType angegeben wurdeis specified |
message.voucher | stringChargen-ID einer im Gutscheingenerator hinterlegten Gutschein-Charge | Batch ID of a voucher batch stored in the voucher generator | "" | NeinNo |
message.validUntil | numberAnzahl | Tage, die die Nachricht auf den Geräten im News-Bereich angezeigt werden soll. (zw. 1 und Number of days the message should be displayed on the devices in the news section. (between 1 and 31) | 1 | JaYes |
filter | objectFilterkriterien für die Auswahl der Empfänger | Filter criteria for selecting recipients | {} | NeinNo |
filter.connected | bool | Filterkriterium, ob eine Push-Nachricht nur an verbundene Geräte Filter criterion whether to send a push message only to connected devices (true), nur an nicht verbundene Geräte only to unconnected devices (false) oder an alle Geräte (Filter nicht gesetzt) verschickt werden soll, or to all devices (filter not set). | not set | NeinNo |
filter.os_type | string | Filterung auf ein spezifisches BetriebssystemFilter on a specific operating system. | not set | NeinNo |
filter.email | array<string>Liste von E-Mail-Adressen, die als Empfänger berücksichtigt werden sollen. | List of email addresses to be considered as recipients. | not set | NeinNo |
filter.zip | array<string>Filterung auf Postleitzahl. Die Empfänger müssen eine der im Array angegebenen Postleitzahlen in ihrer Rechnungsadresse stehen haben. | Filter on postal code. Recipients must have one of the zip codes specified in the array in their billing address. | not set | NeinNo |
filter.zip_area | aray<object>Liste von Postleitzahlenbereichen, in der ein Empfänger steht. Dies ist nur bei Empfängern möglich, die eine rein numerische Postleitzahl in | List of zip code areas where a recipient is located. This is only possible for recipients that have a purely numeric zip code in | not set | NeinNo |
filter.zip_area[n].from | numberBeginn des zu filternden Postleitzahlenbereichs | Start of the zip code area to be filtered | not set | NeinNo |
filter.zip_area[n].to | numberEnde des zu filternden Postleitzahlenbereichs | End of the zip code area to filter | not set | Nein |
* Sofern die Nachricht an nur verbundene Geräte gesendet wird, kann der Inhalt personalisiert werden.
...
No |
* Provided the message is sent to only connected devices, the content can be personalized.
The following tags are supported for this purpose:
Tag | BezeichnungTag |
---|---|
~A-FirstName~ | VornameFirst name |
~A-LastName~ | NachnameLastName |
~A-Street1~ | StraßeStreet |
~A-Street2~ | StraßenzusatzStreet suffix |
~A-Title~ | TitelTitle |
~A-Salutation~ | AnredeSalutation |
~A-City~City | StadtCity |
~A-Zip~ | PostleitzahlPostal code |
~A-CompleteSalutation~ | Begrüßung (durch Shop generiertSalutation (generated by store) |
~VOUCHER-Number~ | Personalisierte Gutscheinnummer (sofern eine Chargen-ID angegeben wurde) |
...
Personalized voucher number (if a batch ID was specified) |
Example Request-Body
Versende eine personalisierte Nachricht mit dem Namen "Hallo" an Shopkunden, die innerhalb von Nürnberg (PLZ 90402 bis 90491) leben.
Dabei soll ein personalisierter Gutschein von der Charge "appvoucher" mitgeschickt werden. Diese Nachricht soll in den News für die nächsten 30 Tagen gelesen werden könnenSend a personalized message with the name "Hello" to store customers living within Nuremberg (zip codes 90402 to 90491).
A personalized voucher from the batch "appvoucher" is to be included. This message is to be read in the news for the next 30 days.
Code Block | ||
---|---|---|
| ||
{
"name": "Hallo",
"message": {
"title": "Nachrichten Titel",
"text": "Nachrichteninhalt",
"urlType": "internal-login",
"url": "https://www.domain.de/?voucher_number=~VOUCHER-Number~",
"validUntil": 30,
"voucher": "appvoucher"
},
"filter": {
"connected": true,
"zip_area": [
{
"from": 90402,
"to": 90491
}
]
}
} |
Beispiel cURL
Versende eine personalisierte Nachricht mit dem Namen "Hallo" an Shopkunden, die innerhalb von Nürnberg (PLZ 90402 bis 90491) leben.
Dabei soll ein personalisierter Gutschein von der Charge "appvoucher" mitgeschickt werden. Diese Nachricht soll in den News für die nächsten 30 Tagen gelesen werden können.
Code Block |
---|
curl \
-X POST \
-H "Content-Type: application/json" \
-H "X-Authorization: Bearer eyJhbGciOiJIUzI1Ni...jBhOWMyMmRmNzFkOT==" \
-d '{
"name": "Hallo",
"message": {
"title": "Nachrichten Titel",
"text": "Nachrichteninhalt",
"urlType": "internal-login",
"url": "https://www.domain.de/?voucher_number=~VOUCHER-Number~",
"validUntil": 30,
"voucher": "appvoucher"
},
"filter": {
"connected": true,
"zip_area": [
{
"from": 90402,
"to": 90491
}
]
}
}' \
"https://websale.de/api/websaleapp2/news/personalized/send/Deutsch" |
Response
...
Example cURL
Send a personalized message with the name "Hello" to store customers who live within Nuremberg (postal codes 90402 to 90491).
A personalized voucher from the batch "appvoucher" should be included. This message is to be read in the news for the next 30 days.
Code Block |
---|
Response
If successful, HTTP code 200 is returned. The content contains the current shipping ID
Code Block | ||
---|---|---|
| ||
{
"id": 66
} |
Ist ein Fehler aufgetreten, wird ein 400er-Code zurückgegeben.
...
Fehlercode
...
Beschreibung
...
400
...
Der übergebene Content ist fehlerhaft.
Statusabfrage zum Versand einer personalisierten Push-Nachricht
Request
...
...
If an error occurred, a 400 code is returned.
Error code | Description |
---|---|
400 | The passed content is faulty. |
Status request for sending a personalized push message
Request
Code Block |
---|
Content-Type
application/json
Authorization
...
token
is required
Request-Body
wird nicht benötigt
Beispiel cURL
Statusabfrage für den Versand der Push-Nachricht mit der not required
Example cURL
Status request for sending push message with ID 66.
Code Block |
---|
curl \
-X POST \
-H "Content-Type: application/json" \
-H "X-Authorization: Bearer eyJhbGciOiJIUzI1Ni...jBhOWMyMmRmNzFkOT==" \
"https://websale.de/api/websaleapp2/news/personalized/status/66" |
Response
...
Response
If successful, HTTP code 200 is returned. The content contains the entry including status information.
Code Block | ||
---|---|---|
| ||
{
"id": 66,
"status": 2,
"subshop": "Deutsch",
"type": 1,
"name": "Hallo",
"createTime": "1574870841",
"updateTime": "1574870941",
"validUntil": "30",
"title": "Nachrichten Titel",
"text": "Nachrichteninhalt",
"url": "internal-login",
"urlType": "https://www.domain.de/?voucher_number=~VOUCHER-Number~",
"voucher": "appvoucher",
"countReceiver": 10,
"countSent": 3,
"countError": 1,
"error": "",
"filter": { ... }
} |
Feldbeschreibung
...
Feldname
...
Beschreibung
...
id
...
ID der Push-Nachricht
...
status
...
Status des Versands
Mögliche Werte:
0 = Beginn
1 = Initialisierung des Versands
2 = Aktiver Versand
3 = Beendet
4 = Manuell abgebrochen
5 = Abgebrochen durch Fehler
...
subshop
...
Subshop, für den die Nachricht erstellt wurde
...
type
...
Typ der Push-Nachricht:
0 = Push-Nachricht über OSB-Dienst
1 = Push-Nachricht über REST-API
2 = Versandbestätigungsnachricht
3 = Erinnerung bei stehengelassenen Warenkörben
4 = Geburtstagsgrüße
...
name
...
Interne Bezeichnung der Push-Nachricht zur Identifikation in der Versandliste
...
createTime
...
Zeitstempel, wann die Push-Nachricht erstellt wurde
...
updateTime
...
Zeitstempel, wann der Eintrag zuletzt aktualisiert wurde
...
validUntil
...
Anzahl Tage, die die Nachricht auf den Geräten im News-Bereich angezeigt werden soll
...
title
...
Nachrichtentitel
...
text
...
Nachrichtentext
...
urlType
...
Art der angegebenen URL
...
url
...
URL, die bei Klick geöffnet werden soll.
...
voucher
...
Angegebene Chargen-ID des zu personalisierten Gutscheins
...
countReceiver
...
Gesamtzahl der Empfänger, die die Push-Nachricht empfangen sollen
...
countSent
...
Anzahl der bereits verschickten Push-Nachrichten
...
countError
...
Anzahl der fehlerhafte Zustellversuche
...
error
...
Fehlertext (wenn Versand durch Fehler abgebrochen wurde)
...
Fehlercode
...
Beschreibung
...
400
...
Der übergebene Content ist fehlerhaft
...
404
...
Field description
Field name | Description |
---|---|
id | ID of the push message |
status | Status of the dispatch Possible values: |
subshop | Subshop for which the message was created |
type | Type of push message: |
name | Internal name of the push message for identification in the shipping list |
createTime | Timestamp when the push message was created |
updateTime | Timestamp when the entry was last updated |
validUntil | Number of days the message should be displayed on the devices in the news section |
title | Message title |
text | Message text |
urlType | Type of the specified URL |
url | URL to be opened on click |
voucher | Specified batch ID of the voucher to be personalized |
countReceiver | Total number of recipients who should receive the push message |
countSent | Number of push messages already sent |
countError | Number of failed delivery attempts |
error | Error text (if sending was aborted by error) |
If an error has occurred, a 400 code is returned.
Error code | Description |
---|---|
400 | The passed content is faulty |
404 | No entry found with the specified ID |