Skip to content

bhushankummar/eBay-node-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eBay-node-client (eBay Node Client)

Version Build Status

This API supported eBay's standard REST-style API that accepts/returns JSON requests and Here is the [API reference] (https://developer.ebay.com/api-docs/commerce/static/commerce-landing.html)

You can testify API through eBay API Explorer without any installation.

You can find examples of JavaScript and TypeScript here. This will help you for faster implementation of eBay APIs.

Do you need an expert?

Are you in need of a developer? If so, please reach out here. Submit your project request here. Originally by Bhushankummar - bhushan.lilapra@gmail.com.

It does supports EcmaScript 5, EcmaScript 6, EcmaScript 8, TypeScript, async-await, Promises, Callback !
It does also supports for AWS Lambda like serverless cloud function call.
It supports pure JSON response.
All methods support Promise and Callback both.
Please Feel free to create Issue for any help !
All developers/contributors are requested to open Pull Request/Merge Request on development branch. Please make sure Test Cases be passed.

Installation

npm install ebay-node-client --save

Test Cases

npm run test.mocha

Debugging

export DEBUG=eBay:*

Usage

export EBAY_CLIENT_ID=KEY
export EBAY_CLIENT_SECRET=SECRET

Additional Parameters based on different API Call

export EBAY_DEV_ID=DEV_ID

To Enable Sandbox Purpose

export EBAY_CLIENT_SANDBOX='true'

Configuration Using JavaScript

var eBay = require('ebay-node-client')('YOUR_KEY', 'YOUR_SECRET');

Configuration Using TypeScript

import * as eBay from 'ebay-node-client';

const eBay = new eBay();
eBay.setApiKey('YOUR_KEY', 'YOUR_SECRET');

Set Application Access Token

    eBay.setToken(token.access_token);

Set User Token

    eBay.setUserToken(userToken);

Set Content Language (Default is en-US)

    eBay.setContentLanguage('en-GB');

Set MarketplaceId

    eBay.setMarketplaceId('EBAY_US');

Pull Request

  • Contributors can send their Pull Request to development branch.
  • Kindly validate test cases & linting before opening new PR.

Examples

Application

Oauth Token

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        console.log('token.access_token ', token.access_token);
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
    }    

Buy

Browse

Get Item

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
        return;
    }

    var itemId = 'v1|110329773707|410089528845';
    try {
        var response = await eBay.browse.getItem(itemId);
        console.log('response', response);
    } catch (error) {
        console.log('error', error);
        return;
    }    

Search

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
        return;
    }

    var data = {
        gtin: '010942122258',
        limit: '1'
    };
    try {
        var response = await eBay.browse.search(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Search By Image

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var base64Content = base64_encode('sample-image.jpg');
    // console.log('base64Content ', base64Content);
    var data = {
        image: base64Content
    };
    try {
        var response = await eBay.browse.searchByImage(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Commerce

Catalog

Create Change Request

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'changeRequestType': 'PRODUCT_CREATION',
        'reasonForChangeRequest': 'Request to add new product',
        'suggestedProduct': {
            'title': 'Apple iPhone',
            'description': 'This Space Grey iPhone comes with 256GB of storage, and can be used on any carrier network in the US.',
            'primaryCategoryId': '178114',
            'aspects': [
                {
                    'name': 'Model',
                    'values': ['iPhone 20']
                }
            ],
            'imageUrl': 'https://i.ebayimg.com/images/g/HFAAAOSw9W5bWgcQ/s-l1600.jpg?set_id=89040003C1C1',
            'brand': 'Apple',
            'upc': ['0745577656433'],
            'mpn': ['MD295LL/A']
        }
    };
    try {
        var response = await eBay.catalog.createChangeRequest(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Change Request

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var changeRequestId = '1010101';
    try {
        var response = await eBay.catalog.getChangeRequest(changeRequestId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Change Requests

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    try {
        var response = await eBay.catalog.getChangeRequests();
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Product

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var epId = '1300568638';
    try {
        var response = await eBay.catalog.getProduct(epId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Product Metadata

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'epid': '241827861',
        'primary_category_id': '9355',
        'other_applicable_category_ids': '15032,42428'
    };
    try {
        var response = await eBay.catalog.getProductMetadata(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Product Metadata For Categories

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'primary_category_id': '500',
        'other_applicable_category_ids': '34,36,63'
    };
    try {
        var response = await eBay.catalog.getProductMetadataForCategories(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Search

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        gtin: '010942122258'
    };
    try {
        var response = await eBay.catalog.search(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Search By Category

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        // Leaf Category Name
        q: 'Video Cables',
        // Leaf Category Id
        category_ids: '67859'
    };
    try {
        var response = await eBay.catalog.search(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Taxonomy

Get Category Subtree

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
        return;
    }

    var categoryTreeId = '0';
    var data = {
        category_id: '34'
    };
    try {
        var response = await eBay.taxonomy.getCategorySubtree(categoryTreeId, data);
        console.log('response', JSON.stringify(response));
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Category Suggestions

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
        return;
    }

    var categoryTreeId = 203;
    var data = {
        'q': 'abc'
    };
    try {
        var response = await eBay.taxonomy.getCategorySuggestions(categoryTreeId, data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Category Tree

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
        return;
    }

    var categoryTreeId = 203;
    try {
        var response = await eBay.taxonomy.getCategoryTree(categoryTreeId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Category Tree To File

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
        return;
    }

    var categoryTreeId = '0';
    try {
        var response = await eBay.taxonomy.getCategoryTree(categoryTreeId);
        console.log('response', JSON.stringify(response));
        fse.writeFileSync('temp/response.json', JSON.stringify(response));
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Default Category Tree Id

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
        return;
    }

    var data = {
        marketplace_id: 'EBAY_IN'
    };
    try {
        var response = await eBay.taxonomy.getDefaultCategoryTreeId(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Item Aspects For Category

    try {
        var token = await eBay.application.getOAuthToken({
            grant_type: 'client_credentials',
            scope: 'https://api.ebay.com/oauth/api_scope'
        });
        eBay.setToken(token.access_token);
    } catch (error) {
        console.log('error ', error);
        return;
    }

    var categoryTreeId = 203;
    var data = {
        category_id: '931'
    };
    try {
        var response = await eBay.taxonomy.getItemAspectsForCategory(categoryTreeId, data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Finding

Find Items By Product

    try {
        var content = fse.readFileSync('./sample.xml', 'UTF-8');

        var response = await eBay.finding.findItemsByProduct({content: content});
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Sell

Account

Create Or Replace Sales Tax

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var countryCode = 'US';
    var jurisdictionId = 'IN';
    var data = {
        'salesTaxPercentage': 7.0,
        'shippingAndHandlingTaxed': false
    };
    try {
        var response = await eBay.account.getSalesTax(countryCode, jurisdictionId, data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Delete Sales Tax

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var countryCode = 'US';
    var jurisdictionId = 'IN';
    try {
        var response = await eBay.account.deleteSalesTax(countryCode, jurisdictionId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Fulfillment Policy

Get Fulfillment Policies

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        marketplace_id: 'EBAY_US'
    };
    try {
        var response = await eBay.fulfillmentPolicy.getFulfillmentPolicies(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Sales Tax

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var countryCode = 'US';
    var jurisdictionId = 'IN';
    try {
        var response = await eBay.account.getSalesTax(countryCode, jurisdictionId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Sales Taxes

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        country_code: 'US'
    };
    try {
        var response = await eBay.account.getSalesTaxes(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Payment Policy

Get Payment Policies

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        marketplace_id: 'EBAY_US'
    };
    try {
        var response = await eBay.paymentPolicy.getPaymentPolicies(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Return Policy

Get Return Policies

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        marketplace_id: 'EBAY_US'
    };
    try {
        var response = await eBay.returnPolicy.getReturnPolicies(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Inventory

Bulk Create Or Replace Inventory Item

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'requests': [
            {
                'sku': '13465446'
            },
            {
                'sku': '132165496'
            }
        ]
    };
    try {
        var response = await eBay.inventory.bulkCreateOrReplaceInventoryItem(data);
        console.log('response ', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Bulk Update Price Quantity

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = { /* BulkPriceQuantity */
        'requests': [
            { /* PriceQuantity */
                'offers': [
                    { /* OfferPriceQuantity */
                        'availableQuantity': 'integer',
                        'offerId': 'string',
                        'price': { /* Amount */
                            'currency': 'string',
                            'value': 'string'
                        }
                    }
                ],
                'shipToLocationAvailability': {
                    /* ShipToLocationAvailability */
                    'quantity': 'integer'
                },
                'sku': 'string'
            }
        ]
    }
    try {
        var response = await eBay.inventory.bulkUpdatePriceQuantity(sku, data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Create Or Replace Inventory Item

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'availability': {
            'shipToLocationAvailability': {
                'quantity': 50
            }
        },
        'condition': 'NEW',
        'product': {
            'title': 'GoPro Hero4 Helmet Cam',
            'description': 'New GoPro Hero4 Helmet Cam. Unopened box.',
            'aspects': {
                'Brand': ['GoPro'],
                'Type': ['Helmet/Action'],
                'Storage Type': ['Removable'],
                'Recording Definition': ['High Definition'],
                'Media Format': ['Flash Drive (SSD)'],
                'Optical Zoom': ['10x']
            },
            'brand': 'GoPro',
            'mpn': 'CHDHX-401',
            'imageUrls': [
                'http://i.ebayimg.com/images/i/182196556219-0-1/s-l1000.jpg',
                'http://i.ebayimg.com/images/i/182196556219-0-1/s-l1001.jpg',
                'http://i.ebayimg.com/images/i/182196556219-0-1/s-l1002.jpg'
            ]
        }
    };
    var sku = '32984729384730';
    try {
        var response = await eBay.inventory.createOrReplaceInventoryItem(sku, data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Delete Inventory Item

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);

    var sku = '32984729384730';
    try {
        var response = await eBay.inventory.deleteInventoryItem(sku);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Bulk Inventory Item

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'requests': [
            {
                'sku': '13465446'
            },
            {
                'sku': '132165496'
            }
        ]
    };
    try {
        var response = await eBay.inventory.bulkGetInventoryItem(data);
        console.log('response ', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Inventory Item

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var sku = '32984729384730';
    try {
        var response = await eBay.inventory.getInventoryItem(sku);
        console.log('response ', response);
    } catch (error) {
        console.log('error ', error);
    }    

Get Inventory Items

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        limit: '10'
    };
    try {
        var response = await eBay.inventory.getInventoryItems(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Location

Create Inventory Location

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'location': {
            'address': {
                'addressLine1': '2055 Hamilton Ave',
                'addressLine2': 'Building 3',
                'city': 'San Jose',
                'stateOrProvince': 'CA',
                'postalCode': '95125',
                'country': 'US'
            }
        },
        'locationInstructions': 'Open for drop-off only.',
        'name': 'Warehouse-1',
        'merchantLocationStatus': 'ENABLED',
        'locationTypes': [
            'WAREHOUSE'
        ],
        'operatingHours': [
            {
                'dayOfWeek': 'MONDAY',
                'intervals': [
                    {
                        'open': '09:00:00',
                        'close': '12:00:00'
                    },
                    {
                        'open': '13:00:00',
                        'close': '18:00:00'
                    }
                ]
            },
            {
                'dayOfWeek': 'TUESDAY',
                'intervals': [
                    {
                        'open': '09:00:00',
                        'close': '15:00:00'
                    }
                ]
            }
        ],
        'specialHours': [
            {
                'date': '2016-10-19T00:09:00.000Z',
                'intervals': [
                    {
                        'open': '09:00:00',
                        'close': '11:00:00'
                    }
                ]
            }
        ]
    };
    var customLocationIdentifier = 'LOC1014';
    try {
        var response = await eBay.location.createInventoryLocation(customLocationIdentifier, data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Delete Inventory Location

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var customLocationIdentifier = 'LOC1014';
    try {
        var response = await eBay.location.deleteInventoryLocation(customLocationIdentifier);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Disable Inventory Location

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var customLocationIdentifier = 'LOC1014';
    try {
        var response = await eBay.location.disableInventoryLocation(customLocationIdentifier);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Enable Inventory Location

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var customLocationIdentifier = 'LOC1014';
    try {
        var response = await eBay.location.enableInventoryLocation(customLocationIdentifier);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Inventory Location

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var customLocationIdentifier = 'LOC1014';
    try {
        var response = await eBay.location.getInventoryLocation(customLocationIdentifier);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Inventory Locations

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        limit: 10,
        offset: 0
    };
    try {
        var response = await eBay.location.getInventoryLocations(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Update Inventory Location

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'name': 'My Store #1',
        'location': {
            'address': {
                'addressLine1': '2055 Hamilton Ave',
                'addressLine2': 'Building 3',
                'city': 'San Jose',
                'stateOrProvince': 'CA',
                'postalCode': '95008',
                'country': 'US'
            }
        },
        'merchantLocationStatus': 'ENABLED',
        'locationTypes': [
            'STORE'
        ],
        'merchantLocationKey': 'store-1'
    };
    var customLocationIdentifier = 'LOC1014';
    try {
        var response = await eBay.location.updateInventoryLocation(customLocationIdentifier, data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Offer

Create Offer

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'sku': '32984729384730',
        'marketplaceId': 'EBAY_US',
        'format': 'FIXED_PRICE',
        'listingDescription': 'This is Test product',
        'availableQuantity': 1,
        'quantityLimitPerBuyer': 1,
        'pricingSummary': {
            'price': {
                'value': 0.99,
                'currency': 'USD'
            }
        },
        'listingPolicies': {
            'fulfillmentPolicyId': '78842674011',
            'paymentPolicyId': '61019561011',
            'returnPolicyId': '61019560011'
        },
        'categoryId': '178086',
        'merchantLocationKey': 'Store1',
        'tax': {
            'vatPercentage': 10.2,
            'applyTax': true,
            'thirdPartyTaxCategory': 'Electronics'
        }
    };
    try {
        var response = await eBay.offer.createOffer(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Delete Offer

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var offerId = '6360335010';
    try {
        var response = await eBay.offer.deleteOffer(offerId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Listing Fees

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        offers: [
            {
                'offerId': '6360337010'
            }
        ]
    };
    try {
        var response = await eBay.offer.getListingFees(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Offer

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var offerId = '6360335010';
    try {
        var response = await eBay.offer.getOffer(offerId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Offers By Sku

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        sku: '32984729384730'
    };
    try {
        var response = await eBay.offer.getOffers(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Publish Offer

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var offerId = '6360337010';
    try {
        var response = await eBay.offer.publishOffer(offerId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Update Offer

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var data = {
        'availableQuantity': 60,
        'categoryId': '30120',
        'listingDescription': 'Test Test : Lumia phone with a stunning 5.7 inch Quad HD display and a powerful octa-core processor.',
        'listingPolicies': {
            'fulfillmentPolicyId': '78842674011',
            'paymentPolicyId': '61019561011',
            'returnPolicyId': '61019560011'
        },
        'pricingSummary': {
            'price': {
                'currency': 'USD',
                'value': '260.00'
            }
        },
        'quantityLimitPerBuyer': 3
    };
    var offerId = '6360335010';
    try {
        var response = await eBay.offer.updateOffer(offerId, data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Withdraw Offer

    var userToken = utils.USER_TOKEN;
    eBay.setUserToken(userToken);
    var offerId = '6360335010';
    try {
        var response = await eBay.offer.withdrawOffer(offerId);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Shopping

Find Products

    try {
        var content = fse.readFileSync('./sample.xml', 'UTF-8');
        // console.log('content', content);

        var response = await eBay.shopping.findProducts({content: content});
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Trading

Add Item

    try {
        var content = fse.readFileSync('./sample.xml', 'UTF-8');
        // console.log('content', content);

        var response = await eBay.trading.addItem({content: content});
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Item

    try {
        var content = fse.readFileSync('./sample.txt', 'UTF-8');
        // console.log('content', content);
        var response = await eBay.trading.addItem({content: content});
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

Get Session Id

    var devId = utils.DEV_ID;
    var ruName = utils.RU_NAME;

    eBay.setDevName(devId);

    const obj = {
        '@': {
            'xmlns': 'urn:ebay:apis:eBLBaseComponents'
        },
        'ErrorLanguage': 'en_US',
        'WarningLevel': 'High',
        'RuName': ruName
    };

    var content = js2xmlparser.parse('GetSessionIDRequest', obj, {declaration: {encoding: 'UTF-8'}});

    try {
        var response = await eBay.trading.getSessionID({content: content});
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }    

User

Get Redirect Url

    try {
        var DEFAULT_SCOPE_SANDBOX = 'https://api.ebay.com/oauth/api_scope/sell.inventory https://api.ebay.com/oauth/api_scope/commerce.catalog.readonly';

        var options = {
            scope: DEFAULT_SCOPE_SANDBOX,
            redirectURI: 'Bhushankumar_L-Bhushank-DemoAp-onqph'
        };
        var response = await eBay.user.getRedirectUrl(options);
        console.log('redirectUrl ', response);
    } catch (error) {
        console.log('error ', error);
    }    

Refresh User Token

    try {
        var options = {
            access_token: 'v7.1#i7#p^3#f^0#I^3#r^0#t^H4sIAAAAAAAAAOVXa2wUVRTu9sGrIAkSkGriOpgQITM7d3ZnZ2eg22xf0ABt6baIEGzvzpxph87ObObOtt0fxKYmRYkgsTEGAeWR9A+BgOGPkfKjFU1ATA1RgwkkakSjMfGFpojRO9sHbY2ALiRN3D+Te+65557vO989ey/fPWvuyt51vb8t8M3OP9zNd+f7fKiYnzuraNVDBfklRXn8JAff4e4nuwt7Cr5ZQ3DSTCkNQFK2RcDflTQtomSNpUzasRQbE4MoFk4CUVxVicc2blAEjldSju3aqm0y/prKUiYUlCO6wEfEYFALyZJOrdZ4zEa7lIlEQAzJoVA4JIVBlsJ0npA01FjExZZbygg8irBIYFGwEQkKLypI4sJhaSvj3wwOMWyLunA8E82mq2TXOpNyvXOqmBBwXBqEidbEquN1sZrKqtrGNYFJsaJjPMRd7KbJ1FGFrYF/MzbTcOdtSNZbiadVFQhhAtHRHaYGVWLjyfyH9LNUQxAAY10LY02K8CH5vlBZbTtJ7N45D89iaKyedVXAcg03czdGKRuJHaC6Y6NaGqKm0u99NqWxaegGOKVMVXnsmaZ4VQPjj9fXO3aHoYHmIUXBkBCMSCJioi4QSiE4zYm2NGnDVns6iR3TMHEKO3hs39HgY6xP27jCtjTD45D4a223HCgImEoVUsRJVFGnOqvOiemul+Bkv9A4pWJoq1fj0aKm3TbLKzMkKS/+7PDuBRlXyG1N3C+NiLoEcgIAJFFVEUKM3zvruesk6pUqVl8f8HKBBM6wtAzt4KZMrAKrUnrTSXAMTQmKOi2dDqwWlnU2JOs6mxC1MIt0AB4gkVDlyP9YLq7rGIm0CxOSmT6RxUzPOqVYMbCuuHY7WI2ZFDDTPbONaUwnXaSUaXPdlBIIdHZ2cp1BznZaAwLPo8CWjRviahskMTPha9zdmTWyalGBriKG4tIESpkuKki6udXKRBuqqhuq4uuaG+vWV9WOi3lKZtHp1n9AGlftFNTbpqFmZhbEoKPVY8fNlKczdBwH06SfnKASD+qDBOmd9X8P1ItBaBCcMjhPd5xqJwM2pq3MMzVnsw4Qip8zrA4qWdvJ+O9pDbXRpqACp2IXm3Yr5wDWbMvM5MRiLJWqSSbTLk6YUKPNMM2gMPXPGd4MQ1U+1kvZSkjaNL9qNl6+hRXDvBoUEIisKGgaj4HPCbcGHYYKzcYMw26lTTMnXJXQ8UDqSc96IgdcegQimizKrCbJMhvSBcwmEAqy4WBCS9Cruo5CudVzY+tMK2VtIJYTogrToN1v5v0Xr7OJC1pu0OgdcmaB8jrMeIOREQgsDksiGxIAsXIYJFaQZOFeIU8zTLp7/e0WHpj6Ko7mZX+oxzfA9/jepg9rXuJZtIp/alZBU2HBfIYYLnAEW1rC7uLofY0jRqtFH30OcO2QSWHDyZ/l2/bot2W3Jr3HD2/nH5l4kc8tQMWTnuf8Y7dnitDCpQtQBAkoiAReRNJWfvnt2UK0pHDx4OfFv7YsvzZ4K/JexdqeyyXH5jf9xC+YcPL5ivIKe3x5b1y8tP2FPr73s6ELLfg4s231zZGROY9/sLc3/92SwVeadpJ3nj5f2fjW8EAvI50/MKfF131ucefxN38/cnnFntmb6p69+eUp++oTD1/YFP4Kjp3c1bN/2cii4UEt/sfSbfmLRq7v3XkNPYf69hXOa97tf+lES+OyoVun++s6D9Se2O07efHVD5vaubJ91wfOVvu+uHrozCHcJCvJn62Bhf1l+8t/eTldRC4dXXrtYDF/WR0S532nrOjfsb6l70je60v6TpErPxx6Mfp+3cDB04udXcfX/vna2ZUfLbvxvPbpmbWrhZGPixe13zhSO9R//ZMAfM8eLeN+vPGqdm74a3JCW73fHS7Zw/Re8Y2W8S9LNhvtKREAAA==',
            refresh_token: 'v7.1#i7#f^0#p^3#r7#I^3#t^Ul4xMF8wOkJFNDYxN0FFQzQxMjMxRDZCRkQ3RTNCNTQwMzFDNDM5XzJfMSNFXjEyODQ='
        };
        var response = await eBay.user.refreshUserToken(options);
        console.log('refreshedToken ', response);
    } catch (error) {
        console.log('error ', error);
    }    

Retrieve User Token

    var token = {};
    try {
        var options = {
            redirectURI: 'Bhushankumar_L-Bhushank-DemoAp-onqph',
            code: 'v^1.1#i^1#f^0#r^1#p^3#I^3#t^Ul41Xzg6QTgwNEM4REE5RDUwODMyNzgyNjJFNUVBRTk1OTQ3QzlfMl8xI0VeMTI4NA=='
        };
        token = await eBay.user.retrieveUserToken(options);
        console.log('response ', token);
    } catch (error) {
        console.log('error ', error);
        return;
    }
    console.log('user token ', token.access_token);
    eBay.setUserToken(token.access_token);
    var data = {
        q: 'drone'
    };
    try {
        var response = await eBay.catalog.search(data);
        console.log('response', response);
    } catch (error) {
        console.log('error ', error);
        return;
    }