product_get

Methode zum Abrufen eines Produktes.

Datenfelder

Informationen zu den Datenfelder eines Produktes finden Sie unter: Daten-Typ "Produkt" sowie unter: Daten-Typ "Produkt-Preis".

Schema

Parameter - Array

$Params Pflicht Beschreibung Beispiel
[fields] optional

String/Array (faster). Liste der Fields, die returned werden sollen. Wird nichts angegeben wird "*" angenommen, d.h. alle im Model hinterlegten Felder.

Es sollten nur die Felder angegeben werden, die auch wirklich benötigt werden. Speziell bei Multi-Table-Models werden dann auch nur die Tables im SELECT dazu geJOINed, die benötigt werden.

Als String: "pcode,name,desc_short".

Als Array:
  [0] = "pcode"
 [1] = "name"
 [2] = "desc_short"

[filter][<field>] optional

String. Pro Field kann hier ein Wert angegeben werden, der dann im WHERE-Statement aufgenommen wird. Im Falle eines virtuellen Fields, wird das in "drvd_select" hinterlegte SQL in das WHERE-Statement mit aufgenommen.

Es wird immer mit "<field> = '<auto-escaped Value>' " gesucht. Mehrere Filter-Felder werden mit AND verknüpft. Die übergebenen Werte werden automatisch escaped (Schutz vor SQL-Injection).

Ist ein Wert null, so wird mit "...<field> IS NULL" im WHERE gesucht.

Hiermit können einfache, SQL-Injection-sichere Filterkriterien realisiert werden. Für komplexere WHERE-Statements bitte [xwhere] benutzen!

MySQL-wildcard-Filter "%" können hier aktuell leider nicht verwendet werden, da auch bei Text-Feldern mit "=" geprüft wird und nicht mit SQL LIKE.

['pcode'] ="ABC"
[filter][<field>][search] optional String. Pro Field kann hier ein Suchbegriff angegeben werden, der Field-Typ-spezifisch (INT, FLOAT, TEXT, DATE, DATETIME) interpretiert wird.
Wird diese Option genutzt kann natürlich nicht zuvor genannte [filter][<field>]-Abfrage für dieses Feld genutzt werden.

Text: "my_* || ecms_* || *.class.*"
Integer: ">10; <100"
Float: Integer: ">0.5; <=9.999"
Date: "1.12.2012 - 24.12.2012"
DateTime: "> 15.12.2012 12:00"
 

Return - ​Array

Array-Key Typ Beschreibung
[status] boolean

TRUE: Wenn die Datenabfrage durchgeführt werden konnte.

FALSE: Wenn es bei der Ausführung einen Fehler gab.

[msg][<n>][type|text] string

Message-Stack

Ein optionales Array, um Message-Strings zur Ausgabe in der GUI und Message-Codes zurückzugeben. Vor allem bei Ausführungsfehlern ( [status]=FALSE) sollte hier etwas zurückgegeben werden.

Numerisches Array (mit n von 0 bis N). Es können prinzipiell beliebig viele Messages zurückgegeben werden.
Pro Message können jeweils optional [type] und [text] zurückgegeben werden.

[ type] ist typischerweise einer der folgenden Werte:

  • "ERROR" - Schwerer Ausführungsfehler.
  • "WARNING" - Warnung bei Ausführung.
  • "INFO" - Zusätzliche (Debug) Meldungen.
  • "OK" - Ausführung OK.
[data][<fields>] mixed

Die eigentlichen Daten des angeforderten Datensatzes in einem assoziativen Array.

Beispiele

Nachfolgend ein paar Beispiele zur Nutzung der API Ressource product_get.

a) Produkt mit bestimmter Artikelnummer

Es soll das Produkt mit der Artikelnummer "TS00001-XS" zurückgeliefert werden.

  1.  
  2. /*
  3.  * Beispielaufruf des API-URL-Calls für die zu übergebenen Parameter
  4.  * - zur Filterung muss die Artikelnummer in pcode-Filter übergeben werden
  5.  */
  6. <your_api_url>&resource=product_getList&params[filter][pcode]='TS00001-XS'

Das Result der Abfrage ist ein JSON String.

  1.  
  2. /*
  3.  * Beispiel-JSON für das Result der Abfrage im Erfolgsfall
  4.  */
  5. {
  6.   "status" : true,
  7.   "msg" : null,
  8.   "data" : {
  9.        "pcode" : "T00001-XS", // Artikelnummer
  10.        "name" : "T-Shirt mit Logo", // Name des Produktes
  11.        "description" : "Dieses T-Shirt passt perfekt zu Dir", // Beschreibungstext des Produktes, kann HTML enthalten
  12.        "desc_short" : "100% Baumwolle - Perfekte Passform", // Kurzbeschreibungstext des Produktes, kann HTML enthalten
  13.        "price" : 19.95, // normaler Brutto-Preis
  14.        "discount" : 14.97, // Brutto Discount-Preis
  15.        "ecs_price_brutto" : 14.97, // dynamisches Feld: aktuell gültiger Preis, mit Discount-Preis gefüllt, wenn dieser gültig ist, ansonsten normaler Brutto-Preis
  16.        "ecs_uvp_brutto" : 19.95, // dynamisches Feld: normaler Brutto-Preis des Produktes, ist nur gefüllt wenn ein Discount-Preis gesetzt wurde. Ansonsten "false"
  17.        "ecs_discount_pct" : 25.00, // dynamisches Feld: Discount-Prozente, nur gefüllt wenn ein Discount-Preis gesetzt wurde.
  18.        "ean" : 1129837473843, // EAN/GTIN des Produktes
  19.        "files_img" : {
  20.            0 : {
  21.                "mb_label" : "productbild_t00001-xs", // Mediabase-Label des Produktbildes
  22.                "mb_title" : "Super T-Shirt mit Logo", // Titel des Bildes in der Mediabase, kann z.B. als ALT-Attribut verwendet werden
  23.                "mb_caption" : null, // möglicher Untertitel zu einem Bild
  24.                "mb_path" : "\path\to\image", // Pfad zum Bild
  25.                [...] // weitere Mediabase-Daten
  26.            },
  27.             <n> : {...} // Daten zu weiteren Bildern
  28.        },
  29.        {...} // alle weiteren Felder aus dem Daten-Typ "Produkt" sowie "Produkt-Preis" (siehe oben)
  30.   }
  31. }