Originally Published 2015-12-22
Alright so you went with NetSuite! Or, more likely, someone decided you were going to implement NetSuite. Either way, it’s cool. Let’s talk about it. We’ll learn some things. I’m assuming you’re just getting started, like I was.
First thing to note: NetSuite is NOT a payment processor. Not directly, anyway. If you go in thinking “I’m going to use this like I would Stripe or PayPal“, you are going to get overwhelmed and frustrated, like I did.
NetSuite is a DATABASE. At its most basic level, all it does is store and retrieve data. The front end of it at NetSuite.com is just a reporting system on top of the database. If you keep this in mind, dealing with the NetSuite idiosyncrasies gets much more manageable.
SuiteTalk is a SOAP based Web Service API for the NetSuite database. It’s main focus is input and output from the database to external systems. When I was integrating, this was the tool I relied on heavily: I wanted to keep NetSuite separate from our systems, so that’s what I’ll focus on. First thing you’ll want to check out is This page that has sample apps in Java and C#, plus the PHP toolkit. We’re using PHP with Laravel here in the office, so the PHP toolkit was a nice resource. However, it’s not properly namespaced. A nice guy by the name of Ryan Winchester namespaced it for us and put it on GitHub. This one is easy to install with composer, and is the library I will most often use in these posts. If you’re not using this, however, you should still be able to follow along with the PHP Toolkit, it is very similar.
So the first thing I needed to tackle was the checkout system. NetSuite has a built in checkout system, but it didn’t quite fit what we were trying to do; I didn’t want our checkout pages to be on NetSuite servers (nothing says “not legitimate” like being sent to a completely different domain for purchase), and I wasn’t about to move our entire operation over to NetSuite to take advantage of their domain management, like the salesmen suggested. I also have some different kinds of products that don’t always fit to a standard checkout system.
So I did it myself.
The next post will go through some of the trials and tribulations with that. And we’ll do some coding! Neat!