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.

Dabei muss ENCODED_KEY_VALUE_PAIRS mit den verschlüsselten Daten ersetzt werden. Sofern die Daten erfolgreich verarbeitet wurden, wird der Benutzer am System angemeldet und kann die Print Lounge regulär nutzen.
 

Die übermittelten Daten müssen mittels der eingestellten Verschlüsselungsverfahren (unter Verwaltung → Shops → SSO-Schnittstelle → Verschlüsselungsverfahren) verschlüsselt sein. 

Folgende Daten können übermittelt werden:
BezeichnungTyp / WertBemerkungVersion
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_name50 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_countrycodeLä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_url200 Zeichen (Utf8)URL für Logo (Bild) einer Benutzergruppe
user_groups_binary_description50 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
54: Nein (Standard)



customer_user_aussendienst

200 Zeichen (Utf8)



customer_funktion

200 Zeichen (Utf8)



sprache

de: Deutsch (Standard)
en: Englisch

(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) 
58: B - Supervisor
59: C - Verwaltung
60: X - Interessenten



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
pers: Eine Personalisierungsseite
article_detail: Detailseite für Artikel
reorder: Nachbestellung 



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
54: Nein (Standard)



continue_shopping

Zeigt im Warenkorb den Button "Weiter einkaufen".

0: Deaktivieren
1: Aktivieren
2: zum SSO-Ãœbergabepunkt

Achtung: Beim Aktivieren wird die Variable "skip_cart" ignoriert.



pers_dataDient der Ãœbermittlung von Personalisierungsdaten (siehe unten)

testZum Aktivieren des Testmodus kann der Parameter „test = true“ übergeben werden. Anstelle der Weiterleitung findet eine Bildschirmausgabe der übergebenen Daten statt.

lang
  • Language ID: Zu finden unter: Shops → Bearbeiten → Spracheinstellungen
  • de_DE oder en_EN, wenn die Option "Mehrsprachiges Bestellportal" unter Verwaltung → Einstellung → Allgemein nicht aktiviert ist.


dynamic_listsListeneinträge über die SSO-Schnittstelle als JSON-String übergeben. (Mehr dazu erfahren Sie unter dem Punkt "Dynamische Listeneinträge")

view_settings

Typ/Wert: Array

  • cookie_notice = 1: Anzeigen 0: Ausblenden
  • color_bar = 1: Anzeigen 0: Ausblenden
  • top_header = 1: Anzeigen 0: Ausblenden
  • header = 1: Anzeigen 0: Ausblenden
  • nav = 1: Anzeigen 0: Ausblenden
  • footer = 1: Anzeigen 0: Ausblenden
  • iframe_autoheight = 1: aktivieren 0: deaktivieren


Hinweis: OCI muss aktiviert sein und die Einstellung "Verwendung in IFrame?" muss deaktiviert sein. Nur kompatibel mit dem Premiumtemplate.



email_address_for_cost_releaseE-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_url200 ZeichenWird hier eine URL angegeben, so wird auf der Finish ein Button angezeigt, der zu dieser URL führt
settingsArray

Dieses Array kann alle Benutzer-Settings als key-value-Paar enthalten, welche gesetzt werden sollen.


redirect_url200 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:

BezeichnungTyp / WertBemerkungVersion
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:


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:

  1. „pers_data“ wird als Array übergeben. Hierbei wird als Key der Variablenname aus der Druckvorlage übergeben und als Value ein gewünschter Wert.
  2. „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.



Beispiel zum Verschlüsseln mit PHP
$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
$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
];
UserBudgetSettingsDatentyp
activateUserDiscountBoolean
activateUserDiscountDescriptionString
activateUserDiscountValueBoolean
blockPurchaseOrderOnUsedBudgetBoolean
blockPurchaseOrderOnUsedBudgetMessageString
budgetValueFloat
clientIdInteger
customerUserHandlingBoolean
customerUserIdInteger
customerUserSubtractDeliveryCostsBoolean
minimumOrderValueFloat
shopUserGroupIdInteger

Die UserBudgetSettings werden in dem SSO-Daten-Array unter dem Key "UserBudgetSettings" als json_encoded String übergeben.