Hallo Liebe Showare-Community,
ich arbeite an einem Import-Tool, dass eine CSV direkt über die API-Schnittstelle in den Shop einspeist.
Final möchte ich der Suche eine Kategorie Hierarchie übergeben (z.B. Rohrsysteme => Rohre).
Je nach Struktur sollen fehlende Kategorien automatisch angelegt und die passende Kategorie-ID als Antwort ausgegeben werden.
Dazu muss ich unter anderem die Produktkategorien finden bzw. neu anlegen. Aktuell liefert mir die API aber stets den vollständigen Kategoriebaum zurück - wo liegt das Problem?
function doShopwareApiRequest($uri, $method = 'post', $body = null)
{
// Ja, globals sind nicht optiomal. Der Zweck sollte aber klar sein
global $base, $client, $accessToken;
$uri = '/' . ltrim($uri, '/');
if ($body !== null && !is_string($body)) {
$body = json_encode($body);
// Malformed json data
if ($body === false) {
return null;
}
}
$request = new \GuzzleHttp\Psr7\Request(
$method,
$base . $uri,
[
'Authorization' => 'Bearer ' . $accessToken,
'Accept' => '*/*'
],
$body,
);
$response = $client->send($request);
$data = json_decode($response->getBody()->getContents(), true);
return $data;
}
Nach diesem Teil suche ich (erst mal)
$searchData = [
'filter' => [
[
'type' => 'contains',
'field' => 'name',
'value' => 'Rohr',
]
],
];
Schließlich wird die Anfrage gesendet:
doShopwareApiRequest('/api/v3/search/category', 'post', $searchData);