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.

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": {}
    }
}