PHP
Repositório de exemplos de Orders com RDT
Requisitos
- PHP 7+ (https://www.php.net/manual)
- Composer (https://getcomposer.org)
- SDK (https://github.com/jlevers/selling-partner-api)
Atenção
Este caso de uso em PHP utiliza uma biblioteca não oficial da Amazon para os desenvolvedores.
1. Introdução
Aqui iremos configurar o ambiente PHP que será utilizado.
- Crie uma pasta chamada "sp-api-php"
- Entre em sua pasta pelo "Terminal"
- Em seu terminal, digite
composer init
- Digite
composer require jlevers/selling-partner-api
2. Crie seu arquivo index.php
index.php
Vamos criar seu arquivo de configuração com as credenciais da Amazon para conectar na SP-API e fazer chamadas.
$config = new SellingPartnerApi\Configuration([
"lwaClientId" => "amzn1.application-oa2-client.7a...",
"lwaClientSecret" => "53088f253559d77294ed1...",
"lwaRefreshToken" => "Atzr|IwEBIG86XyQIu5fy...",
"awsAccessKeyId" => "AKIAU...",
"awsSecretAccessKey" => "ElWOB...",
"endpoint" => SellingPartnerApi\Endpoint::NA, // or another endpoint from lib/Endpoints.php
"roleArn" => "arn:aws:iam::452196458992:role/sp-api"
]);
$api = new \SellingPartnerApi\Api\SellersApi($config);
try {
$result = $api->getMarketplaceParticipations();
echo json_encode($result->getPayload());
} catch (Exception $e) {
echo 'Exception when calling OrdersApi->getOrderBuyerInfo: ', $e->getMessage(), PHP_EOL;
}
3. Abra seu terminal.
Inicie seu servidor HTTP - para isso use o seguinte comando no seu terminal:
php -S localhost:8000
4. Agora vá para seu browser.
Acesse o endereço que criamos.
http://localhost:8000
5. O resultado
Você deve ter o seguinte retorno.
Este é o retorno do endpoint MarketPlaceParticipation, que indica se você esta conectado.
[
{
"marketplace": {
"id": "A2Q3Y263D00KWC",
"name": "Amazon.com.br",
"countryCode": "BR",
"defaultCurrencyCode": "BRL",
"defaultLanguageCode": "pt_BR",
"domainName": "www.amazon.com.br"
},
"participation": {
"isParticipating": true,
"hasSuspendedListings": false
}
}
]
Crie seu arquivo getOrder.php
getOrder.php
Ele é usado para listar as orders.
$apiInstance = new SellingPartnerApi\Api\OrdersApi($config);
$order_id = '701-3595199-9255162';
try {
$result = $apiInstance->getOrder($order_id);
print_r(json_encode($result->getPayload()));
} catch (Exception $e) {
echo 'Exception when calling OrdersApi->getOrder: ', $e->getMessage(), PHP_EOL;
}
Você deve ter um resultado assim.
{
"AmazonOrderId": "701-3595075-9260262",
"PurchaseDate": "2021-06-23T14:33:40Z",
"LastUpdateDate": "2021-06-24T12:47:19Z",
"OrderStatus": "Canceled",
"FulfillmentChannel": "MFN",
"SalesChannel": "Amazon.com.br",
"ShipServiceLevel": "Std Dom 9",
"OrderTotal": {
"CurrencyCode": "BRL",
"Amount": "1.10"
},
"NumberOfItemsShipped": 0,
"NumberOfItemsUnshipped": 0,
"PaymentMethodDetails": [
"Other"
],
"MarketplaceId": "A2Q3Y263D00KWC",
"ShipmentServiceLevelCategory": "Standard",
"OrderType": "StandardOrder",
"EarliestShipDate": "2021-06-24T03:00:00Z",
"LatestShipDate": "2021-06-26T02:59:59Z",
"IsBusinessOrder": false,
"IsPrime": false,
"IsPremiumOrder": false,
"IsGlobalExpressEnabled": false,
"IsReplacementOrder": false,
"IsSoldByAB": false,
"IsISPU": false
}
Crie seu arquivo getOrders.php
getOrders.php
Ele é usado para listar as orders.
$apiInstance = new SellingPartnerApi\Api\OrdersApi($config);
$marketplace_ids = array('A2Q3Y263D00KWC'); // Brasil
$created_after = '2020-01-01';
// As opções abaixo não são obrigatórias:
$created_before = null;
$last_updated_after = null;
$last_updated_before = null;
$order_statuses = null;
$fulfillment_channels = null;
$payment_methods = null;
$buyer_email = null;
$seller_order_id = null;
$max_results_per_page = null;
$easy_ship_shipment_statuses = null;
$next_token = null;
$amazon_order_ids = null;
try {
$result = $apiInstance->getOrders(
$marketplace_ids,
$created_after,
$created_before,
$last_updated_after,
$last_updated_before,
$order_statuses,
$fulfillment_channels,
$payment_methods,
$buyer_email,
$seller_order_id,
$max_results_per_page,
$easy_ship_shipment_statuses,
$next_token,
$amazon_order_ids
);
echo '<pre>';
print_r(json_encode($result->getPayload());
echo '</pre>';
} catch (Exception $e) {
echo 'Exception when calling OrdersApi->getOrders: ', $e->getMessage(), PHP_EOL;
}
Crie seu arquivo getOrderAddress.php
getOrderAddress.php
Ele é usado para listar as orders.
$apiInstance = new SellingPartnerApi\Api\OrdersApi($config);
$order_id = '702-6568359-1455403'; // string | 3-7-7 format.
try {
$result = $apiInstance->getOrderAddress($order_id);
echo json_encode($result->getPayload());
} catch (Exception $e) {
echo 'Exception when calling OrdersApi->getOrderAddress: ', $e->getMessage(), PHP_EOL;
}
Você deve ter a seguinte resposta
{
"AmazonOrderId": "702-6568359-1455403",
"ShippingAddress": {
"Name": "",
"City": "Santo André",
"StateOrRegion": "SP",
"PostalCode": "09220030",
"CountryCode": "BR"
}
}
Crie seu arquivo getOrderBuyerInfo.php
getOrderBuyerInfo.php
Ele é usado para listar as orders.
$apiInstance = new SellingPartnerApi\Api\OrdersApi($config);
$order_id = '712-6568398-1455403'; // string | 3-7-7 format.
try {
$result = $apiInstance->getOrderBuyerInfo($order_id);
echo '<pre>';
echo json_encode($result->getPayload());
echo '</pre>';
} catch (Exception $e) {
echo 'Exception when calling OrdersApi->getOrderBuyerInfo: ', $e->getMessage(), PHP_EOL;
}
Você deve ter a seguinte resposta
{
"AmazonOrderId": "712-6568398-1455403",
"BuyerEmail": "[email protected]",
"BuyerCounty": "...",
"BuyerTaxInfo": {
"TaxClassifications": [
{
"Name": "CPF",
"Value": "00000000000"
}
]
}
}
Crie seu arquivo getOrderItems.php
getOrderItems.php
Ele é usado para listar as orders.
$apiInstance = new SellingPartnerApi\Api\OrdersApi($config);
$order_id = '702-6568359-1455403'; // string | 3-7-7 format.
$next_token = null;
try {
$result = $apiInstance->getOrderItems($order_id, $next_token);
echo '<pre>';
echo json_encode($result->getPayload());
echo '</pre>';
} catch (Exception $e) {
echo 'Exception when calling OrdersApi->getOrderItems: ', $e->getMessage(), PHP_EOL;
}
Você deve ter o seguinte retorno.
{
"OrderItems": [
{
"ASIN": "B07JM9487B",
"SellerSKU": "BANANA_PUFF_AMZ_COOL",
"OrderItemId": "28091074915490",
"Title": "Puff Infantil Banana Grande Unissex em Corino",
"QuantityOrdered": 1,
"QuantityShipped": 1,
"ProductInfo": {
"NumberOfItems": 1
},
"ItemPrice": {
"CurrencyCode": "BRL",
"Amount": "0.99"
},
"ItemTax": {
"CurrencyCode": "BRL",
"Amount": "0.00"
},
"PromotionDiscount": {
"CurrencyCode": "BRL",
"Amount": "0.00"
},
"PromotionDiscountTax": {
"CurrencyCode": "BRL",
"Amount": "0.00"
},
"IsGift": true,
"ConditionId": "New",
"ConditionSubtypeId": "New",
"IsTransparency": false
}
],
"AmazonOrderId": "702-6568359-1455403"
}
Crie seu arquivo getOrderItemsBuyerInfo.php
getOrderItemsBuyerInfo.php
Ele é usado para listar as orders.
$apiInstance = new SellingPartnerApi\Api\OrdersApi($config);
$order_id = '702-1471409-2856348'; // string | An orderId is an Amazon-defined order identifier, in 3-7-7 format.
$next_token = null; // 'next_token_example'; // string | A string token returned in the response of your previous request.
try {
$result = $apiInstance->getOrderItemsBuyerInfo($order_id, $next_token);
print_r(json_encode($result->getPayload()));
} catch (Exception $e) {
echo 'Exception when calling OrdersApi->getOrderItemsBuyerInfo: ', $e->getMessage(), PHP_EOL;
}
SQS de notificações
Para conhecer sobre as notificações e SQS, verifique a documentação completa.
Updated over 2 years ago