So, da die Doku extrem löchrig ist und alles nur oberflächlich abfackelt hab ich nun nach vielem try&error und Suchmaschinen-Hilfe eine Lösung gefunden.
Es gibt auch einfach kein working example was einfach mal alles viel einfach und verständlicher machen würde.
Ziel war es die letzten Bestellungen via API zu erhalten. Mein erster Ansatz war mittels Filter ab einer bestimmten Bestellnummer die „neuen“ zu bekommen.
Geht einfach nicht. Es wirft nur Exceptions, wird ein Bug sein.
Der andere Ansatz war dann eine umgedrehte Sortierung mit einem Limit. Da alles via Cronjob läuft ist das kein Problem.
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use kamermans\OAuth2\GrantType\ClientCredentials;
use kamermans\OAuth2\OAuth2Middleware;
$reauth_client = new Client([
'base_uri' => 'https://domain.tld/api/oauth/token',
]);
$reauth_config = [
'client_id' => 'CLIENT_ID_==>_INTEGRATION',
'client_secret' => 'CLIENT_SECRET_==>_INTEGRATION',
];
$grant_type = new ClientCredentials($reauth_client, $reauth_config);
$oauth = new OAuth2Middleware($grant_type);
$stack = HandlerStack::create();
$stack->push($oauth);
$client = new Client([
'base_uri' => 'https://domain.tld/api/v3/',
'handler' => $stack,
'auth' => 'oauth',
'headers' => [
'accept' => 'application/json',
]
]);
// immer die letzten 5 holen + Zahlart und Status
$res = $client->post('search/order', [
'json' => [
'limit' => 5,
'sort' => '-orderNumber',
'associations'=> [
'lineItems' => [],
'transactions' => [
'associations' => [
'paymentMethod' => []
]
]
]
]
]);
$results = json_decode($res->getBody(), true)['data'];
echo '';
print_r($results);
echo '';
Das print_r wirft dann folgendes aus:
Array
(
[0] => Array
(
[orderNumber] => 10247
[currencyId] => b7d2554b0ce847cd82f3ac9bd1c0dfca
[currencyFactor] => 1
[salesChannelId] => a749551212824b61b2421e43c60d9d19
[billingAddressId] => 9af4e57f149e411c8a9a4a5f0c822fe6
[orderDateTime] => 2020-10-08T12:01:32.060+00:00
[orderDate] => 2020-10-08T00:00:00.000+00:00
[price] => Array
(
[netPrice] => 40,39
[totalPrice] => 46,86
[calculatedTaxes] => Array
(
[0] => Array
(
[tax] => 6,47
[taxRate] => 16
[price] => 46,869999996538
[extensions] => Array
(
)
[apiAlias] => cart_tax_calculated
)
)
[taxRules] => Array
(
[0] => Array
(
[taxRate] => 16
[percentage] => 100
[extensions] => Array
(
)
[apiAlias] => cart_tax_rule
)
)
[positionPrice] => 41,96
[taxStatus] => gross
[extensions] => Array
(
)
[apiAlias] => cart_price
)
[amountTotal] => 46,86
[amountNet] => 40,39
[positionPrice] => 41,96
[taxStatus] => gross
[shippingCosts] => Array
.
.
Ggf hilft das jmd anderem. Entweder als Lösung oder Ansatz.