# Available process flows (Shopify & NetSuite

## Introduction

This section provides a technical overview of process flows included with the *Shopify & NetSuite* blueprint.

## Available process flows

<table><thead><tr><th width="299.984375">Flow name</th><th>Summary</th></tr></thead><tbody><tr><td><a href="available-process-flows-shopify-and-netsuite/shopify-greater-than-netsuite-sync-locations">Shopify > NetSuite - sync locations</a></td><td>Retrieves all locations from Shopify and then checks which ones exist in NetSuite. In NetSuite, new locations are created, and address details for existing locations are updated.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/netsuite-greater-than-shopify-sync-locations">NetSuite > Shopify - sync locations</a></td><td>Retrieves all locations from NetSuite and then checks which ones exist in Shopify. In Shopify, new locations are created, and address details for existing locations are updated.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/shopify-greater-than-netsuite-create-and-update-products">Shopify > NetSuite - create &#x26; update products</a></td><td>Retrieves new and updated products from Shopify and then checks which ones exist in NetSuite. In NetSuite, new products are created, and existing products are updated.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/netsuite-greater-than-shopify-create-update-companies-contacts-and-payment-terms">NetSuite > Shopify - create/update companies, contacts &#x26; payment terms</a></td><td>Retrieves new and updated companies from NetSuite. If the company name does not exist in Shopify, a new company is created; if the company name exists in Shopify, any new or updated contacts/addresses are added.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/shopify-greater-than-netsuite-create-update-companies-locations-and-contacts">Shopify > NetSuite - create/update companies, locations &#x26; contacts</a></td><td>Updates NetSuite with new/updated companies from Shopify. Payment terms are not synced.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/shopify-greater-than-netsuite-sales-order-creation">Shopify > NetSuite - sales order creation</a></td><td>Retrieves orders from Shopify that were created in a <code>paid</code> or <code>pending</code> state, based on the order's financial status. Depending on this state, orders are created or updated.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/netsuite-greater-than-shopify-order-fulfillments">NetSuite > Shopify - order fulfillments</a></td><td>Retrieves NetSuite orders fulfilled in the last day. Anything that is not in a <code>shipped</code> state is removed and remaining data is cached. We then retrieve and cache required details from Shopify, and the final cache is pushed to Shopify (sending fulfilment IDs and tracking numbers).</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/shopify-greater-than-netsuite-fulfillments">Shopify > NetSuite - fulfillment</a></td><td>Shopify retrieves fulfilled/partially fulfilled orders created after a given date, with a financial status of <code>authorized</code>, <code>paid</code> or <code>pending</code>. This data is compared with Netsuite - if the order is not in a fulfilled state, the item fulfillment is pushed with a <code>shipped</code> status. Partial fulfillments are supported.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/shopify-greater-than-netsuite-order-refunds">Shopify > NetSuite - order refunds</a></td><td><p>Shopify orders last modified after a given date, and in a <code>refunded</code> state are retrieved. The flow then searches for matching orders in NetSuite, retrieving order details and order lines. Next, a </p><p>script determines which specific lines are being refunded by matching the return lines with their SKUs. It then creates an RMA (<em>Return Merchandise Authorisation</em>) from the sales order, followed by a credit memo.</p></td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/netsuite-greater-than-shopify-catalogs-and-pricing">NetSuite > Shopify - catalogs &#x26; pricing</a></td><td>This flow starts by preparing SKUs and variant IDs to support catalogue creation. Catalogues are then retrieved from NetSuite, via a custom field. Having searched Shopify catalogues, a script determines whether new or updated catalogues are needed. </td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/netsuite-greater-than-shopify-make-payment">NetSuite > Shopify - make payment</a></td><td>Current <code>pending</code> orders are retrieved from Shopify, before searching NetSuite for a corresponding payment. If a match is found, the order is updated as <code>paid</code>.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/netsuite-greater-than-shopify-inventory-stock">NetSuite > Shopify - inventory/stock</a></td><td>Items with quantity updates are retrieved from NetSuite and cached. A script extracts unique SKUs and builds a query string to look up these products in Shopify, then the data is filtered and appended to the cache. Shopify inventory data is then compared with cached NetSuite items to determine quantity updates.</td></tr><tr><td><a href="available-process-flows-shopify-and-netsuite/shopify-greater-than-netsuite-sync-all-price-lists">Shopify > NetSuite - sync all price lists</a></td><td><p>Retrieves price lists and associated prices from Shopify, and removes duplicate items, before pulling items from NetSuite (using UPC codes). </p><p>Next, a script matches Shopify SKUs to NetSuite items and inventory item price lists are updated.</p></td></tr></tbody></table>
