Skip to content
This repository

NetSuite SuiteTalk API Wrapper

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 wsdl
Octocat-spinner-32 .autotest
Octocat-spinner-32 .gitignore first commit
Octocat-spinner-32 .rspec randomized suite
Octocat-spinner-32 .rvmrc
Octocat-spinner-32 Gemfile
Octocat-spinner-32 LICENSE first commit
Octocat-spinner-32 README.md
Octocat-spinner-32 Rakefile actions are now dynamically defined in modules that are then included
Octocat-spinner-32 netsuite.gemspec
README.md

Netsuite

  • This gem will act as a wrapper around the NetSuite SuiteTalk WebServices API. Wow, that is a mouthful.
  • The gem does not cover the entire API, only the subset that we have found useful to cover so far.
  • Extending the wrapper is pretty simple. See below for an example.

Installation

Add this line to your application's Gemfile:

gem 'netsuite'

And then execute:

$ bundle

Or install it yourself as:

$ gem install netsuite

Usage

Customer

  • Initializing a customer can be done using a hash of attributes.

Get

  • Retrieves the customer by internalId.

    customer = NetSuite::Records::Customer.get(4) # => #<NetSuite::Records::Customer:0x1042f59b8>
    customer.is_person                            # => true
    

Additions

  • Please submit a pull request for any models or actions that you would like to be included. The API is quite large and so we will necessarily not cover all of it.
  • Records should go into the lib/netsuite/records/ directory.
  • Actions should be placed in their respective subdirectory under lib/netsuite/actions.
  • Example:

    # lib/netsuite/actions/customer/add.rb
    
    module NetSuite
      module Actions
        module Customer
          class Add
    
            def initialize(attributes = {})
              @attributes = attributes
            end
    
            def self.call(attributes)
              new(attributes).call
            end
    
            def call
              response = NetSuite::Configuration.connection.request :add do
                soap.header =  NetSuite::Configuration.auth_header
                soap.body = {
                  :entityId    => @attributes[:entity_id],
                  :companyName => @attributes[:company_name],
                  :unsubscribe => @attributes[:unsubscribe]
                }
              end
              success = response.to_hash[:add_response][:write_response][:status][:@is_success] == 'true'
              body    = response.to_hash[:add_response][:write_response][:base_ref]
              NetSuite::Response.new(:success => success, :body => body)
            end
    
          end
        end
      end
    end
    
    response = NetSuite::Actions::Customer::Add.call(
      :entity_id    => 'Shutter Fly',
      :company_name => 'Shutter Fly, Inc.',
      :unsubscribe  => false
    )                 # => #<NetSuite::Response:0x1041f64b5>
    response.success? # => true
    response.body     # => { :internal_id => '979', :type => 'customer' }
    

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Something went wrong with that request. Please try again.