andrewyj / amazon-sp-api
Amazon selling partner sdk
Installs: 23
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/andrewyj/amazon-sp-api
Requires
- php: >=7.3
- ext-json: *
- guzzlehttp/guzzle: ^6.3|^7.0
README
SP-API is the next-generation API functionality suite for sellers and their agents to sell their products on the Amazon marketplace efficiently. Amazon Marketplace Web Services (Amazon MWS) APIs preceded SP-APIs and have been utilized extensively for over ten years. Amazon states in their documentation that the SP-API is the future and that SP APIs will receive any new updates and enhancements. However, one can expect a transition period from MWS to SP-API while the new system is stabilized and offers parity with the existing MWS APIs.
For more information visit: https://github.com/amzn/selling-partner-api-docs
Installation
composer require andrewyj/amazon-sp-api
Basic Usage
1. Define auth info
$auth = [ 'refresh_token' => '', // Aztr|... 'client_id' => '', // App ID from Seller Central, amzn1.sellerapps.app.cfbfac4a-...... 'client_secret' => '', // The corresponding Client Secret 'region' => \AmazonSellingPartnerAPI\Client::REGION_NORTH_AMERICA, 'access_key' => '', // Access Key of AWS IAM User, for example AKIAABCDJKEHFJDS 'secret_key' => '', // Secret Key of AWS IAM User 'role_arn' => '', // AWS IAM Role ARN for example: arn:aws:iam::123456789:role/Your-Role-Name ];
2. Use refresh_token to exchange access_token
$oAuth = new \AmazonSellingPartnerAPI\OAuth($auth['client_id'], $auth['client_secret']); $auth['access_token'] = $oAuth->getAccessToken($auth['refresh_token'])->access_token;
3. Select a signature version(v4)
$sign = new \AmazonSellingPartnerAPI\Signature\V4Signature();
4. Fetch role info
$assumedRole = new \AmazonSellingPartnerAPI\AssumeRole($auth['region'], $auth['access_key'], $auth['secret_key'], $sign); $credentials = $assumedRole->assume($auth['role_arn']); $auth['access_key'] = $credentials['AccessKeyId']; $auth['secret_key'] = $credentials['SecretAccessKey']; $auth['session_token'] = $credentials['SessionToken'];
5. Make a request
$client = new \AmazonSellingPartnerAPI\Client($sign); $client->setAuth($auth); var_dump($client->get('/orders/v0/orders/XXX-XXXXXX-XXXXXXX'));
Module usage
1. Define auth info
2. Select a module
$sign = new \AmazonSellingPartnerAPI\Signature\V4Signature(); $cache = new Cache(); $order = new \AmazonSellingPartnerAPI\Module\Order($auth, $cache, $sign);
Cache()
are used to cache role credentials and access_token.It must haveget()
andset()
functions. if you don't have one. create an adapter.
3. Make a request
# route param var_dump($order->getOrder('XXX-XXXXXX-XXXXXXX')->send()); # query param var_dump($order->getOrders()->withQuery([ "CreatedAfter" => "2020-04-13T06:28:08Z", "MarketplaceIds" => [ "XXXXXX", ] ])->send());