LaravelPackages.net
Acme Inc.
Toggle sidebar
daygarcia/amazon-sp-api-laravel

This package has made for laravel 8 and php 8. It's based on clousale/amazon-sp-api-php package with a little adjusts because the original repo doesnt receive any updates since a while. All credits reserved to clousale.

10
0
About daygarcia/amazon-sp-api-laravel

daygarcia/amazon-sp-api-laravel is a Laravel package for this package has made for laravel 8 and php 8. it's based on clousale/amazon-sp-api-php package with a little adjusts because the original repo doesnt receive any updates since a while. all credits reserved to clousale.. It currently has 0 GitHub stars and 10 downloads on Packagist. Install it with composer require daygarcia/amazon-sp-api-laravel. Discover more Laravel packages by daygarcia or browse all Laravel packages to compare alternatives.

Last updated

This repository is originally from clousale. Original repo URL

I just have made this package because there is somethings to be needed in original and its not updated since a while. Anyway, I just made some adjusts and the credits are all to Clousale.

Amazon Selling Partner API PHP

This is an API Binding in PHP for the new Amazon Selling Partner API.

This library is based on the output of swagger-codegen with the OpenAPI files provided by Amazon and has been modified by the contributors.

The purpose of this package is to have an easy way of getting started with the Amazon Selling Partner API through a simple composer package.

Requirements

  • PHP >= 7.3
  • cURL Extension
  • JSON Extension
  • MBString Extension

Installation

Just require this package via composer:

composer require daygarcia/amazon-sp-api-php

Detailed Documentation

You can find detailed documentation for this PHP Library in the docs/Api directory (Please note: Namespaces and other classes could have been changed)

You can find general information about the Amazon Selling Partner API on the official Amazon Developer Website.

Examples

These are simple examples, just to show you how to get started calling the API.

IAM Role

For when you entered the IAM Role ARN in your developer profile:

<?php

require_once './vendor/autoload.php';

$options = [
    'refresh_token' => '', // Aztr|...
    'client_id' => '', // App ID from Seller Central, amzn1.sellerapps.app.cfbfac4a-......
    'client_secret' => '', // The corresponding Client Secret
    'region' => \DayGarcia\AmazonSellingPartnerAPI\SellingPartnerRegion::$EUROPE, // or NORTH_AMERICA / FAR_EAST
    'access_key' => '', // Access Key of AWS IAM User, for example AKIAABCDJKEHFJDS
    'secret_key' => '', // Secret Key of AWS IAM User
    'endpoint' => \DayGarcia\AmazonSellingPartnerAPI\SellingPartnerEndpoint::$EUROPE, // or NORTH_AMERICA / FAR_EAST
    'role_arn' => '', // AWS IAM Role ARN for example: arn:aws:iam::123456789:role/Your-Role-Name
];
$accessToken = \DayGarcia\AmazonSellingPartnerAPI\SellingPartnerOAuth::getAccessTokenFromRefreshToken(
    $options['refresh_token'],
    $options['client_id'],
    $options['client_secret']
);
$assumedRole = \DayGarcia\AmazonSellingPartnerAPI\AssumeRole::assume(
    $options['region'],
    $options['access_key'],
    $options['secret_key'],
    $options['role_arn'],
);
$config = \DayGarcia\AmazonSellingPartnerAPI\Configuration::getDefaultConfiguration();
$config->setHost($options['endpoint']);
$config->setAccessToken($accessToken);
$config->setAccessKey($assumedRole->getAccessKeyId());
$config->setSecretKey($assumedRole->getSecretAccessKey());
$config->setRegion($options['region']);
$config->setSecurityToken($assumedRole->getSessionToken());
$apiInstance = new \DayGarcia\AmazonSellingPartnerAPI\Api\CatalogApi($config);
$marketplace_id = 'A1PA6795UKMFR9';
$asin = 'B0002ZFTJA';

$result = $apiInstance->getCatalogItem($marketplace_id, $asin);
echo $result->getPayload()->getAttributeSets()[0]->getTitle(); // Never Gonna Give You Up [Vinyl Single]

IAM User

When you entered the User ARN instead of the Role ARN, please use this example:

<?php

require_once './vendor/autoload.php';

$options = [
    'refresh_token' => '', // Aztr|...
    'client_id' => '', // App ID from Seller Central, amzn1.sellerapps.app.cfbfac4a-......
    'client_secret' => '', // The corresponding Client Secret
    'region' => \DayGarcia\AmazonSellingPartnerAPI\SellingPartnerRegion::$EUROPE, // or NORTH_AMERICA / FAR_EAST
    'access_key' => '', // Access Key of AWS IAM User, for example AKIAABCDJKEHFJDS
    'secret_key' => '', // Secret Key of AWS IAM User
    'endpoint' => \DayGarcia\AmazonSellingPartnerAPI\SellingPartnerEndpoint::$EUROPE, // or NORTH_AMERICA / FAR_EAST
];
$accessToken = \DayGarcia\AmazonSellingPartnerAPI\SellingPartnerOAuth::getAccessTokenFromRefreshToken(
    $options['refresh_token'],
    $options['client_id'],
    $options['client_secret']
);
$config = \DayGarcia\AmazonSellingPartnerAPI\Configuration::getDefaultConfiguration();
$config->setHost($options['endpoint']);
$config->setAccessToken($accessToken);
$config->setAccessKey($options['access_key']);
$config->setSecretKey($options['secret_key']);
$config->setRegion($options['region']);
$apiInstance = new \DayGarcia\AmazonSellingPartnerAPI\Api\CatalogApi($config);
$marketplace_id = 'A1PA6795UKMFR9';
$asin = 'B0002ZFTJA';

$result = $apiInstance->getCatalogItem($marketplace_id, $asin);
echo $result->getPayload()->getAttributeSets()[0]->getTitle(); // Never Gonna Give You Up [Vinyl Single]

ToDo

  • Implement Tests
  • Improve documentation

Feature Requests & Pull Requests are very welcome!

Notes

If you are looking for a complete Repricing & FBA-Reimbursement solution, you might want to consider giving clousale.com a shot.

Thanks

Thanks go out to everybody who added PRs and worked on this package.

Star History Chart