Skip to content
/ apaapi Public

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

License

Notifications You must be signed in to change notification settings

Jakiboy/apaapi

Repository files navigation

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

Basic (Search):

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

About

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

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Languages