Developer Extensibility Guide

Introduction

Welcome to the Orderful for Netsuite Developer Extensibility Guide.
This document explains how developers can extend and customize the SuiteApp by integrating with its data flow stages. By understanding the data flow and available extension points, developers can adapt the SuiteApp to meet specific business needs.

This guide will cover:

  • Overview of the connector data flow stages
  • How to hook into each stage
  • Input and output specifications for each stage

Overview

You can think of the Orderful for Netsuite app as having two distinct directional flows:

inbound -transactions from the Orderful platform into Netsuite

outbound - transactions going from Netsuite into the Orderful platform

The these flow process data through the following stages:

  1. Input Stage – Data is received from an HTTP REST call (inbound) or a Netsuite triggered event (outbound).
  2. Data Aggregation – Input data is prepared and supporting data is fetched (e.g. Customer records, related Item data etc).
  3. Mapping Stage – Data is mapped to from the source to the target
  4. Result Stage – Results are send as an EDI transaction to Orderful (outbound) or create/update a record in Netsuite (inbound)

For example the inbound flow can be visualized like this:

Meanwhile the outbound flow can be thought of like this


Below is a detailed description of each stage and any extension points for developers to modify the behavior.

Input Stage

This stage is straight forward in that there's little business logic and it serves to begin the workflow.

Inbound

EDI transactions from the Orderful platform are received and begin the flow. They are received one at a time.

Outbound

A Netsuite object is created and/or modified and begins the flow.

Data Aggregation Stage

This stage is where additional information is gathered and decorated in order to ensure everything is available for mapping. If there is consolidation happening, related objects (e.g. other invoices) happen here.

🚧

Coming Soon

This is an area of extensibility currently under development

Mapping Stage

This stage can be configured in a self-service, per customer manner using our JSONata engine.

JSONata is a powerful JSON transformation and query language. It works by having input JSON, a JSONata transformation expression and creating an output.


You can learn more about JSONata here.

You can see an example of a mapping transformation here.

Result Stage

Similar to the input this stage is straight forward and without customization.

Inbound

The Netsuite Object (e.g. Sales Order) is created or updated

Outbound

An EDI transaction is sent to the Orderful platform