SSO-Schnittstelle Version 2
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.
Die URL lautet wie folgt:
http[s]://[www.]shopname.print-server.net/sso.php?h=ENCODED_KEY_VALUE_PAIRS
Für shopname wird der Shopname angegeben der in der Administration der Print Lounge (Verwaltung → Kunden → bearbeiten) eingestellt wurde. Bitte konfigurieren Sie in der Administration Ihres Shops die SSO-Schnittstelle (Verwaltung → Kunden → bearbeiten → SSO-Schnittstelle) und verwenden Sie die dort 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 | ||
dest_id | Die ID des Eintrags (Warengruppe oder Artikel) | ||
quantity | 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 ü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, 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:
Hinweis
Die Erweiterung unterstützt ausschließlich eindimensionale Listen, weitere Felder werden von der Listenfunktion nicht beeinflusst.
JSON-String-Beispiel:
{ "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 zur angegebenen Zielseite weitergeleitet. Zusätzlich kann man Personalisierungsdaten übergeben. Dazu wird der Paramater „pers_data“ angegeben. Die Datenübergabe kann auf zwei Wegen erfolgen:
- „pers_data“ wird als Array übergeben. Hierbei wird als Key der Variablenname aus der Druckvorlage übergeben und als Value ein gewünschter Wert.
- „pers_data“ wird als Integer übergeben. Hierbei handelt es sich um die „Id“ eines für die Vorlage gespeicherten Datensatzes. Wird ein Datensatz erfolgreich ermittelt, werden diese Daten automatisch geladen.
$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.
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.