Integrate Sales Orders into NetSuite with Stripe
Stripe orders are pushed into NetSuite Sales Orders and Customer Deposits. By pushing eCommerce orders into Stripe, you can integrate the full order details into NetSuite without any additional development work.
A Stripe order is similar to a Stripe invoice, but contains additional features for helping manage flows specific to physical or digital fulfillment. Shipping address, billing address, taxes, shipping, quantity ordered, etc are all contained on the Stripe order.
Orders represent a single customer order and are not tied to Stripe's Subscriptions.
How orders are pushed to NetSuite
There are many pieces to a Stripe order, here's how they are translated to NetSuite:
|Stripe Order||NetSuite SalesOrder or Invoice|
|Stripe Order Items||SalesOrder or Invoice Line Items|
|Stripe Order's Charge||NetSuite CustomerDeposit applied against the created SalesOrder or a customer payment applied against an invoice.|
|Stripe SKU||NetSuite InventoryItem or NonInventoryItem. Other items are supported as well.|
|Stripe Product||Nothing. Only SKUs are translated to NetSuite.|
|Customer, Refund, Dispute, Coupon, etc||All other records associated with a Stripe order leverage the standard integration functionality|
Some additional details:
- You can choose to either create a invoice or sales order from a Stripe order. It is not possible to conditionally change which record is created by the integration.
- A SalesOrder in NetSuite is not created until the Stripe order is paid. In other words, only orders which have completed the checkout process are pushed to NetSuite.
- You can link Stripe order line items to any items you would like in NetSuite. You can use existing items in your NetSuite account if you would like.
- When an SKU is not shippable, a NonInventoryItem is used. This represents a digital good (eBook, MP3, etc) or other non-physical item.
- If the customer paid with a credit card, and the billing address was used to verify the card, this address is set as the NetSuite Customer's default billing address.
When to use the Stripe Order API
The Stripe Order API, combined with SuiteSync, is a great way to easily push customer, order, and payment information into NetSuite. It can be useful in highly-custom situations with a custom coded checkout process, but for most eCommerce businesses it's not the right fit. In most cases, you'll want to use Shopify, Magento, WooCommerce, or another eCommerce engine.
Here are some things to keep in mind when thinking about using the Stripe order API:
- You'll need to build out your own checkout interface. In other words, collecting address information, managing the customer's card, displaying shipping information/options, etc all needs to be done on your end. There is no pre-built interface for this.
- Similarly, customer order history, user login, etc is all something you'd have to built on your end. There's no pre-built interface for this.
- Integrations with other 3rd party tools (e.g. a cart abandonment tool) are non-existent.
The order API is a good fit if:
- You have a highly-custom checkout process
- You have developer time to put towards your eCommerce frontend
- You have a single SKU, or a very limited number of SKUs.
- You don't need customer history or a complex customer-facing portal.
- There's no plan for traditional eCommerce marketing (retargeting, cart abandonment, discounts, promotions, store credit, etc)
Taxes and shipping
Stripe supports a couple of different pre-built (or completely customized) options to calculate tax and shipping rates for an order.
If you are pushing finalized order data from a custom built eCommerce site, you can omit using Stripe to calculate tax and shipping and just inherit the amounts calculated by your ecommerce engine.
Integration with Shopify, Spree, WooCommerce, Mangento, BigCommerce, etc
The Stripe order flow is different from using a pre-built eCommerce application. Check out the eCommerce documentation for more information on how to use those systems with Stripe & SuiteSync.
Auth-fulfill-capture or auth-capture-fulfill workflows
Check out the auth-capture documentation documentation.