neto-api-node
neto-api
A promise based client for the Neto Ecommerce API.
npm i neto-api
Initialisation
Before you start making calls, you will need to initialise the API like so:
const { NetoAPI } = require("neto-api"); const mySite = new NetoAPI({ url: "https://myawesomesite.neto.com.au", key: "api-key", user: "user" // optional });
This library can also be used with Neto’s OAuth program by providing the oauth_clientId
and oauth_secret
configuration options instead of key
. Here is an example:
const mySite = new NetoAPI({ url: "https://myawesomesite.neto.com.au", oauth_clientId: "clientId", oauth_secret: "secret" });
Authentication
This library doesn’t handle any authentication logic, it assumes that you already have obtained an API key or OAuth secret by some other means. More information on how to retrieve credentials can be found by visiting Neto’s API documentation
Basic syntax
Once the library is initialised, you can use it like so:
mySite.type // See below for a list of supported types .method() // See below for a list of methods for each type (generally add, get or update) .exec() // Returns a promise that resolves with the API response in JSON format .then(response) // Response object is returned via callback .catch(err); // Always handle your errors ;)
Examples
item.add
mySite.item .add({ SKU: "smp_3" }) .exec() .then(response => { console.log(response); }) .catch(err => console.log(err));
order.get
mySite.order .get({ OrderStatus: ["New", "Pick"] }) .output(["OrderID"]) .exec() .then(response => { for (let order of response.Order) { console.log(order); } }) .catch(err => console.log(err));
customer.update
mySite.customer .update({ Username: "someguy", EmailAddress: "bob@email.com" }) .exec() .then(response => { console.log(response); }) .catch(err => console.log(err));
Advanced usage
Chaining
.add()
and .update()
methods can be chained together with themselves to improve readability – the request itself will only be sent when .exec()
is called. Check it out below:
mySite.item .add({ SKU: "smp_1" }) .add({ SKU: "smp_2" }) .add({ SKU: "smp_3" }) .exec() .then(response => { console.log(response); }) .catch(err => console.log(err));
This allows you to some other cool stuff, such as building a bulk request to execute at some time in the future:
// Expose a copy of the request type var addItems = api.item; // Do some stuff... addItems = addItems.add({ SKU: "smp_1" }); // Do some other stuff... addItems = addItems.add({ SKU: "smp_2" }); // Keep building the request... addItems = addItems.add({ SKU: "smp_3" }); // Finally execute the request at a later time addItems .exec() .then(response => { console.log(response); }) .catch(err => console.log(err));
Chaining .get()
methods will be supported soon, I promise.
async/await support
Because this library is built on promises, it supports the use of async
and await
operators. Here’s an example:
async function addItem() { try { var response = mySite.item.add({ SKU: "smp_1" }).exec(); // Do some stuff... console.log(await response); } catch (err) { console.log(err); } } addItem();
It’s that easy!
Supported types and methods
.cart
Method
Neto API Action
.get( CartFilter )
GetCart
.category
Method
Neto API Action
.add( Category | Category[] )
AddCategory
.get( CategoryFilter )
GetCategory
.update( Category | Category[] )
UpdateCategory
.content
Method
Neto API Action
.add( Content | Content[] )
AddContent
.get( ContentFilter )
GetContent
.update( Content | Content[] )
UpdateContent
.currency
Method
Neto API Action
.getSettings()
GetCurrencySettings
.updateSettings( CurrencySettings )
UpdateCurrencySettings
.customer
Method
Neto API Action
.add( Customer | Customer[] )
AddCustomer
.get( CustomerFilter )
GetCustomer
.update( Customer | Customer[] )
UpdateCustomer
.addLog( CustomerLog | CustomerLog[] )
AddCustomerLog
.updateLog( CustomerLog | CustomerLog[] )
UpdateCustomerLog
.item
Method
Neto API Action
.add( Item | Item[] )
AddItem
.get( ItemFilter )
GetItem
.update( Item | Item[] )
UpdateItem
.order
Method
Neto API Action
.add( Order | Order[] )
AddOrder
.get( OrderFilter )
GetOrder
.update( Order | Order[] )
UpdateOrder
.payment
Method
Neto API Action
.add( Payment | Payment[] )
AddPayment
.get( PaymentFilter )
GetPayment
.getMethods()
GetPaymentMethods
.rma
Method
Neto API Action
.add( Rma | Rma[] )
AddRma
.get( RmaFilter )
GetRma
.shipping
Method
Neto API Action
.getMethods()
GetShippingMethods
.getQuote( ShippingQuote )
GetShippingQuote
.supplier
Method
Neto API Action
.add( Supplier | Supplier[] )
AddSupplier
.get( SupplierFilter )
GetSupplier
.update( Supplier | Supplier[] )
UpdateSupplier
.voucher
Method
Neto API Action
.add( Voucher | Voucher[] )
AddVoucher
.get( VoucherFilter )
GetVoucher
.update( Voucher | Voucher[] )
UpdateVoucher
.warehouse
Method
Neto API Action
.add( Warehouse | Warehouse[] )
AddWarehouse
.get( WarehouseFilter )
GetWarehouse
.update( Warehouse | Warehouse[] )
UpdateWarehouse
Endpoint actions not supported yet
-
Accounting
-
UpdateAccountingSystemRelatedAccount
-
DeleteAccountingSystemRelatedAccount
-
AddAccountingSystemRelatedAccount
-
GetAccountingSystemRelatedAccounts
-
Neto API documentation available here.
Note: This is currently a personal project of mine and is not offically endorsed or supported by Neto.