Articles in this section

Configure the new GraphQL-based Product flows

Shopify has announced the deprecation of REST-based product flows, requiring all public apps using GraphQL or REST product APIs to transition to the new GraphQL product APIs by February 1, 2025. Celigo has been granted a special extension, allowing support for this transition until April 1, 2025. However, we recommend migrating to the new GraphQL-based product flows as early as possible to ensure a smooth and seamless transition. Celigo will phase out the existing REST-based product flows and adopt Shopify’s productSet mutation. For more details about this Shopify update, refer to the deprecation timelines for the new GraphQL product APIs.

New flows

The following GraphQL-based product flows are now available in the Shopify - NetSuite integration app. You can transition to these new flows using the instructions provided below.

  • Flows > Product

    • NetSuite item to Shopify product (add or update)

    • NetSuite matrix item to Shopify product (add or update)

  • Flows > Inventory

    • Shopify product ID to NetSuite item (mass update)

Deprecating flows

Shopify will deprecate REST-based product flows on 1 April 2025, and Celigo will disable the following REST-based flows at that time.

  • Flows > Product

    • (To be deprecated) NetSuite image to Shopify image (add or update)

    • (To be deprecated) NetSuite item to Shopify product (add or update)

    • (To be deprecated) NetSuite matrix item to Shopify product (add or update)

Fig1.png
  • Flows > Inventory

    • (To be deprecated) Shopify product ID to NetSuite item (mass update)

Fig2.png

The functionality of the NetSuite image to Shopify image(add or update) flow will be incorporated into the logic of the other two flows, so it will no longer exist as a separate flow.

Steps to take:

  1. Transition to GraphQL-based flows: To avoid disruptions, disable REST-based product flows and enable GraphQL flows before 1 April 2025.

  2. Re-authorize Shopify connection: Once GraphQL flows are enabled, you must reauthorize the Shopify connection. 

  3. Recreate custom mappings: If you’ve implemented custom mappings in REST flows, ensure equivalent mappings are correctly configured in the GraphQL flows.

Once migrated, you can use Shopify’s enhanced 2000 Variants feature, which provides better scalability and functionality for managing products.

Transition to GraphQL-based product flows

To transition REST-based product flows to GraphQL:

  1. Open your Shopify - NetSuite integration app.

  2. Navigate to Flows > Product.

    Fig3.png
  3. Turn on the toggle for the following flows:

    • NetSuite item to Shopify product (add or update)

    • NetSuite matrix item to Shopify product (add or update)

      Fig4.png
  4. Re-authorize Shopify connection: 

    • Reauthorize the Shopify connection if you use the Sync published scope from NetSuite to Shopify setting to sync scopes.

    • If you enable this setting after reauthorization, reauthorize the connection again to sync the scopes.

      Note

      If you enable the Sync published scope from NetSuite to Shopify setting before authorizing the connection, you will see this error: “Unable to get a response from Shopify. Refresh the page and try again. If the issue continues, contact Celigo Support. Shopify returned: Access denied for publications field. Request access: 'read publications' access scope”

       

      Fig5.png
  5. Recreate custom mappings: 

    • If you’ve implemented custom mappings in REST flows, ensure equivalent mappings are correctly configured in the GraphQL flows. 

    • The GraphQL-based Product API utilizes the productSet mutation outlined in the Shopify productSet mutation article. Only fields included in this mutation can be added to custom mappings.

  6. Turn off the toggle for the following flows:

    • (To be deprecated) NetSuite item to Shopify product (add or update)

    • (To be deprecated) NetSuite matrix item to Shopify product (add or update)

      Fig6.png
  7. Schedule the flow: Once the flow is enabled, schedule it according to your business requirements. You can refer to the current REST-based flow schedule and replicate the same settings.

Note

  • Plan the transition ahead of time to avoid disruptions after 1 April 2025.

  • Review your existing configurations and ensure all necessary updates are applied.

GraphQL-based product flow limitations

There are certain limitations when using GraphQL-based flows. These details will help you understand the constraints and necessary adjustments for a seamless migration and enhanced functionality.

Limitations:

  • Price lists: The price list updates are supported for products with fewer than 100 variants during the first sync. For products with more than 100 variants, the initial sync (Create scenario) will not include price list updates for variants beyond 100. However, in subsequent runs (Update scenario), the price list details will sync correctly.

  • HS codes: The HS codes are supported only for products with fewer than 100 variants. HS code updates are not supported for products with more than 100 variants.

  • Track inventory for variants: Shopify does not support setting the Track Inventory field individually for each variant. For products with more than 100 variants, inventory details will not sync during the first run (Create scenario). In the next scheduled run (Update scenario), inventory details for variants beyond 100 will sync correctly.

  • Real-time product ID and inventory item ID sync: The real-time flow for writing back product_id and inventory_item_id to NetSuite is constrained by Shopify webhooks, which support a maximum of 100 variants. For products with more than 100 variants, users must trigger or schedule the mass ID update flow to sync IDs efficiently.

  • Publication scope

    • Shopify allows the addition of new publications but restricts the removal of any existing publications. 

    • You will need to re-authorize the Shopify connection to sync the scopes for new products and any additions to the scope for existing products.

Additional information

Field mappings:

  • GraphQL-based flows use 2.0 mappings, which have been moved to the new Mapper 2.0 from the previous REST-based versions.

  • The metadata structure has also been updated and will vary in GraphQL-based flows, enhancing data organization and compatibility.

  • To update metafield information for both variants and the parent level, we recommend configuring the "Specify your Shopify metafield components for products and variants" setting under Settings > Product instead of using mappings.

    • If you previously updated metafields via mappings, ensure you now use the above-mentioned setting.

    • If you have already configured this setting under Settings > Product, no further updates are necessary.

Was this article helpful?
0 out of 0 found this helpful

Comments

6 comments
Date Votes
  • I do not see new flows in the my integration, also the old flows are not marked as to be deprecated.

    0
  • Dipali Mose, We are rolling this out in a phased manner. You will be able to see the new flows in your integration by January 21st. Thank you for your patience!

    1
  • There are a lot of gotcha's in switching over. If using saved search for metafields, the meta description and meta title fields in Shopify need to be mapped using the seo object. Using the metafield will fail on update with an error that doesn't point to the issue. You have to add the productOptions object for non matrix items and the values key needs to be an object with a name="Default Title" property. Variants can't have weights, units or cost. Not sure how this data will get into Shopify. There is a lot more but hopefully there will be more documentation coming soon.

    0
  • Hi Timothy Blevins 
    Thank you for your valuable feedback. For detailed instructions on mapping product-level metafields using a saved search, please refer to the article. We are leveraging Shopify’s productSet mutation, which limits field access to only those fields supported by the mutation. Certain fields, such as weight, are no longer available through productSet (they have been moved from Shopify's Product API to Shopify’s Inventory APIs). As a workaround, you can store these values in a metafield.
    If you have any additional questions about the migration, please create a support ticket for further assistance.

    Regards
    Nilesh

    0
  • 3 questions: 

     

    1. In the previous iteration of the product flows, there were advanced settings per mapping that allowed you to ‘Only perform the mapping when’ and allowed you to select things like ‘Creating a record’. We used this setting extensively, specifically to only map fields on creation, but not on update. How do we accomplish this with the new GraphQL flows?

     

    2. In our old Shopify product flows, we used the ‘Sort items (matrix/variation) in Shopify’ configuration outlined here: https://docs.celigo.com/hc/en-us/articles/360058287232-Sort-items-matrix-variation-in-Shopify How do we create these mappings using the new GraphQL flows?

     

    3. Since weight is not available in the productSet mutation from Shopify, how do I map this essential field using the new GraphQL flow?

    0
  • @Vince Arnone, thank you for reaching out and creating a support ticket for your queries. Our support team will review your concerns and respond to your specific queries shortly. If you have any additional information to share, please feel free to update the ticket. We appreciate your patience!

    0

Please sign in to leave a comment.