Bulk create and update products via graphql

Topic summary

A developer is building a Shopify app that syncs products daily from an ERP system via FTP. The app needs to determine which products require creation, updates, or deletion.

Current Approach:

  • Using bulkOperationsRunMutation for batch operations
  • Running mutations sequentially (create → update → delete), waiting for each to complete

Key Challenges:

  • Cannot perform create, update, and delete operations in a single bulk mutation
  • Seeking optimal strategy for handling variants during create/update operations

Status: The developer is asking the community for:

  • Better approaches to handle multiple operation types on the same product batch
  • Best practices for managing product variants within these bulk operations

No responses or solutions have been provided yet.

Summarized with AI on November 1. AI used: claude-sonnet-4-5-20250929.

Hey all,

I’m building a Shopify app that needs to sync products (and their variants) from an ERP once a day. The ERP exports product data to an FTP server, and my app reads that data to figure out:

  1. Which products need to be created
  2. Which products need to be updated
  3. Which products need to be deleted

I’m using bulkOperationsRunMutation to handle these operations in batches, but I’ve noticed you can’t do create, update, and delete all in one go. Right now, I’m leaning towards calling one bulk mutation at a time—waiting for each to finish—before starting the next.

Has anyone found a better approach for handling multiple actions (create/update/delete) on the same batch of products and their variants? Also, what’s the best strategy for creating or updating variants in the same step?

Any insights or suggestions would be awesome. Thanks!