Bestellabruf über api/v1/order liefert keine Details (lineItems, deliveries, transactions usw.)

Hallo zusammen,

ich versuche gerade einen Abruf der vollständigen Bestellinformationen über die API.
Das mache ich z.B. über folgende URL: http://meinShop.de/api/v1/order/20c8afe1b97e4b9cb3ab389c22a81e9f/

Entsprechend bekomme ich auch ein JSON vom Shop geliefert, das sollte laut dem Model in Swagger so aussehen:

Was ich zurückerhalte, sieht allerdings so aus…

Wie man sieht, sind die ganzen Zusatzinformationen wie deliveries, transactions, lineItems usw. NULL.
Hat jemand eine Ahnung woran das liegen kann oder ist das aktuell einfach noch Stand der Dinge?

Ich weiß, dass ich z.B. über http://meinShop.de/api/v1/order/20c8afe1b97e4b9cb3ab389c22a81e9f/ lineItems  an die Informationen komme.
Allerdings macht es die Sache natürlich deutlich aufwändiger, daher würde ich gerne wissen ob es eine andere Lösung gibt.

Vielen Dank.

Beste Grüße
Simon

Moin,

gibt es hier mittlerweile Progress. Ich habe genau das jetzt auch vor mir. Grundsätzlich gibt es in das API ja noch den Parameter “associations” (https://docs.shopware.com/en/shopware-platform-dev-en/admin-api-guide/reading-entities?category=shopware-platform-dev-en/admin-api-guide#parameter-overview). Ich bekomme das aber bisher auch nicht hin, hiermit die Items an die Orders anzuhängen.

herzlichst

ch

Funktioniert genauso wie Serverseitig mit Criteria(), kleines Beispiel für den order endpoint.

const filter = {
                limit: 50,
                page: 1,
                sort: '-orderNumber',
                // filter
                filter: [
                    {
                        type: 'equals',
                        field: 'order.salesChannelId',
                        value: salesChannelId,
                    },
                    {
                        type: 'contains',
                        field: 'order.customFields',
                        value: 'blublub": "2020'
                    },
                    {
                        type: 'range',
                        field: 'order.createdAt',
                        parameters: {
                            gte: date,
                        }
                    }
                ],
                // assocs
                associations: {
                    lineItems: {},
                    addresses: {},
                    deliveries: {},
                    orderCustomer: {},
                    transactions: {associations: {paymentMethod: {}}},
                }
            };

Da das Backend API-Driven ist, kann man sich all diese Sachen auch im Backend anschauen, einfach die Entwicklertools öffnen > Netzwerk und dort die Request Parameter anschauen.

1 Like