Installation
Démarrage rapide
Créez un article, puis listez le stock en main :Authentification
Passez une clé d’API ou un jeton d’accès OAuth comme premier argument. Créez une clé d’API dans l’application sous Paramètres > Accès > Clés d’API. La clé agit au nom du membre qui l’a créée, et un appel exige à la fois l’autorisation du membre et l’une des portées de la clé. Pour un jeton OAuth qui expire, passez une fermeture (closure). Le client l’appelle avant chaque requête :
Si vous les omettez, le client et les fabriques sont trouvés avec php-http/discovery.
Faire des appels
Chaque domaine de l’API a une méthode, commecatalog() ou inventory(), et chaque opération a une méthode sur celle-ci. Les paramètres de chemin viennent d’abord, puis le corps, puis la chaîne de requête :
GET /catalog/items/{item}. Vous pouvez aussi appeler un chemin directement :
null, une exportation CSV son texte et un fichier la réponse PSR-7.
Pour vérifier votre propre code par rapport aux types, importez-les depuis Schemas dans un commentaire de documentation PHPStan :
Pagination
Une liste qui peut grandir renvoie une page à la fois. Chaque liste paginée a une deuxième méthode qui se termine parAll, qui suit les curseurs et produit chaque enregistrement :
$stockshift->paginate('/catalog/items') fait la même chose à partir d’un chemin. Pour paginer à la main, renvoyez le next_cursor de chaque page dans le paramètre de requête after jusqu’à ce qu’il soit null.
Erreurs
Un appel qui échoue lève uneApiException qui contient le corps des détails du problème RFC 9457. Basez votre logique sur errorCode, qui est stable. Le détail est rédigé pour des personnes et peut changer.
ApiException a aussi status, problem et response. Un appel qui ne reçoit aucune réponse, parce que le réseau a échoué, lève une ConnectionException. Les deux étendent StockShiftException.
Nouvelles tentatives et clés d’idempotence
Le client réessaie un429 après le délai indiqué dans Retry-After. Il le fait pour toutes les méthodes, parce que l’API n’a pas exécuté l’appel. Si Retry-After dépasse maxRetryAfter, il lève plutôt une exception.
Un 5xx ou une défaillance réseau est réessayé pour GET, PUT et DELETE, avec un court délai d’attente progressif. Un POST ou un PATCH n’est réessayé que si vous lui donnez une clé d’idempotence, pour qu’une nouvelle tentative ne puisse pas appliquer la modification deux fois :
Webhooks
Vérifiez l’en-têteStockShift-Signature avant de faire confiance à une livraison. Webhook::verify() a besoin du corps brut, exactement tel qu’il est arrivé :
tolerance, en secondes, pour changer ce délai. Les nouvelles tentatives d’un événement gardent son id : conservez-le et ignorez les événements déjà traités.
Chaque événement a un type PHPStan dans Schemas, comme InventoryStockAdjustedEvent. Pour tester votre propre récepteur, Webhook::sign() signe une charge utile de la même façon que StockShift.
Versions
La version majeure change quand l’API change d’une façon qui peut briser votre code, comme un champ retiré ou un nouveau paramètre obligatoire. Les nouveaux points de terminaison et champs arrivent dans des versions mineures.StockShift\Sdk\Generated\Api::VERSION contient la version de la référence de l’API à partir de laquelle le paquet a été construit.