API zum Lager anlegen?!

Hallo Leute,

ich bin recht neu im Thema Shopware, beschäftige mich jedoch fast täglich seit einem halben Jahr mit dieser wirklich sehr guten Software. 

Gegeben ist ein eigener Server mit Shopware 5 und ein externes Lager mit eigenem WaWi System. Jetzt möchte unser Lager eine “Shopware User API” und ich frage mich, wie ich diesen Zugang erstelle kann und welchen ich da genau brauche. Ich habe mir das Wiki zu API bereits durchgelesen, verstehe auch die Programmcodes da ich Informatik studiere, jedoch fehlt mir das ganze in Bezug zu Shopware. 

Unser Lager soll also den Lagerbestand ändern können und falls eine Bestellung eingeht diese einsehen und verabrieten können, da Sie sich um den Versand und Rücknahme kümmern. Sie benötigen also die Artikel, die Kundendaten usw. 

Sie sollen keine Artikel erstellen und nur den Bestand ändern dürfen. 

 

Ich hoffe ich bin hier richtig und habe im richtigen Unterforum gepostet und verstoße gegen keine Forenregeln. 

Ich habe das Gefühl ich sehe den Wald vor lauter Bäumen nicht mehr :frowning: :D 

 

Danke schon mal vorab, 

liebe Grüße Mario

Um den Lagerbestand zu ändern benutzt du den Artikel-Endpunkt und für die Bestellungen den Bestell-Endpunkt.

Also erst mal zwei verschiedene Sachen.

Für den Bestand machst du ein Update auf die Artikel (instock).

Für die Bestellungen ein GET auf die OrdersApi. Da kommt ein JSON zurück. Hol die Daten doch einmal ab und kuck was du kriegst. Einfach mal ne Bestellung abrufen. Du kannst auch nur Bestellungen mit Shippment-Status „Offen“ abholen und dann aus der Wawi ein Update auf den Status fahren wenn die Bestellung raus ist.

Batch-Modi sind vorhanden.

1 „Gefällt mir“

Und es reicht nicht den entsprechenden Mitarbeitern Zugang zum Backend mit eingeschränkten Admin rechten zu geben? (nur Lesen, außer bei Artikel)

1 „Gefällt mir“

Mit PHP: Schritt 1 Offene Bestellungen abholen, entweder diese Datei auf dem Server oder Local/xampp aufrufen. Die api.php , der ApiClient für Shopware geistert irgendwo im Netz.

require_once("api.php");
$client = new ApiClient(
//URL des Shopware Rest Servers
    'http://www.deinedomain.de/api',
    //Benutzername
    'admin',
    //API-Key des Benutzers
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
);


/*Hole alle Bestellungen mit Bestellstatus Offen = 0 */
$filter = array(
    array(
        'property' => 'shopId',
        'expression' => '=',
        'value' => 1
    ),
    array(
        'property' => 'orderStatus',
        'expression' => '=',
        'value' => 0
    )
);

$params = array(
  'useNumberAsId' => true,
  "filter" => $filter
);

$allOrders = $client->get('orders',$params);
$allOrders = json_decode($allOrders);

 Das Ergebnisarray kannst du dann gemütlich weiterverarbeiten. Wir erstellen daraus z.B eine XML welches dann unser WaWi frisst.

1 „Gefällt mir“

Hallo, 

danke für die schnellen Antworten!! 

Ich habe weiter gegoogelt und festgestellt, dass die Anleitung für SW4 auch noch in SW5 wirkt. 

http://community.shopware.com/Shopware-4-API_detail_861.html

Ich habe also einfach mal zum testen einen neuen Benutzer angelegt und den API Zugang anktiviert. 

Getestet mit  http://ihreShopurl.de/api/articles   und es funktionierte. Reicht dieser Zugang?? Laut den Eigenschaften die da angegeben sind müsste alles passen! Die frage ist nur, ob es auch Aufwärtskompatibel ist. 

Unser Logistikunternehmen fragte ja auch gezielt nach einem „Shopware User API“, müsste doch dann genau das sein, oder? 

Die APIs mit Artikel- und Bestell-Endpunkt hatte ich mir angesehen, jedoch habe ich den Eindruck, dass die REST Schnittstelle diese ebenfalls umfasst. 

Den Umweg über die api.php finde ich aktuell doch etwas unschön. Wäre kein Problem, jedoch frage ich mich wieso, da man APIs direkt beim Benutzer bekommen kann…

Ist das soweit auch in Ordnung?

Liebe grüße! 

Naja alles was das Logistikzentrum braucht ist ja die Adresse. Die Liefer- und Rechnungsanschriften werden ja über die OrderAPI geliefert.

Eine Schnittstelle ist ja eigentlich dazu da, dass sie mit Änderungen an der Software und Datenbankstruktur transparent die gleichen Ergebnisse über die gleichen Funktionen liefert - „Aufwärtskompatibilität“ ist somit Teil des Konzepts.

Einen Benutzer-Endpunkt gibt es jedoch auch - wie gesagt, glaube ich nicht dass dieser genutzt werden muss.

Die APIs mit Artikel- und Bestell-Endpunkt hatte ich mir angesehen, jedoch habe ich den Eindruck, dass die REST Schnittstelle diese ebenfalls umfasst. 

Naja alle diese Endpunkte sind ja Teil der Shopware RESTAPI. Jeder erfüllt einfach nur einen speziellen Zweck.

Den Umweg über die api.php finde ich aktuell doch etwas unschön. Wäre kein Problem, jedoch frage ich mich wieso, da man APIs direkt beim Benutzer bekommen kann…

Naja du brauchst ja bei deinem Programm die Logik um die API anzusprechen. Das hier war ja nur ein Beispiel von brettvormkopp in PHP damit du reinkommst. Kannst ja dann ein Shopware-Modul in der WaWi mittels Java, C# oder was auch immer schreiben.

 

Ja okay, dann kann die REST API quasi alles und die einzelnen APIs eben nur die einzelnen Teile um das ganze zu spezialisieren. Ok. 

Ich vertraue unserem Partner aber mal alles an und gebe ihnen einfach die REST API und fertig. Die sind ja auch Vertraglich verpflichtet… bla bla bla

 

Danke jedenfalls für all die Hilfe hier! 

Ich melde mich zurück, wenn alles funktioniert :wink: Danke :slight_smile: