jakiboy / apaapi
Easily integrate with the Amazon Affiliate Program using the lightweight APAAPI library for Amazon Product Advertising API v5 (With Credential-less)
Fund package maintenance!
Patreon
paypal.me/JIHADSINNAOUR
Installs: 2 311
Dependents: 1
Suggesters: 0
Security: 0
Stars: 44
Watchers: 6
Forks: 8
Open Issues: 0
Requires
- php: >=8.2
README
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();
- 4 - Use the Quickstart examples.
⚡ 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.
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).
use Apaapi\includes\Rating; // Init Rating $rating = new Rating('B00NLZUM36', 'com', 'test-21'); // Get Response $data = $rating->get(); // Array
Cart:
Get affiliate cart URL.
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
- Integrated design (PHP, TypeScript)
- apaapi.js React.js component (TypeScript)
Authors
- Jakiboy (Initial work)
- Contributors
- Any PR is welcome!
⭐ 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