Shopify > NetSuite - fulfillments

Introduction

This flow was designed on the basis that orders are typically fulfilled in NetSuite.

A Shopify GraphQL query retrieves fulfilled/partially fulfilled orders created after a given date, with a financial status of authorized, paid or pending. The lookback date is calculated by referencing a datefrom flow variable in the created_at section of the GraphQL query.

This data is then compared with NetSuite. If the order is not in a fulfilled state, the item fulfillment is pushed with a shipped status. Partial fulfillments are supported.

Process flow snapshot

Click to view process flow snapshot

Limitations

Limitation
Summary

Carrier information in NetSuite.

Out of the box, NetSuite does not include a 'carrier' field in the package section of item fulfillments.

Shopify GraphQL error handling

There is a known limitation with error handling for Shopify GraphQL. Please refer to the Error handling for Shopify GraphQL section for more information and a suggested approach that you may wish to adopt in your flows.

Assumptions

No assumptions noted for this flow.

Customisation

To ensure that this process flow runs as required, some customisation options are available. These are documented in the following sections:

Flow variables

The table below summarises flow variables defined for this process flow.

Flow variable
Summary
Default value

datefrom

Set the relative time period to look back for new fulfillments in Shopify. The default setting is for a long lookback period, but you can update this value as required.

-10 days

For information on working with flow variables, please refer to our flow variables documentation.

Process flow shapes

This process flow includes some shapes that can be configured with your own settings. Please see guidelines in the table below.

Shape
Notes

Trigger

This GraphQL query on the Shopify connector retrieves fulfillments/partial fulfillments that have been created since your given lookback period (based on the value of the datefrom flow variable). You should ensure that the trigger schedule aligns with your lookback period, or run this flow manually.

Notify

This flow is designed in a try/catch structure, so notifications are generated if any part of the flow fails. To achieve this, the catch route includes a notify shape, which must be configured for your own notification preferences. Alert level: Defaults to error but can be changed if needed Channel: Defaults to email + log but can be changed if needed Email Limit: Defaults to 5 but can be changed if needed Notification Group: Replace the notify placeholder which your required notification group. Message: If required, you can change the placeholder message. For more information, please refer to our Notify shape and Notification groups pages.

Connector (Shopify)

If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured: Source instance : Set to your required Shopify instance. Source endpoint : Set to POST Get fulfilled orders via graphql Variables : Leave the Filter variable as it defaults.

Connector (NetSuite)

If you did not add or select a NetSuite instance during the blueprint installation process, the following settings must be configured: Source instance : Set to your required NetSuite instance. Source endpoint : Set to POST suiteQL

Query: Leave as the default

Connector (NetSuite)

If you did not add or select a NetSuite instance during the blueprint installation process, the following settings must be configured: Source instance : Set to your required NetSuite instance. Source endpoint : Set to POST Createe fulfillment from SO

Variables: Leave NetSuite Order ID as the default

Reference

Reference information for this process flow is documented in the following sections:

Scripts in this process flow

Script
Summary

Determine what needs fulfilling

Checks the SKUs from Shopify to match the fulfillment lines needed for Netsuite.

Cross-reference lookups in this process flow

This process flow does not use cross-reference lookups.

Last updated

Was this helpful?