REST API - Client PHP

Halllo,

ich habe ja schon viel gelesen und oftmals wird auf die Doku verlinkt. Aber ein Example für ein PHP Client wie man die API anspricht habe ich da nicht gefunden. Wo habt Ihr (die das mit PHP machen) dennn her?

Habe nur das hier gefunden: Shopware 5 REST API einbinden – The Cake Shop aber keine Doku dazu wo und wie welche Variablen übergeben werden müssen. (funktionieren tut das allerdings ^^) Aber würde gern wissen woher er diese Infos hat

Liebe grüße

Hm, welche Variablen übergeben werden ist eigentlich hier beschrieben:

https://developers.shopware.com/developers-guide/rest-api/ 

Je nachdem ob du etwas auslesen, anlegen oder updaten willst musst du die Methode wählen … GET, POST, PUT etc…

Die erwähnte API Klasse wurde hier im Forum auch schon mal erwähnt. Die kann man nutzen, muss man aber nicht - sie macht dem Umgang mit der API nur etwas leichter. 

Guten Morgen,

mh okay… in dem Tutorial steht ja " In unsere api.php packen wir folgenden Code (ich empfehle euch den Code immer aktuell von HIER zu laden) " klingt für mich so als ob da mal so eine Klasse stand?

Naja bis auf die Methoden sehe ich da aber nichts, wie ich welche Daten wo übergeben muss.

Moin,

die oben erwähnte Klasse “ApiClient” kannst du dir selber anlegen. Wie du sie benennst ist völiig egal. Die einen nenne sie SW_ApiClient.php die anderen api.php … völlig Wurst. Du kannst sie auch BoxenLuder.php nennen, spielt alles keine Rolle.

Ist diese Klasse erstellen, dann könnte so ein Test so aussehen:

 Ausgabe der Kategorien
$swCategories = $SW->get('categories' );

print_r( $swCategories );

Anhand der Doku bekommst du eine Übersicht welche Parameter für welche Aktion übergeben werden. Es würde hier den Rahmen sprengen, wenn ich jetzt zu allen Methode ein Beispiel hier schreiben würde. Daher noch ein Beispiel wie man zum Beispiel Artikel über die API enlegt (ein ganz einfraches).
 

 'Name',
  'description' => 'kurze Beschreibung',
  'descriptionLong' => 'lange Beschreibung',
  'taxId' => 1,
  'supplier' => 'Hersteller',
  'priceGroupId' => 1,
  'active' => 1, 
  'categories' => array( array('id' => '12345') ), // ID der Kategorie
  'keywords' => 'Meta Tag',
  'metaTitle' => 'Meta Title',
  'mainDetail' => array( 
    'number' => 'Ordernummer', 
    'inStock' => 1, // Menge
    'minPurchase' => 0, // min Bestellmenge
    'maxPurchase' => 1, // max Bestellmenge
    'supplierNumber' => 'Herstellernummer',
    'active' => 1,
    'prices' => array( array( 'customerGroupKey' => 'EK', 'price' => 29.99 ) ),
  ),
);

// POST -> Anlegen von Artikel
$SW->post('articles', $new );

Wie und wo du was übergeben musst, hängt davon ab was du machen willst. Willst du etwas auslesen oder etwas einspielen (also anlegen). Bleeiben wir beim letzten Beispiel. Hiezu gibt es die Doku => REST API - Article Resource

Überall wo “required” steht, handelt es sich um Pflichtfelder. Ob die Doku allerdings akltuell ist und ob sie regelmäßig gepflegt wird, kann ich allerdings nicht sagen. Aber man kann sich ja einen Test-Shop aufbauen die dort die API testen. Die Scripte sind nicht groß und können selber angepasst werden.

PS: Du kannst die API auch mit der Software “Postman” testen. Dann geht das auch ohne der Klasse und du erkennst die Zusammenhänge besser.