@azlib/integrations
v0.2.1
Published
Framework-agnostic marketplace integration clients for **eBay** and **Amazon**.
Downloads
503
Readme
@azlib/integrations
Framework-agnostic marketplace integration clients for eBay and Amazon.
- eBay: Comprehensive modern REST API family (Buy, Commerce, Developer, Sell) with automatic OAuth2 client-credentials management.
- Amazon: Product Advertising API (PA-API v5) with native AWS SigV4 signing, product scouting, deal discovery, store/brand querying, item lookups, and variation matrix navigation.
Install
npm install @azlib/integrationsAmazon Shopping (PA-API v5) Usage
Initialize Client
import { createAmazonShoppingClient } from "@azlib/integrations/amazon";
const amazon = createAmazonShoppingClient({
accessKey: process.env.AMAZON_ACCESS_KEY!,
secretKey: process.env.AMAZON_SECRET_KEY!,
partnerTag: process.env.AMAZON_PARTNER_TAG!, // Associate Tag
marketplace: "US", // "US" | "UK" | "DE" | "JP" | ...
});Or read from environment variables (AMAZON_ACCESS_KEY, AMAZON_SECRET_KEY, AMAZON_PARTNER_TAG, AMAZON_MARKETPLACE):
import { createAmazonShoppingClientFromEnv } from "@azlib/integrations/amazon";
const amazon = createAmazonShoppingClientFromEnv();1. Search Products & Refinements
const searchResults = await amazon.searchItems({
keywords: "mechanical keyboard",
itemCount: 10,
minPrice: 5000, // in lowest currency unit (cents)
maxPrice: 15000,
condition: "New",
sortBy: "AvgCustomerReviews",
});
for (const item of searchResults.SearchResult?.Items ?? []) {
console.log(item.ASIN, item.ItemInfo?.Title?.DisplayValue);
console.log("Price:", item.Offers?.Listings?.[0]?.Price?.DisplayAmount);
}2. Scout Deals & Discounts
const deals = await amazon.searchDeals({
keywords: "noise cancelling headphones",
minSavingPercent: 20, // 20%+ discount
primeOnly: true,
minReviewsRating: 4,
sortBy: "Price:LowToHigh",
});3. Scout Seller Stores & Brands
const storeProducts = await amazon.searchSellerProducts({
brand: "Anker",
merchant: "All",
keywords: "charger",
itemCount: 10,
});4. Item Details & Variations
// Lookup single or batch ASINs
const item = await amazon.getItem("B08N5WRWNW");
// Query variations (sizes, colors, models)
const variations = await amazon.getVariations({
asin: "B08N5WRWNW",
variationCount: 10,
});eBay Usage
import { createEbayClient } from "@azlib/integrations/ebay";
const ebay = createEbayClient({
appId: process.env.EBAY_APP_ID!,
certId: process.env.EBAY_CERT_ID!,
environment: "PRODUCTION",
marketplaceId: "EBAY_US",
});
const results = await ebay.buy.browse.search({
q: "thinkpad x1",
limit: "20",
filter: [{ field: "itemLocationCountry", value: "US" }],
});Or read credentials from the host environment:
import { createEbayClientFromEnv } from "@azlib/integrations/ebay";
const ebay = createEbayClientFromEnv();Subpath Exports
| Import | Contents |
| :--- | :--- |
| @azlib/integrations | Primary marketplace factories (createEbayClient, createAmazonShoppingClient, etc.) |
| @azlib/integrations/ebay | Full eBay surface (Browse, Deal, Feed, Marketing, Offer, Order, Sell, Commerce, OAuth) |
| @azlib/integrations/amazon | Full Amazon PA-API v5 surface (Search, Deals, Seller Products, Items, Variations, SigV4) |
