Support for Shopify API version 2026-04
The integration app now supports Shopify API version 2026-04, upgraded from 2025-07. Compatibility has been validated across changes introduced in 2025-10, 2026-01, and 2026-04. Existing integrations continue to run without disruption.
Key changes:
- Store credit refunds via GraphQL: As of April 22, 2026, Shopify requires apps that issue store credit during refunds to use GraphQL refund flows instead of legacy REST. The integration app now uses refundCreate and returnProcess mutations for all refunds involving store credit, keeping your refund flows compliant with Shopify's updated requirements.
- Order transaction authorization code: Order transaction authorization code: Shopify has deprecated the authorizationCode field on Order Transaction and replaced it with paymentId. The integration app now automatically reads paymentId, so no action is required unless you have custom mappings using authorizationCode. If you use custom mappings, remove the authorizationCode mapping and use paymentId instead.
- ProductVariant tax code field deprecated: Shopify has deprecated the taxCode field on the ProductVariant object. If you have taxCode configured in your mappings, your integration may display errors. Remove taxCode from your mappings to avoid errors.
Units of Measure support for Shopify-NetSuite flows
You can now sync quantities between Shopify and NetSuite without conversion errors when the Units of Measure (UOM) feature is enabled in NetSuite. Previously, fulfillment, refund, return authorization, and item receipt flows read the base-unit quantity field, causing misidentified partial refunds, incorrect per-unit rate calculations, and inaccurate remaining-quantity checks; now they read quantityUOM, reflecting what was actually transacted.
Key changes:
- Per-unit rate calculations in refund flows now use UOM-adjusted quantities, preventing overcharges or undercharges on refunded line items.
- Remaining-quantity checks during fulfillment now use UOM-adjusted values, eliminating false partial-fulfillment flags on fully fulfilled orders.
- Return authorization flows no longer misidentify full returns as partial returns due to base-unit quantity mismatches.
If you have UOM enabled, update the quantity formula in the following two NetSuite saved searches before your next sync:
- Celigo Shopify Item Receipt Lookup Search: Update the Quantity formula column to: ABS({quantityuom})
- Celigo Shopify Return Authorization Search: Update the Quantity Fulfilled/Received formula column to: NVL({quantityshiprecv}, 0) * NVL({quantityuom}, 0) / NULLIF({quantity}, 0)
See Update saved search formulas for Units of Measure support for step-by-step instructions.
Enhanced Shopify metafield sync for item and matrix flows
A new Post metafields to Shopify import step is added to the NetSuite item to Shopify product (add or update) and NetSuite matrix item to Shopify product (add or update) flows.
Metafield sync is now decoupled from the product sync step and handled through a dedicated step using Shopify’s GraphQL metafieldsSet mutation. This change resolves failures caused by Shopify query cost limits when syncing products with many variants and metafields.
As part of this update:
- Metafields are no longer processed within the product sync step and are instead handled separately through the new import
- Metafield deletion has been updated to use GraphQL APIs for improved reliability
Notes
- On the first run after the update, metafields sync for the first 100 variants. Metafields for additional variants sync in subsequent runs
- Existing installs are not affected. The new import is activated only after you update your integration
Mapping enabled in item ID map real-time flow
Mapping configuration is now enabled on the Post Shopify IDs to NetSuite items import in the Shopify product details to NetSuite item ID map record (update) real-time flow. You can now configure mappings directly in the real-time flow to align with your business requirements.
Note: Mappings in the mass update flow (Shopify product ID to NetSuite item mass update) are independent and do not apply to the real-time flow. You must configure mappings separately in each flow.