/node-suitetalk

NodeJs Suitetalk wrapper for NetSuite

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

node-suitetalk

NodeJS Suitetalk wrapper

Install

$ npm install --save node-suitetalk

Usage

Get a customer:

const NetSuite = require("node-suitetalk");
const Configuration = NetSuite.Configuration;
const Service = NetSuite.Service;
const Record = NetSuite.Record;

const config = new Configuration({
    account: "123456_SB1",
    apiVersion: "2019_2",
    accountSpecificUrl: true, // Enable for new format
    credentials: {
        email: "email@netsuite.com",
        password: "netsuitepassword",
        role: "3",
        applicationId:"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    },
    wsdlPath: "./wsdl/WSDL_v2019_2_0/netsuite.wsdl",
});

const service = new Service(config);

service
    .init()
    .then((/*client*/) => { 

       const recordRef = new Record.Types.RecordRef();
       recordRef.internalId = 1234567;
       recordRef.type = "customer";
       
       return service.get(recordRef);
    }).then((result) => {
        console.log("result");
        console.log(JSON.stringify(result));
    
}).catch(function (err) {
    console.log("error");
    console.log(service.config.client.lastRequest);
    console.log("message");
    console.log(JSON.stringify(err));
});

Discovery

Get role and account id using NetSuite credentials.

const NetSuite = require("node-suitetalk");
const Util = NetSuite.Util;
const util = new Util();

util.getLoginOptions({
    email: "email@netsuite.com",
    password: "netsuitepassword",
}, (err, data) => {
    // Outputs login options for this account
    // will will use roles and
});

Import WSDL from NetSuite website, we pre-load the files to speed up requests.

const NetSuite = require("node-suitetalk");
const Util = NetSuite.Util;
const util = new Util();

util.downloadWsdlToFolder({
    apiVersion: "2019_2",
    wsdlFolderPath: "./wsdl/NetSuite/", // Defaults to ./wsdl

}, (wsdlPath) => {

    // Callbacks the path to netsuite.wsdl

});

Configuration

Either "credentials" or "token" are required to login, by default the credentials will be used.

  • Options
    • account Required. NetSuite account ID.
    • apiVersion Required. API version. Example 2018_1.
    • wsdlPath Required. Path to wsdl folder or netsuite.wsdl file. A remote URI can also be used, but is much slower.
    • credentials Use NL_AUTH credentials.
      • email Required. NetSuite user email.
      • password Required. NetSuite user password.
      • role NetSuite role ID. Example: '3' for administrator.
      • applicationId Application ID. "Manage Integrations" page in NetSuite.
    • token Use OAuth1.0 token.
      • consumer_key Required. Consumer Key. "Manage Integrations" page in NetSuite.
      • consumer_secret Required. Consumer Secret. "Manage Integrations" page in NetSuite.
      • token_key Required. Token Key."Manage Access Tokens" page in NetSuite.
      • token_secret Required. Token Secret. "Manage Access Tokens" page in NetSuite.

Notes

Created as a module for another project. Some features still unavailable.

License

GNU GPL see LICENSE.

Use at your own discretion

Authors

Add yourself here if you've contributed