NetsuiteApi
This library is designed to help ruby/rails based applications communicate with the publicly available REST API for NetSuite.
If you are unfamiliar with the NetSuite REST API, you should first read the documentation located at SuiteTalk REST Web Services API Guide.
The NetSuite REST API document could be found at NetSuite REST API Browser: Record API v1
Installation
Add this line to your application's Gemfile:
gem 'netsuite_api', '0.1.4'
And then execute:
$ bundle
Or install it yourself as:
$ gem install netsuite_api
Basic Usage
Setup Credential Information
Set All the credential information in your project .env file
NETSUITE_HOST = ""
NETSUITE_ACCOUNT_ID = ""
NETSUITE_CONSUMER_KEY = ""
NETSUITE_CONSUMER_SECRET = ""
NETSUITE_TOKEN = ""
NETSUITE_TOKEN_SECRET = ""
NETSUITE_PDF_HOST =
or pass those information when initialize NetsuiteApi instance, for example, initializing NetsuiteApi::Invoice
NetsuiteApi::Invoice.new(netsuite_host: "", netsuite_pdf_host: "", account_id: "", consumer_key: "", token: "", token_secret: "", consumer_secret: "")
NetsuiteApi Object Usage
There are 7 objects could be used: NetsuiteApi::Invoice
, NetsuiteApi::CreditMemo
, NetsuiteApi::Payment
, NetsuiteApi::Customer
, NetsuiteApi::Contact
, NetsuiteApi::Vendor
, NetsuiteApi::VendorBill
.
More information about the objects could be found in lib/netsuite_api
.
All the objects have method to get record, create data, update data, delete data in NetSuite through Netsuite REST API.
Following section shows an example of using NetsuiteApi::Invoice
. The way to use other objects is similar.
Get data
Get a specific invoice data.
service = NetsuiteApi::Invoice.new service.get(netsuite_invoice_id)
Query some invoice data.
# query invoices which entity is 12
service = NetsuiteApi::Invoice.new query_params = { "q" => "entity EQUAL 12" } service.query(query_params)
More information about the query parameters could be found in [Record Collection Filtering](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1545222128.html#Record-Collection-Filtering)
### Create data
* Create an invoice
service = NetsuiteApi::Invoice.new params = { "entity" => { "id" => "12" }, "postingperiod" => "121", "item" => { "items" => [ { "amount" => 100.0, "item" => { "id" => "26" } } ] }, "subsidiary" => { "id" => "8" }, "currency" => { "id": "2" } } service.create(invoice_params)
### Update data
* Update an invoice
service = NetsuiteApi::Invoice.new update_params = { "otherRefNum": "1234" } invoice_id = 1 service.update(invoice_id, update_params)
### Delete data
* Delete an invoice
service = NetsuiteApi::Invoice.new invoice_id = 1 service.delete(invoice_id)
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/iceland101113/netsuite_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
## Code of Conduct
Everyone interacting in the NetsuiteApi project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/netsuite_api/blob/master/CODE_OF_CONDUCT.md).