APAAPI

⚡ Easily integrate with the Amazon Affiliate Program using the lightweight APAAPI library for Amazon Product Advertising API v5 (With Credential-less).


APAAPI

Amazon Product Advertising API PHP

Apaapi is an unofficial PHP library for accessing the Amazon Product Advertising API (PAAPI) V5.0, without relying on the Amazon SDK. It is lightweight (~250 KB) and simplifies interaction with the Amazon PAAPI V5.0, making it easier to integrate Amazon product data into PHP applications.

– Amazon Affiliate With PHP –

💡 Features

  • Request Builder (Easier way to fetch API data).
  • Credential-less (No credentials required using product scraper).
  • Search Filters (Using builder).
  • Geotargeting (Automatically redirect links based on the visitor’s region).
  • Cart Generator (Add to cart URL).
  • Rating (Customer reviews).
  • Response Normalizer (Normalize response data structure).
  • Response Error Handling (Including semantic errors with HTTP status code 200).
  • Keyword Converter (ASIN, ISBN, EAN, Node, Root).
  • Caching System (Basic built-in cache to reduce API calls).

⚡ Installing

Using Composer:

composer require jakiboy/apaapi

Without Composer:

  • 1 - Download repository ZIP (Latest version).
  • 2 - Extract ZIP (apaapi-main).
  • 3 - Include this lines beelow (apaapi self-autoloader).
include('apaapi-main/src/Autoloader.php');
\apaapi\Autoloader::init();

⚡ Requirements

  • PHP ^8.2 (For older versions, please use previous version)
  • **cURL Stream (file)**

⚡ Getting Started

Variables:

  • “_KEY_” : From your Amazon Associates (your locale), More.
  • “_SECRET_” : From your Amazon Associates (your locale), More.
  • “_TAG_” : From your Amazon Associates (your locale), More.
  • “_LOCALE_” : TLD of the target marketplace to which you are sending requests (com/fr/co.jp), Get TLD.
  • “_KEYWORDS_” : What you are looking for (Products), More.
  • “_ASIN_” : Accepts (ISBN), Amazon Standard Identification Number (your locale), More.
  • “_NODE_” : Browse Node ID (your locale), More.

Quickstart

Recommended using Apaapi Builder or Apaapi Product (Scraped data) if you dont have API credentials.

Product

Builder:


/**
 * @see Use Composer, 
 * Or include Apaapi Autoloader Here.
 */

use Apaapi\includes\Builder;

// (1) Init request builder
$builder = new Builder('_KEY_', '_SECRET_', '_TAG_', '_LOCALE_');

// (2) Get response (Search)
$data = $builder->searchOne('Sony Xperia 1 VI'); // Normalized array

[!Note]
See full builder usage at /wiki/Builder and use case /examples

Product:


/**
 * @see Use Composer, 
 * Or include Apaapi Autoloader Here.
 */

use Apaapi\includes\Product;

// (1) Init product
$product = new Product('B00NLZUM36', 'com', 'test-21');

// (2) Get response
$data = $product->get(); // Array

[!Note]
See full product usage at /wiki/Product

Rating:

Get customer reviews of product as average rating and count (Scraped data).

Rating


use Apaapi\includes\Rating;

// Init Rating
$rating = new Rating('B00NLZUM36', 'com', 'test-21');

// Get Response
$data = $rating->get(); // Array

Cart:

Get affiliate cart URL.

Cart


use Apaapi\lib\Cart;

// Init Cart
$cart = new Cart();
$cart->setLocale('com')->setPartnerTag('test-21');

// Get Response
$data = $cart->set(['B00NLZUM36' => 3]); // String

⚡ Advanced

Extensible search method.


use Apaapi\operations\SearchItems;
use Apaapi\lib\Request;
use Apaapi\lib\Response;

// (1) Set operation
$operation = new SearchItems();
$operation->setPartnerTag('_TAG_')->setKeywords('_KEYWORDS_');

// (2) Prapere request
$request = new Request('_KEY_', '_SECRET_');
$request->setLocale('_LOCALE_')->setPayload($operation);

// (3) Get response
$response = new Response($request);
$data = $response->get(); // Array

[!Note]
See all available TLDs used by setLocale() at /wiki/TLDs

Basic (Get):

Extensible get method.


use Apaapi\operations\GetItems;
use Apaapi\lib\Request;
use Apaapi\lib\Response;

// Set operation
$operation = new GetItems();
$operation->setPartnerTag('_TAG_')->setItemIds(['_ASIN_']);

// Prapere request
$request = new Request('_KEY_', '_SECRET_');
$request->setLocale('_LOCALE_')->setPayload($operation);

// Get response
$response = new Response($request);
$data = $response->get(); // Array

Operations:

All available operations.


use Apaapi\operations\GetItems;
use Apaapi\operations\SearchItems;
use Apaapi\operations\GetVariations;
use Apaapi\operations\GetBrowseNodes;

// (1) GetItems
$operation = new GetItems();
$operation->setPartnerTag('_TAG_');
$operation->setItemIds(['_ASIN_']); // Array

// (2) SearchItems
$operation = new SearchItems();
$operation->setPartnerTag('_TAG_');
$operation->setKeywords('_KEYWORDS_'); // String

// (3) GetVariations
$operation = new GetVariations();
$operation->setPartnerTag('_TAG_');
$operation->setASIN('_ASIN_'); // String

// (4) GetBrowseNodes
$operation = new GetBrowseNodes();
$operation->setPartnerTag('_TAG_');
$operation->setBrowseNodeIds(['_NODE_']); // Array

Resources:

Optimize response time by setting only the needed resources.


use Apaapi\operations\SearchItems;

// Set Operation
$operation = new SearchItems();
$operation->setPartnerTag('_TAG_')->setKeywords('_KEYWORDS_');

// Set Resources (3)
$operation->setResources(['Images.Primary.Small', 'ItemInfo.Title', 'Offers.Listings.Price']);

[!Note]
See all available resources used by setResources() at /wiki/Resources

🔧 Incoming

Authors

⭐ Support:

Skip the coffee! If you like the project, a star would mean a lot.

[!IMPORTANT]
The Amazon logo included in top of this page refers only to the Amazon Product Advertising API