Admin API - includes und associations [6.2]

Hallo zusammen,

ich versuche gerade mir über die Admin API und folgender Route Informationen zu Bestellungen zu ziehen um etwas mehr mit der API vertrauter zu werden.

POST /api/v1/search/order/
{
	"ids": ["24d8791fe20c448b8d6081e98ea50291"],
	"includes": {
        "order": ["orderNumber", "createdAt"],
        "order_line_item": ["label"]
    },
	"associations": {
			"lineItems" : {		
			}
	}
}

Allerdings erhalte ich als Response nur die includes aus der „order“ wieder, keinerlei Informationen zu den order_line_items, die ich ja per association hinzugefügt habe. Lasse ich die Associations drin, entferne jedoch die includes, erhalte ich die volle Response (mit line_items).

Ich habe versucht mich an der Dokumentation(hier als Beispiel mit Product) zu orientieren. Allerdings fehlen da die Associations  Undecided

Übersehe ich etwas??

Ich versuche gerade das selbe Problem zu lösen - hast du inzwischen eine Lösung gefunden?

 

Viele Grüße und Danke

Matthias

Nein leider nicht. Hatte dann noch etwas experimentiert, aber ohne Erfolg. Habe es dann liegen lassen.

[[EDIT]]

Ich habe gerade selbst durch ausprobieren zufällig eine Lösung gefunden: Vielleicht hilft es ja dem nächsten, der sich hier verirrt :-)

Also die Dokumentation der API ist ja bisher leider nicht wirklich umfangreich :-/

Ich arbeite gerade an einem Export für unseren Kunden und würde gerne alle Bestellungen der Letzten X Stunden Abfrage. Zu den Bestellungen benötige ich die bestellten Produkte (EAN), die jeweilige Anzahl sowie den Preis.

Dies kann man über die folgendenden Parameter mit nur einer Query erledigen:

$orderResponse = $client->request('POST', 'v1/search/order', [
    'headers' => $headers,
    'json' => [
        'sort' => [
            [
                'field' => 'createdAt',
                'order' => 'DESC'
            ]
        ],
        'includes' => [
            'order' => ['id', 'orderNumber', 'createdAt', 'lineItems'],
            'order_line_item' => ['position', 'quantity', 'unitPrice', 'productId', 'product'],
            'product' => ['ean'],
        ],
        'associations' => [
            'lineItems' => [
                'associations' => [
                    'product' => []
                ]
            ],
        ]
    ]
]);

 

Thumb-Up

Dachte das hätte ich auch so probiert. Unter welcher Version läuft das?

Ich probiere es bei Gelegenheit mal aus.

Die Version ist 6.2.0

@ruettenm schrieb:

[[EDIT]]

Ich habe gerade selbst durch ausprobieren zufällig eine Lösung gefunden: Vielleicht hilft es ja dem nächsten, der sich hier verirrt :-)

Also die Dokumentation der API ist ja bisher leider nicht wirklich umfangreich :-/

Ich arbeite gerade an einem Export für unseren Kunden und würde gerne alle Bestellungen der Letzten X Stunden Abfrage. Zu den Bestellungen benötige ich die bestellten Produkte (EAN), die jeweilige Anzahl sowie den Preis.

Dies kann man über die folgendenden Parameter mit nur einer Query erledigen:

$orderResponse = $client->request(‘POST’, ‘v1/search/order’, [
‘headers’ => $headers,
‘json’ => [
‘sort’ => [
[
‘field’ => ‘createdAt’,
‘order’ => ‘DESC’
]
],
‘includes’ => [
‘order’ => [‘id’, ‘orderNumber’, ‘createdAt’, ‘lineItems’],
‘order_line_item’ => [‘position’, ‘quantity’, ‘unitPrice’, ‘productId’, ‘product’],
‘product’ => [‘ean’],
],
‘associations’ => [
‘lineItems’ => [
‘associations’ => [
‘product’ =>
]
],
]
]
]);

 

Hat bei mir mit API v3 und Shopware 6.4.3.1 leider nicht funktioniert.

Bekomme bei der LineItems Relationship keine Felder:

Hat das schon jemand mit der aktuellen Version gelöst?

Ich habe das gleiches Problem, dass Relationships haben keine Felder auser type und id. @nzkev93, hast du vielleicht eine Lösung gefunden?

@amdl Man muss den Header „Accept“ auf „application/json“ einstellen. Dann kriegst du die plain JSON Rückgabe ohne die „Querverweise“ und mit allen Daten.

2 Likes

Hey mdcore,

falls das noch relevant ist, so würde es funktionieren. Du schließt vorher „lineItems“ aus, deshalb geht das nicht.

{
    "ids": [ "24d8791fe20c448b8d6081e98ea50291" ],
    "includes": {
        "order": [ "orderNumber", "createdAt", "lineItems" ],
        "order_line_item": [ "label", "quantity", "payload" ]
    },
    "associations": {
        "lineItems": {}
    }
}
1 Like