1. Go to this page and download the library: Download zero-to-prod/spapi library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
zero-to-prod / spapi example snippets
use Zerotoprod\Spapi\Lwa;
use Zerotoprod\SpapiLwa\SpapiLwa;
$response = SpapiLwa::from(
'amzn1.application-oa2-client.xxx', // client_id
'amzn1.oa2-cs.v1.xxx' // client_secret
)->refreshToken('refresh_token'); // The LWA refresh token. Get this value when the selling partner authorizes your application
$access_token = $response['response']['access_token'];
use Zerotoprod\Spapi\Lwa;
use Zerotoprod\SpapiLwa\SpapiLwa;
$response = SpapiLwa::from(
'amzn1.application-oa2-client.xxx', // client_id
'amzn1.oa2-cs.v1.xxx', // client_secret
)->clientCredentials('scope');
$access_token = $response['response']['access_token'];
use Zerotoprod\Spapi\Tokens;
use \Zerotoprod\SpapiRdt\SpapiRdt;
// Use the SpapiRdt API to get an RDT (Restricted Data Token)
$response = SpapiRdt::from(
'access_token', // Access token received from LWA
'amzn1.sp.solution.xxx' // Target Application
)
->orders()
->getOrder(
'123-1234567-1234567', // Amazon Order Id
['buyerInfo', 'shippingAddress'] // Restricted Data Elements to Access
);
$access_token = $response['response']['restrictedDataToken'];
use Zerotoprod\Spapi\Spapi;
$Spapi = Spapi::from($access_token);
use Zerotoprod\Spapi\Spapi;
// Access the orders api and get orders.
$Orders = Spapi::from($access_token)
->orders()
->getOrders(
['MarketplaceIds']
'CreatedAfter'
'CreatedBefore'
'LastUpdatedAfter'
'LastUpdatedBefore'
'[OrderStatuses']
['FulfillmentChannels']
['PaymentMethods']
'BuyerEmail'
'SellerOrderId'
MaxResultsPerPage
['EasyShipShipmentStatuses']
['ElectronicInvoiceStatuses']
'NextToken'
['AmazonOrderIds']
'ActualFulfillmentSupplySourceId'
'IsISPU'
'StoreChainStoreId'
'EarliestDeliveryDateBefore'
'EarliestDeliveryDateAfter'
'LatestDeliveryDateBefore'
'LatestDeliveryDateAfter'
['curl_options'],
);
// Access the orders.
echo $Orders['response']['payload']['Orders'][0]['AmazonOrderId']
// Access errors.
echo $Orders['response']['errors']['code'];
use Zerotoprod\Spapi\Spapi;
$Order = Spapi::from($access_token)
->orders()
->getOrder('111-5803802-7417822', ['curl_options']);
// Access the order.
echo $Order['response']['payload']['AmazonOrderId'];
// Access errors.
echo $Order['response']['errors']['code'];
use Zerotoprod\Spapi\Spapi;
$OrderBuyerInfo = Spapi::from($access_token)
->orders()
->getOrderBuyerInfo('111-5803802-7417822', ['curl_options']);
// Access the buyer info.
echo $OrderBuyerInfo['response']['payload']['BuyerName'];
// Access errors.
echo $OrderBuyerInfo['response']['errors']['code'];
use Zerotoprod\Spapi\Spapi;
$OrderBuyerInfo = Spapi::from($access_token)
->orders()
->getOrderAddress('111-5803802-7417822', ['curl_options']);
// Access the buyer info.
echo $OrderBuyerInfo['response']['payload']['BuyerName'];
// Access errors.
echo $OrderBuyerInfo['response']['errors']['code'];
use Zerotoprod\Spapi\Spapi;
$Order = Spapi::from($access_token)
->orders()
->getOrderItems('111-5803802-7417822', ['curl_options']);
// Access the order.
echo $Order['response']['payload']['OrderItems'][0]['SellerSKU'];
// Access errors.
echo $Order['response']['errors']['code'];
use Zerotoprod\SpapiLwa\SpapiLwa;
use Zerotoprod\Spapi\Spapi;
use \Zerotoprod\SpapiRdt\SpapiRdt;
$lwa = SpapiLwa::from('amzn1.application-oa2-client.xxx','amzn1.oa2-cs.v1.xxx')
->refreshToken('Atzr|xxx');
$rdt = SpapiRdt::from($lwa['response']['access_token'],'amzn1.sp.solution.xxx')
->orders()
->getOrder('123-1234567-1234567', ['buyerInfo', 'shippingAddress']);
$response = Spapi::from($rdt['response']['restrictedDataToken'])
->orders()
->getOrder('111-5803802-7417822');
$Order = $response['response']['payload'];
use Zerotoprod\Spapi\Support\Testing\SpapiFake;
use Zerotoprod\SpapiOrders\Support\Testing\SpapiOrdersResponseFactory;
// Mock the Spapi response
SpapiFake::fake(
SpapiOrdersResponseFactory::factory()
->set('response.payload', [
'AmazonOrderId' => '123-1234567-1234567'
])
->make()
);
// Use the API as normal
$Spapi = Spapi::from('access_token');
$response = $Spapi->orders()->getOrder('123-1234567-1234567');
use Zerotoprod\SpapiLwa\Support\Testing\SpapiLwaFake;
use Zerotoprod\SpapiLwa\Support\Testing\SpapiLwaResponseFactory;
use Zerotoprod\SpapiRdt\Support\Testing\SpapiRdtFake;
use Zerotoprod\SpapiRdt\Support\Testing\SpapiRdtResponseFactory;
use Zerotoprod\SpapiLwa\SpapiLwa;
use Zerotoprod\SpapiTokens\SpapiTokens;
use Zerotoprod\SpapiRdt\SpapiRdt;
// Mock LWA response
SpapiLwaFake::fake(
SpapiLwaResponseFactory::factory()
->asRefreshTokenResponse()
->make()
);
// Mock RDT response
SpapiRdtFake::fake(
SpapiRdtResponseFactory::factory()->make()
);
// Get access token (in production code)
$access_token = SpapiLwa::from('client_id', 'client_secret')
->refreshToken('refresh_token');
// Get RDT token (in production code)
$rdt = SpapiRdt::from(
SpapiTokens::from(
$access_token['response']['access_token'],
'app'
)
)->orders()->getOrder('order-id')['response']['restrictedDataToken'];
// Mock Spapi response
SpapiFake::fake(
SpapiOrdersResponseFactory::factory()
->set('response.payload', ['order_data'])
->make()
);
// Make the API call (in production code)
$Spapi = Spapi::from($rdt);
$Order = $Spapi->orders()->getOrder('order-id');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.