node-suitetalk
Version:
NodeJs Suitetalk wrapper.
129 lines (97 loc) • 3.58 kB
Markdown
# node-suitetalk
NodeJS Suitetalk wrapper
## Install
```bash
$ npm install --save node-suitetalk
```
## Usage
Get a customer:
```javascript
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.
```javascript
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.
```javascript
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**
* Felipe Chang <felipechang@hardcake.org>
* Ricky Claven <rclaven@transalis.com>
* jonahthermomix <https://github.com/jonahthermomix>
* Wiput Pootong <contact@wiput.me>
* Cameron Ackerman <https://github.com/camja014>