Articles in this section

Shopify - NetSuite integration app release notes, 2026.10.1

These release notes describe enhancements and bug fixes included in version 2026-10-1 of the Shopify–NetSuite integration app.

What's enhanced

New GraphQL billing flow for Shopify payment capture

A new GraphQL-based flow, NetSuite billing to Shopify billing (add), is now available for syncing payment captures from NetSuite to Shopify. The flow uses Shopify Admin GraphQL API version 2026-04 instead of the REST transactions.json endpoint to sync payment captures from NetSuite to Shopify.

The existing REST-based flow remains available in the Billing flow group and is renamed [Deprecated] NetSuite billing to Shopify billing (add). To use GraphQL-based payment processing, switch from the deprecated flow to the new NetSuite billing to Shopify billing (add) flow.

The new flow uses your existing Capture order payments in setting to determine how payments are recorded in Shopify. No additional billing setting is introduced.

Who it’s for: Merchants who sync payment captures from NetSuite to Shopify.

What changed:

  • A new GraphQL-based NetSuite billing to Shopify billing (add) flow is available.
  • The existing REST-based flow remains available but is marked [Deprecated].
  • The new flow uses the existing billing configuration, including the Capture order payments in setting. No additional billing setting is introduced.
  • Shopify GraphQL errors are displayed as actionable flow errors on the integration dashboard.

Action required:

If you're currently using the deprecated REST-based flow, follow these steps to switch to the new GraphQL flow:

  1. Go to Flows > Billing.
  2. Disable [Deprecated] NetSuite billing to Shopify billing (add).
  3. Turn on the new NetSuite billing to Shopify billing (add) flow.
  4. Confirm that the Capture order payments in setting under Settings > Billing is configured correctly for your payment-capture workflow.

Do not enable both the deprecated REST flow and the new GraphQL flow simultaneously, as this could result in duplicate payment processing.

For more information, see Configure the GraphQL billing flow.

Support for sales channel publishing at the product variant level

You can now control Shopify sales-channel publishing at the product variant level using the Shopify-NetSuite integration app.

Previously, publishing controls in the integration app applied only at the product level.

This enhancement uses Shopify Admin GraphQL API version 2026-07.

Who it’s for: Merchants who manage product variant visibility across multiple Shopify sales channels, Markets, and catalogs.

What changed:

  • The existing Shopify Product Visibility field on NetSuite item records can now control sales-channel publishing for individual variants.
  • Existing variants can be published or unpublished for supported Shopify sales channels and catalogs.
  • New variants can initially remain unpublished and be selectively published during synchronization based on the NetSuite field Item > eTail > Shopify > Shopify Product Visibility values set for Variants.
  • Existing product-level publishing behavior remains unchanged.
  • A new Manage Shopify Markets and catalogs from NetSuite setting extends publishing control to Shopify catalogs. When enabled, each product and variant is published to catalogs selected in the Shopify Product Visibility field (Item > eTail > Shopify > Shopify Product Visibility) and unpublished from any catalogs not selected in that field. Items with only sales channels selected in the Shopify Product Visibility field are removed from all Markets and catalogs on each sync.

Action required: Before using variant-level publishing, ensure the parent product is already published to the required sales channel. Variants cannot appear in a channel unless their parent product is published there first. Then:

  1. Go to Settings > Product and select Sync published scope from NetSuite to Shopify.
  2. Set the Shopify Product Visibility field on the relevant NetSuite item records.
  3. To also manage publishing to Shopify catalogs, enable Manage Shopify Markets and catalogs from NetSuite under Settings > Product.

SuiteTax support for the Shopify – NetSuite integration app

The Shopify – NetSuite integration app now supports NetSuite accounts that use SuiteTax. Merchants can synchronize tax information across supported order, billing, refund, return, cancellation, and order-export flows.

Who it’s for: Merchants using SuiteTax as their NetSuite tax engine, including merchants who enable SuiteTax after installing the integration app.

What changed:

  • Added SuiteTax support for order imports, automatic billing for cash sales and invoices, refund imports, returns and return authorizations, cancellations, and order exports from NetSuite to Shopify.
  • Added support for applicable NetSuite tax calculation preferences during synchronization.
  • Added support for tax-inclusive pricing.
  • Updated the default Celigo Shopify Order Export [<store>] saved search to use a SuiteTax-compatible customer email for new installations and newly added stores.

Action required:

For merchants using the NetSuite order to Shopify order (add) flow, the required action depends on the installation and SuiteTax status:

  • New installations or newly added stores using the updated saved-search: No action is required, including when SuiteTax is already enabled in NetSuite.
  • Existing stores without SuiteTax: No action is required if customer emails are exporting successfully. Leave the working saved search unchanged.
  • Existing stores with SuiteTax already enabled: Check the store-specific order export saved search. No action is required if the compatible customer email column is present and returns the customer’s email address. Update the column if it is missing or incompatible.
  • Existing stores enabling SuiteTax later: Check the saved search after enabling SuiteTax. NetSuite can remove the previous, incompatible email column. If this happens, manually update the saved search with the customer email to ensure customer information continues to export to Shopify.

Saved-search correction: For affected stores, update Celigo Shopify Order Export [<store>] in NetSuite to use the standard customer email column (customer.email) with the result label exactly Email. Replace the previous customerMain.email column if it remains, or add the compatible column if it is missing. Ensure only one column is labeled Email. No flow mapping changes are required.

Without this correction, Shopify orders can be created without customer information even when the NetSuite customer record contains an email address.

Note: Updating the NetSuite bundle or upgrading the integration app does not automatically update existing store-specific saved searches.

What's fixed

Refund imports now correctly process multiple entries for the same order line

The Shopify – NetSuite integration app now correctly calculates refunds when a third-party return app creates multiple refund entries for the same Shopify order line.

Third-party return apps such as ReturnZap and Loop Returns share refund data in a non-standard format; instead of a single consolidated entry per order line, they split multi-quantity refunds into multiple lines with the same line_item_id. In such a scenario, the integration app considers just the first line and ignores the rest of the quantities in other lines, creating under-credited NetSuite credit memos with incorrect quantities, subtotals, or tax amounts.

The integration app now combines the quantity, subtotal, and tax amounts from all entries sharing the same line_item_id when creating the NetSuite credit memo.

Who it’s for: Merchants using third-party return apps, such as ReturnZap or Loop Returns, to process multi-quantity returns.

Action required: None. The fix is applied automatically.

Customer deposits are now created for Shopify payments captured after order import

The Shopify – NetSuite integration app now creates the corresponding NetSuite customer deposit when a Shopify payment is captured after the order has already been imported.

Previously, if an order was imported while its payment was authorized but not yet captured, capturing the payment later might not create the corresponding customer deposit. As a result, the related NetSuite invoice could remain unpaid even though the Shopify order had been paid. No flow error was reported.

What changed:

  • A payment captured after order import can now trigger customer-deposit creation.
  • The integration app periodically checks for customer deposits missed during real-time processing and creates them automatically.
  • Existing duplicate-prevention controls continue to prevent duplicate customer deposits.

Who it’s for: Merchants using customer deposits with manual Shopify payment-capture workflows.

Action required: None. The fix is included in the existing customer-deposit processing flow.

NetSuite GL account dropdown now includes accounts beyond the first 100

The NetSuite GL account dropdown under Settings > Payout > Business entity transaction type to account mapping now includes eligible accounts beyond the first 100 results, allowing merchants to select the required accounts when configuring GraphQL payout mappings.

The refresh controls for Business entity and NetSuite GL account have moved from individual mapping rows to the corresponding column headings at the setting level. Use these refresh controls to load available options when adding or editing entries.

An existing dropdown may initially display only its saved selection. Select the corresponding refresh icon to load all available options before choosing a different value or configuring a new entry.

Who it’s for: Merchants adding or editing GraphQL payout account mappings, including those whose required GL accounts were unavailable because of the 100-account limit.

Action required:

  1. Go to Settings > Payout > Business entity transaction type to account mapping.
  2. Select the refresh icon beside the relevant Business entity or NetSuite GL account column heading to load the available options.
  3. Wait for loading to finish, then add or edit the mapping entry and select the required values.
  4. Select Save.

Configure account mappings before switching to the GraphQL payout flow

The Shopify payout to NetSuite payout and deposit flow requires account mappings for every Shopify business entity that processes payouts, including the primary business entity.

The Business entity transaction type to account mapping setting is initially empty and must be configured manually. Values from the following deprecated settings are not automatically copied into this mapping:

  • [Deprecated] NetSuite bank deposit account
  • [Deprecated] NetSuite account to track adjustments and fees
  • [Deprecated] NetSuite account to track variance
  • [Deprecated] NetSuite account to track Marketplace sales tax

The GraphQL payout flow remains off until you turn it on. Complete the required account mappings before enabling and testing the flow.

Who it’s for: Merchants switching from the deprecated REST payout flows to the GraphQL payout flow.

Action required:

  1. Go to Settings > Payout > Business entity transaction type to account mapping.
  2. Select the refresh icons beside the Business entity and NetSuite GL account column headings and wait for the available options to load.
  3. For each business entity that processes payouts, map Charge, Refund, Adjustment, and Variance (catch-all) to the appropriate NetSuite GL accounts.
  4. Save the configuration, then enable and test Shopify payout to NetSuite payout and deposit.
  5. Validate the resulting NetSuite records before moving the production schedule to the GraphQL flow and disabling the deprecated payout flows.

For more information, see Configure the GraphQL payout flow.

Related articles