Admin-API call via PHP (Symfony)

Hallo zusammen,

nach dem ich selber aktuell für eine Lösung auf der Suche war im Forum und sonst so habe ich mich dazu entschlossen meine aktuell Lösung zu posten.

Es ist noch nicht alles richtig ausgereift aber es funktioniert unter der aktuellen Shopware 6 Version.

Ich habe meine Lösung im PHP umgesetzt:

Token:

$response = $this->httpClient->request(‚POST‘,

        'https://DEINE-URL/api/oauth/token', [
         'body' => [
                'client_id' => 'administration',
                'grant_type' => 'password',
                'scopes' => 'read',
                'username' => 'XXXXX',
                'password' => 'XXXXXX'
         ]
        ]
    );

Alternativ könnt ihr auch im Backen eine Integration anlegen und diese hier verwenden.

     $data = $response->getContent();
     $token = json_decode($data);
     $stringToken = $token->{"access_token"};

Nun zum eigentlichen Call:

$getOrder = $this->httpClient->request(‚POST‘,

        'https://DEINE-URL/api/v3/search/order', [
            'auth_bearer' => $stringToken,
            'headers' => ['Accept' => 'application/json'],
            'json' => [
                'limit' => '1',
                'total-count-mode' => '1',
                'includes' => [
                    'order' => ['id', 'orderNumber', 'orderDate', 'amountTotal', 'stateMachineState',
                                         'orderCustomer', 'addresses', 'lineItems']
                ],
                'associations' => [
                    'addresses' => [],
                    'lineItems' => []
               ]
            ]
        ]
      );

$orderData = $getOrder->getContent();
$item = json_decode($orderData);
$test = $item->data;

foreach($test as $val)
{
var_dump($val);
//var_dump($val->orderNumber);
}

Ich bin damit an das Zwischenziel gekommen, dass ich die gewünschten Daten erhalte.
Es ist sicher nicht perfekt… aber evtl. hilft es dem ein oder anderen weiter und spart euch so ein wenig Zeit und Nerven :smiley:

Für Anregungen bin ich jederzeit offen :smiley: ansonsten Happy Coding euch