Mittels SSO-Schnittstelle kann eine automatisierte Anmeldung und Registrierung von Benutzern vorgenommen werden. In der Regel wird die Schnittstelle dazu verwendet, dass die Daten von einem Kundensystem (z. B. durch ein CMS- oder CRM-System, Intranet oder Procurementplattform) aufbereitet werden. Über einen Link mit speziell verschlüsselten Query String wird die PRINT LOUNGE aufgerufen.
...
Für shopname wird der Shopname angegeben der in der Administration der Print - Lounge (Verwaltung - Kunden - bearbeiten→ Kunden → bearbeiten) eingestellt wurde. Bitte konfigurieren Sie in der Administration Ihres Shops die SSO-Schnittstelle (Verwaltung - Kunden - bearbeiten - SSOVerwaltung → Kunden → bearbeiten → SSO-Schnittstelle) und verwenden Sie die dort ein gestellte Passphrase eingestellte Passphrase um die Daten zu verschlüsseln.
...
...
Bezeichnung | Typ / Wert | Bemerkung | Version |
---|---|---|---|
request_time * | Datum und Uhrzeit (ISO 8601) | Zeitpunkt des Aufrufs (Standardgültigkeit des Requests 500s - 8 min) | since 4.3.23 |
customer_user_name * | 50 Zeichen (A-Z0-9_-.@) | Benutzen Sie eindeutige Zuordnungen wie UserIds, E-Mails oder Benutzernamen |
customer_user_budgetgruppe__id | Integer | Wird keine Benutzergruppe übergeben, wird der Benutzer in einer definierten Standardbenutzergruppe angelegt. Gleiches gilt, wenn das System anhand der ID keine gültige Benutzergruppe ermitteln kann. | |
group_customer_number | Wird der Name der Benutzergruppe übergeben, wird geprüft ob inder Gruppe die Kundennummer mit exakt diesem Wert existiert. Falls nicht wird der Benutzer der Standardgruppe zugeordnet. Bei einer Übereinstimmung wird der Benutzer in die jeweilige Gruppe zugewiesen. ACHTUNG: Funktioniert nur wenn unter "Shops->bearbeiten→ SSO Schnittstelle" die Option "Benutzergruppen anhand Kundennummer ermitteln" aktiviert wurde. |
group_name | 50 Zeichen (Utf8) | Wird der Name der Benutzergruppe übergeben, wird geprüft ob die Gruppe mit exakt diesem Namen existiert. Falls nicht wird die Gruppe neu angelegt. Der Benutzer wird dieser Gruppe zugewiesen. ACHTUNG: Funktioniert nur wenn unter "Shops->bearbeiten" die Option "Benutzergruppen automatisch anlegen" aktiviert wurde. | since 6.34.0 |
customer_longname | 50 Zeichen (Utf8) | ||
customer_firstname | 50 Zeichen (Utf8) |
customer_lastname | 50 Zeichen (Utf8) | ||
customer_user_businessunit | 50 Zeichen (Utf8) |
customer_user_purchaser | 50 Zeichen (Utf8) |
customer_user_company1 | 200 Zeichen (Utf8) |
customer_user_company2 | 200 Zeichen (Utf8) |
customer_user_company3 | 200 Zeichen (Utf8) |
customer_user_street | 200 Zeichen (Utf8) |
customer_user_zip | 10 Zeichen (Utf8) |
customer_user_town | 200 Zeichen (Utf8) |
customer_user_country | 200 Zeichen (Utf8) | Veraltet, nutzen Sie customer_user_countrycode |
customer_user_countrycode | Ländercode (ISO 3166) |
since 4.2.10 | |
customer_user_costcenter | 200 Zeichen (Utf8) |
customer_user_telefon | 200 Zeichen (Utf8) |
customer_user_telefax | 200 Zeichen (Utf8) |
customer_user_email | 100 Zeichen (Utf8) |
user_groups_binary_url | 200 Zeichen (Utf8) | URL für Logo (Bild) einer Benutzergruppe | |
user_groups_binary_description | 50 Zeichen (Utf8) | Beschreibung für Logo (Bild) einer Benutzergruppe | |
customer_user_internet | 100 Zeichen (Utf8) |
customer_user_mobil | 50 Zeichen (Utf8) |
customer_user_kundennummer | 100 Zeichen (Utf8) |
customer_user_level | Integer |
freigabeportal_zeigen | 53: Ja |
customer_user_aussendienst | 200 Zeichen (Utf8) |
customer_funktion | 200 Zeichen (Utf8) |
sprache | de: Deutsch (Standard) |
(veraltet) | ||
customfield1 | 200 Zeichen (Utf8) |
customfield2 | 200 Zeichen (Utf8) |
customfield3 | 200 Zeichen (Utf8) |
customfield4 | 200 Zeichen (Utf8) |
customfield5 | 200 Zeichen (Utf8) |
customer_user_level | 57: A - Benutzer (Standard) |
delivery_address_editable | 0: Ja 1: Nein, ohne E-Mail 2: Nein | Legt fest, ob die Lieferadresse im Warenkorb editierbar ist. | |
dest_page | wg: Eine Warengruppenseite |
article_detail: Detailseite für Artikel | ||
dest_id | Die ID des Eintrags (Warengruppe oder Artikel) |
quantity |
qty
Die Anzahl aus der Preisstaffel (Wird keine Anzahl übermittel, ermittelt das System die kleinste Preisstaffel für den jeweiligen Artikel) |
skip_cart | 53: Ja |
continue_shopping | Zeigt im Warenkorb den Button "Weiter einkaufen". 0: Deaktivieren Achtung: Beim Aktivieren wird die Variable "skip_cart" ignoriert. |
pers_data | Dient der Übermittlung von Personalisierungsdaten (siehe unten) |
test | Zum Aktivieren des Testmodus kann der Parameter „test = true“ |
übergeben werden. Anstelle der Weiterleitung findet eine Bildschirmausgabe der |
* Pflichtfelder
Nachübergebenen Daten statt. | |||
lang |
| ||
dynamic_lists | Listeneinträge über die SSO-Schnittstelle als JSON-String übergeben. (Mehr dazu erfahren Sie unter dem Punkt "Dynamische Listeneinträge") | ||
view_settings | Typ/Wert: Array
| ||
email_address_for_cost_release | E-Mail-Adresse für Kostenfreigabe (ab Version 6.0.0) | ||
external_order_number | Externe Bestellnummer | Über diesen Parameter kann eine Bestellnummer aus einem externen System übergeben werden, welche dann beim Auslösen einer Bestellung innerhalb der PRINT LOUNGE in der neuen Bestellung als "Externe Bestellnummer" hinterlegt wird. | |
return_url | 200 Zeichen | Wird hier eine URL angegeben, so wird auf der Finish ein Button angezeigt, der zu dieser URL führt | |
settings | Array | Dieses Array kann alle Benutzer-Settings als key-value-Paar enthalten, welche gesetzt werden sollen. | |
redirect_url | 200 Zeichen (Utf8) | Hier kann eine URL (z.B. "/makepage.php?searchStr=test&p=search") eingetragen werden. Findet ein erfolgreicher Login statt, wird der User direkt zu der angegebenen URL geleitet. |
* Pflichtfelder
Nach der Anmeldung am System stehen alle Funktionen wie gewohnt zur Verfügung, als ob der Benutzer sich regulär angemeldet hätte. Optional kann die reguläre Anmeldung mit Benutzernamen und Kennwort deaktiviert werden, so dass sodass Benutzer nur noch über die Schnittstelle ins System gelangen können.
Bestellung stornieren
Folgende Daten müssen übermittelt werden:
Bezeichnung | Typ / Wert | Bemerkung | Version |
---|---|---|---|
request_time * | Datum und Uhrzeit (ISO 8601) | Zeitpunkt des Aufrufs (Standardgültigkeit des Requests 500s - 8 min) | since 4.3.23 |
dest_page | cancel_order | ||
dest_id | Der Bestellcode |
Benutzerfelder nicht überschreibbar
Die Einstellung befindet sich unter Shops → bearbeiten → SSO-Schnittstelle → Benutzerfelder nicht überschreibbar.
Alle Benutzerfelder die in diesem Auswahlfeld ausgewählt sind, können nicht über die SSO-Schnittstelle überschrieben werden.
Auch wenn ein Wert für eines der Felder übergeben wird, wird der alte Wert beibehalten.
Dynamische Listeneinträge
Mit dieser Funktion können die Listeneinträge über die SSO-Schnittstelle in JSON-Format übergeben werden.
Diese Funktion kann unter Feldspezialoptionen aktiviert werden:
Info | ||
---|---|---|
| ||
Die Erweiterung unterstützt ausschließlich eindimensionale Listen, weitere Felder werden von der Listenfunktion nicht beeinflusst. |
JSON-String-Beispiel:
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"FELD_ANREDE": {
"default_value": "w",
"options": [
{
"name": "Frau",
"value": "w"
},
{
"name": "Herr",
"value": "h"
}
]
},
"FELD_TELEFON_LAENDERVORWAHL": {
"default_value": "0049",
"options": [
{
"name": "(+49 Deutschland)",
"value": "0049"
},
{
"name": "(+43 Österreich)",
"value": "0043"
}
]
}
} |
Übermittlung von Personalisierungsdaten
Zur direkten Personalisierung eines Artikels kann der Parameter „pers = true“ und „dest_page = pers“ angegeben werden. Wird der Parameter weggelassen wird der Benutzer zu zur angegebenen Zielseite weitergeleitet. Zusätzlich Zusätzlich kann man Personalisierungsdaten übergebenübergeben. Dazu wird der Paramater „pers_data“ angegeben. Die Datenübergabe Datenübergabe kann auf zwei Wegen erfolgen:
- „pers_data“ wird als Array übergebenübergeben. Hierbei wird als Key der Variablen-Name Variablenname aus der Druckvorlage übergeben übergeben und als Value ein gewünschter gewünschter Wert.
- „pers_data“ wird als Integer übergebenübergeben. Hierbei handelt es sich um die „Id“ eines für für die Vorlage gespeicherten Datensatzes. Wird ein Datensatz erfolgreich ermittelt, werden diese Daten automatisch geladen.
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
$userData["request_time"] = (new DateTime())->format(DateTime::ISO8601); // ab PHP 5.4 $userData["customer_user_name"] = "max@mustermann.de"; $userData["customer_longname"] = "Max Mustermann"; $userData["customer_user_company1"] = "Mustermann GmbH"; //Übermittlung von weiteren Personalisierungsdaten $userData["pers"] = true; $userData["pers_data"]["Feld1"] = "Wert1"; $userData["pers_data"]["Feld2"] = "Wert2"; $string = http_build_query($userData); $myPasshrase = "Passphrase"; $myCipher = "AES-256-CBC"; // Die Einstellungen unter "Verwaltung - Shops - SSO Schnittstelle - Verschlüsselungsverfahren" beachten! $iv = substr (hash('sha256', $myPasshrase), 0, 16); $encoded_string = openssl_encrypt ($string, $myCipher, $myPasshrase, false, $iv); $encoded_string = urlencode($encoded_string); |
Referer Prüfung
Im Feld Referer Prüfung kann ein Regex eingegeben werden, mit dem die Anmeldung und Erstellung von Nutzern nur für eine oder mehrere angegebene Domains erlaubt.
Beispiel: www.domain.de zulassen:
/www\.domain\.de/
Beispiel: www.domain.de und www.weiteredomain.de zulassen:
/www\.(domain|weiteredomain)\.de/
Beispiel: *.domain.de zulassen:
/(.*)\.domain|\.de/
Benutzer ohne Benutzernamen mit temporärem Benutzernamen anmelden
Wenn die Option 'Benutzer ohne Benutzernamen mit temporärem Benutzernamen anmelden' aktiviert ist, die Option 'Unbekannte Benutzer registrieren ' aktiviert ist
und keine ENCODED_KEY_VALUE_PAIRS (?h=) übergeben werden, wird ein temporärer Benutzer mit einem Dummy Benutzernamen angelegt.
Innerhalb der Administration im Bereich Verwaltung
...
→ Kunden → bearbeiten → SSO-Schnittstelle können die oben beschriebenen Informationen abgelegt und die Funktionen aktiviert werden.
Benutzer Settings
Dieses Array kann alle Benutzer-Settings als key-value-Paar enthalten, welche gesetzt werden sollen.
...
Codeblock | ||||
---|---|---|---|---|
| ||||
$ssoData['settings'] = [
'UserBudgetSettings' => json_encode([
'activateUserDiscount' => true,
'activateUserDiscountDescription' => 'activateUserDiscountDescription',
'activateUserDiscountValue' => true,
'blockPurchaseOrderOnUsedBudget' => true,
'blockPurchaseOrderOnUsedBudgetMessage' => 'blockPurchaseOrderOnUsedBudgetMessage',
'budgetValue' => null,
'clientId' => 1,
'customerUserHandling' => true,
'customerUserId' => 0,
'customerUserSubtractDeliveryCosts' => true,
'minimumOrderValue' => 1,
'shopUserGroupId' => 123456789
]),
'UserBudgetValue' => 100
]; |
UserBudgetSettings | Datentyp |
---|---|
activateUserDiscount | Boolean |
activateUserDiscountDescription | String |
activateUserDiscountValue | Boolean |
blockPurchaseOrderOnUsedBudget | Boolean |
blockPurchaseOrderOnUsedBudgetMessage | String |
budgetValue | Float |
clientId | Integer |
customerUserHandling | Boolean |
customerUserId | Integer |
customerUserSubtractDeliveryCosts | Boolean |
minimumOrderValue | Float |
shopUserGroupId | Integer |
Die UserBudgetSettings werden in dem SSO-Daten-Array unter dem Key "UserBudgetSettings" als json_encoded String übergeben.