LaravelPackages.net
Acme Inc.
Toggle sidebar
revolution/laravel-amazon-product-api

Amazon Product Advertising API for Laravel

52.904
80
4.10.0
About revolution/laravel-amazon-product-api

revolution/laravel-amazon-product-api is a Laravel package for amazon product advertising api for laravel. It currently has 80 GitHub stars and 52.904 downloads on Packagist (latest version 4.10.0). Install it with composer require revolution/laravel-amazon-product-api. Discover more Laravel packages by revolution or browse all Laravel packages to compare alternatives.

Last updated

Amazon Product Advertising API for Laravel

Build Status Maintainability Test Coverage

End of active support (2020/06)

My API account has been banned, so my active support is over. However, PR is accepted.

Requirements

  • PHP >= 8.2
  • Laravel >= 11.0

Versioning

  • Basic : semver
  • Drop old PHP or Laravel version : +0.1. composer should handle it well.
  • Support only latest major version (master branch), but you can PR to old branches.

Installation

Composer

composer require revolution/laravel-amazon-product-api

Publishing config (Optional)

php artisan vendor:publish --tag=amazon-product-config

.env

AMAZON_API_KEY=
AMAZON_API_SECRET_KEY=
AMAZON_ASSOCIATE_TAG=
AMAZON_HOST=webservices.amazon.com
AMAZON_REGION=us-east-1

Country lists

https://webservices.amazon.com/paapi5/documentation/common-request-parameters.html

Note

  • API Rate limit https://webservices.amazon.com/paapi5/documentation/troubleshooting/api-rates.html

Usage

<?php
use Revolution\Amazon\ProductAdvertising\Facades\AmazonProduct;

# string $category, string $keyword = null, int $page = 1
$response = AmazonProduct::search(category: 'All', keyword: 'amazon' , page: 1);
dd($response);
# returns normal array

# string $browse Browse node
$response = AmazonProduct::browse(node: '1');

# string $asin ASIN
$response = AmazonProduct::item(asin: 'ASIN1');

# array $asin ASIN
$response = AmazonProduct::items(asin: ['ASIN1', 'ASIN2']);

# setIdType: support only item() and items()
$response = AmazonProduct::setIdType(idType: 'EAN')->item(asin: 'EAN');
# reset to ASIN
AmazonProduct::setIdType(idType: 'ASIN');
# PA-APIv5 not support EAN?

browse() is not contains detail data.

use Revolution\Amazon\ProductAdvertising\Facades\AmazonProduct;

$response = AmazonProduct::browse(node: '1');
$nodes = data_get($response, 'BrowseNodesResult');
$items = data_get($nodes, 'BrowseNodes.TopSellers.TopSeller');
$asins = data_get($items, '*.ASIN');
$results = AmazonProduct::items(asin: $asins);
# PA-APIv5 not support TopSeller?

Probably, you need try-catch or Laravel's rescue() helper.

use Revolution\Amazon\ProductAdvertising\Facades\AmazonProduct;

try {
    $response = AmazonProduct::browse(node: '1');
} catch(ApiException $e) {

}

$response = rescue(function () use ($browse_id) {
                return AmazonProduct::browse(node: $browse_id);
            }, []);

LICENSE

MIT
Copyright kawax

Star History Chart