Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arifulhb/amazon-pa-api50
Amazon Product Advertising API v5.0 for JavaScript and NodeJs
https://github.com/arifulhb/amazon-pa-api50
affiliate affiliates amazon amazon-product-advertising-api nodejs npm npm-package
Last synced: about 1 month ago
JSON representation
Amazon Product Advertising API v5.0 for JavaScript and NodeJs
- Host: GitHub
- URL: https://github.com/arifulhb/amazon-pa-api50
- Owner: arifulhb
- License: mit
- Created: 2019-10-25T21:18:39.000Z (about 5 years ago)
- Default Branch: develop
- Last Pushed: 2021-02-16T17:09:44.000Z (almost 4 years ago)
- Last Synced: 2024-10-28T17:19:31.414Z (about 2 months ago)
- Topics: affiliate, affiliates, amazon, amazon-product-advertising-api, nodejs, npm, npm-package
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/amazon-pa-api50
- Size: 126 KB
- Stars: 29
- Watchers: 5
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
Awesome Lists containing this project
README
# Amazon Product Advertising _(Affiliate)_ API v5 for NodeJS
## amazon-pa-api50 _v0.2.0_
This Nodejs package use Amazon's [NodeJS SDK](https://webservices.amazon.com/paapi5/documentation/quick-start/using-sdk.html#nodejs) to make the development simpler, in less time and use the power of NPM.Learn more about [Product Advertising API v5](https://webservices.amazon.com/paapi5/documentation/).
## Installation
### Github
```
git clone [email protected]:arifulhb/amazon-pa-api50.git
```
### NPM
```
npm install amazon-pa-api50 --save
```### Connect with Amazon Product Affiliate API.
Import the `Config` module and `Api` client.
```
const Api = require('amazon-pa-api50')
const Config = require('amazon-pa-api50/lib/config')
```**Optional loading of modules**
All of these are optional. Depends on what you want to search or fetch.
```
const resources = require('amazon-pa-api50/lib/options').Resources // Optional for different resources
const condition = require('amazon-pa-api50/lib/options').Condition // for product condition
const country = require('amazon-pa-api50/lib/options').Country // Optional for different country
const searchIndex = require('amazon-pa-api50/lib/options').SearchIndex // for Search Index
```
**Create `Config` instance**
```
// By Default all resources and will connect to United States
let myConfig = new Config();// if you want other country then united states.
let myConfig = new Config(undefined, country.UnitedKingdom);// if you want custom resources.
// this custom `resources.Offers` will be set default to all of your search. You can customize the resources in your search specific function also.
let myConfig = new Config(resources.Offers);// if you want custom resources with different country
let myConfig = new Config(resources.ItemInfo, country.Canada);
```**Configure the Config class**
```
/**
* Add your Credentials Here
*/
myConfig.accessKey = ''
myConfig.secretKey = ''
myConfig.partnerTag = ''
```After adding the credentials in `myConfig`, Create **`Api`** instance
```
const api = new Api(myConfig)
```
If all of your credentials are valid, you must be able to serach in Amazon now.
###```
console.log(' ===== find by Item ids =====')
let resourceList = resources.getItemInfo
resourceList = resourceList
.concat(resources.getImagesPrimary)api.getItemById(['B079JD7F7G'], {
parameters: resourceList,
condition: condition.Any
}).then((response) => {
console.log('data', response.data)
}, (error) => {
console.log('Error: ', error)
})
```
## Usage**`api`** have four main functions to fetch data from amazon. Each function has 2 parameters and return `promise`.
- `api.getItemById(['asin1', 'asin2'], {})`
- `api.search('keyword', {})`
- `api.getVariations('asin1', {})`
- `api.getBrowseNodes(['nodeid1', 'nodeid2'], {})`Inside `then`, block of the promise, `response` object contain `response.data` and `response.response` as full faw response from Amazon.
Sample tutorial for how to use this library is given in `./demo/index.js` file.
### Get a single or array of Products via ASIN
##### getItemById(['ASIN1', 'ASIN2'], params)
```
console.log(' ===== find by Item ids =====')
let resourceList = parameters.getItemInfo
resourceList = resourceList
.concat(parameters.getImagesPrimary)api.getItemById(['B079JD7F7G'], {
parameters: resourceList,
condition: condition.Any
}).then((response) => {
console.log('data', response.data)
}, (error) => {
console.log('Error: ', error)
})
```### Search Products
##### search('keyword', params)```
console.log(' ===== search result =====')
let resourceList = parameters.getItemInfo
resourceList = resourceList
.concat(parameters.getImagesPrimary)api.search("Cowin E8", {
parameters: resourceList,
searchIndex: searchIndex.Electronics
}).then((response) => {
console.log('data', response.data)
}, (error) => {
console.log('Error: ', error)
})
```
Inside `then`, `response` object contain `response.data` and `response.response` as full faw response from Amazon.### Get Product Variations
##### getVariations('asin1', params)
```
console.log(' ===== search result =====')
const resourceList = parameters.getVariationSummaryapi.getVariations("B079JD7F7G", {
parameters: resourceList,
condition: condition.Any
}).then((response) => {
console.log('data', response.data)
}, (error) => {
console.log('Error: ', error)
})
```### Get Browser Node
##### getBrowseNodes(['asin1'], params)
```
console.log(' ===== getBrowserNode =====')
const resourceList = parameters.getBrowserNodesapi.getBrowseNodes(['284507'], {
parameters: resourceList
}).then((response) => {
console.log('data', response.data)
}, (error) => {
console.log('Error: ', error)
})
```
# Contributing
We'd love to have your helping hand on **amazon-pa-api50**! We are preparing the contributing guideline and todo list. Meanwhile, please install, test and use this to find bugs or any creative ideas.# License
**amazon-pa-api50** is an open source library [licensed as MIT](./licence.md).