A collection of Amazon Marketplace data objects.
This package is written in TypeScript and is fully typed.
This package combines data about Amazon Marketplace (the consumer side of Amazon) into a structured class.
- ID (e.g.
A2EUQ1WTGCTBG2
) - Country code (ISO 3166-1) (e.g.
CA
) - Amazon marketplace time zone (e.g.
America/Los_Angeles
) - Currency code (ISO 4217) (e.g.
CAD
) - Name (country name) (e.g.
Canada
) - URI (e.g.
https://www.amazon.ca/
) - Amazon Marketplace Web Service (Amazon MWS) endpoint URI
- Amazon Advertising
- API endpoint URI
- Sponsored products
- Minimum bid
- Maximum bid
- Sponsored Brands
- Minimum bid
- Maximum bid
- Account time zone
- Amazon Selling Partner API
- Selling Partner Region
- API endpoint URI
- Seller Central endpoint URI (used for SP Auth)
import { amazonMarketplaces } from '@scaleleap/amazon-marketplaces'
const { CA } = amazonMarketplaces
console.log('Amazon Marketplace %s uses currency %s.', CA.name, CA.currency)
Sometimes it is more ergonomic to iterate over an array of marketplaces.
And that is where amazonMarketplacesList
may come handy.
import { amazonMarketplacesList } from '@scaleleap/amazon-marketplaces'
const marketplaceIds = amazonMarketplacesList.map(marketplace => marketplace.id)
import {
findAmazonMarketplace,
findAmazonMarketplaceOrFail,
AmazonMarketplaceCountryCode
} from '@scaleleap/amazon-marketplaces'
// Return value *can* be undefined
const CA = findAmazonMarketplace('countryCode', AmazonMarketplaceCountryCode.CA)
// Function will throw an error if marketplace is not found
// Thus return value is never undefined.
const US = findAmazonMarketplaceOrFail('countryCode', AmazonMarketplaceCountryCode.US)
// TypeScript assertion functions that ensure that the marketplace has advertising / selling partner enabled.
// Throws if not.
assertMarketplaceHasAdvertising(CA)
assertMarketplaceHasSellingPartner(CA)
// CA.advertising is now type guarded and can be safely accessed.
console.log(CA.advertising.countryCode)
{
"countryCode": "CA",
"timeZone": "America/Los_Angeles",
"currency": "CAD",
"id": "A2EUQ1WTGCTBG2",
"name": "Canada",
"uri": "https://www.amazon.ca",
"webServiceUri": "https://mws.amazonservices.ca",
"advertising": {
"countryCode": "CA",
"timeZone": "America/Los_Angeles",
"region": {
"accessTokenUri": "https://api.amazon.com/auth/o2/token",
"authorizationUri": "https://www.amazon.com/ap/oa",
"code": "NA",
"endpoint": "https://advertising-api.amazon.com",
"name": "North America",
},
"bids": {
"sponsoredBrands": {
"min": 10,
"max": 4900
},
"sponsoredProducts": {
"min": 2,
"max": 100000
}
},
},
"sellingPartner": {
"region": {
"awsRegion": "us-east-1",
"code": "NA",
"endpoint": "https://sellingpartnerapi-na.amazon.com",
"name": "North America",
},
"sellerCentralAuthUri": "https://sellercentral.amazon.com"
}
}
You may also view the Jest snapshot data for the fully rendered data object examples.
$ npm i -s @scaleleap/amazon-marketplaces
If you find any other data that can be added, please open an issue and let us know.
Note that this repository uses Conventional Commit style commit messages.
If a new marketplace is added, this should be marked as breaking change and increase the major version, because others may rely on iterating over the available marketplaces.
- Amazon Advertising API
- Amazon Marketplace Web Service
- ISO 4217
- ISO 3166
- Regional profile time zone codes
- List of tz database time zones
- Selling Partner API endpoints
- Roman Filippov (Scale Leap)
This project is licensed under the MIT License.