Artikel anlegen via Plugin (Shopware 5)

Hallo,

ich programmiere ein Shopware 5 Plugin, um dynamisch Artikel anzulegen und in den Warenkorb zu legen (per Frontend-Controller-Aufruf). Ich bräuchte einen Tipp, wie man das am besten macht:

  • per REST-Api
  • per SQL
  • … oder anders?

Zu der REST-API finde ich Doku, aber mir ist nicht klar wie man die Authentifizierung macht - muss das Plugin sich dann gegenüber Shopware trotzdem per Token authentifizieren? Und Artikel anlegen geht per REST, aber ich finde keine AddToCart - Funktion.

Per SQL könnte ich natürlich in die DB schreiben, aber leider finde ich keine Doku zu dem Datenbankschema - vermutlich gibt es da doch bereits Model-Klassen und eine interne API?

Viele Grüße

Sebastian

um dynamisch Artikel anzulegen und in den Warenkorb zu legen

Für mich stellt sich schon die Frage wem der Warenkorb zugeordner wird. Ist das ein bestimmter User? Wann soll das passieren? Wird das über Cronjob gelöscht?  Artikel über die API anlegen ist ja kein Thema. Artikel in den Warenkorb legen geht so nicht über die API, es sei denn man erweitert seine API-Klasse. Vielleicht etwas mit CURL und

/checkout/ajaxAddArticleCart/cart?sAdd=SW10178&sQuantity=1

so als Beispiel.

 

leider finde ich keine Doku zu dem Datenbankschema

Wozu auch? Mit jedem Datenbank-Tool kann man sich das Schema ansehen => phpMyAdmin, HeidiSQL etc.

1 Like

Warenkorb: Der aktuelle User, also so wie die ajaxAddArticleCart - Url.

Artikel über API anlegen: was bedeutet denn kein Thema, das war ja meine Frage, wie geht das im Kontext eines Plugins am besten? Sorry, ich bin Neuling in Shopware.

Datenbankschema: Ok, ist das bei Shopware so? Da fehlt mir eine Erläuterung, was die einzelnen Felder sind, nur die Spalten/Tabellen-Namen sind etwas wenig. Ich kann mir nicht vorstellen, dass es dazu keine Doku gibt…

Sorry, ich bin Neuling in Shopware.

Das sind natürlich nicht die besten Voraussetzungen um die oben erwähnte Anforderung umzusetzen. Also intensiv sich mit Shopware befassen oder (wenn es zu viel wird) jemanden beauftragen. Die REST API ist schon gut beschrieben => REST API - Basics 

 

Wie man Artikel über die REST API angelgt ist alles hier beschrieben:

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

 

Das geht wohl auch für Bestellungen (ich selber noch nie getestet):

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

 

Ich würde die obigen Fragen gerne noch mal allgemein in die Runde stellen, vor allem:

Wie benutzt man grundsätzlich die REST-API im Kontext eines Plugins? Muss man dann z. B. auch einen Token für die Authentifizierung registrieren und die Aufrufe per CURL machen, oder gibt es da einen wesentlich eleganteren Weg (vermutlich)?

Oder empfiehlt es sich, im Kontext eines Plugins direkt in die DB zuschreiben, und falls ja, gibt es da Modell-Klassen für (vielleicht sogar mit Doku?), oder geht man direkt mit SQL in die Datenbank (gibt es in diesem Fall Doku, was die einzelnen DB-Felder bedeuten)?

Es geht konkret um das Anlegen eines Artikels (die REST-API zum Thema Artikel ist mir bekannt).

 

Ein Blick in den Shopware-Artikel-API-Sourcecode zeigt, dass dort die Article-Klasse (https://github.com/shopware/shopware/blob/5.6/engine/Shopware/Controllers/Api/Articles.php) die Hauptarbeit macht und sich offenbar als Grundlage für die Funktion, einen Artikel im Kontext eines Plugins anzulegen, anbietet - falls noch mal jemand über diesen Thread stolpert :wink: