Dynamic Complexity Cost for `productSet` Mutation: What's New

Dynamic Complexity Cost for `productSet` Mutation: What's New

Shopify Updates: 

Understanding the New Dynamic Complexity Cost

The `productSet` mutation now utilizes dynamic complexity costing, offering a more accurate reflection of the actual computational cost of operations. This update is designed to optimize resources and improve efficiency across various product-related processes.

Key Changes

  • Instead of a fixed cost of 50 points for all `productSet` operations, the mutation now calculates complexity based on the actual tasks performed.
  • Base cost is now 10 points, and additional costs are determined as follows:
  • Per variant: 0.2 points
  • Per variant file: 0.6 points
  • Per variant metafield: 0.4 points
  • Per product metafield: 0.4 points
  • Per product file: 1.9 points

The total complexity is calculated using this formula:

10 + (variants × 0.2) + (variant_files × 0.6) + (variant_metafields × 0.4) + (product_metafields × 0.4) + (product_files × 1.9)

Benefits for Your Apps

  • Lower costs for most operations: Over 99.5% of existing productSet operations now cost less than the previous fixed cost of 50 points. Simple product updates, for example, can now cost as little as 10–20 points.
  • Support for larger products: The mutation now supports up to 2,048 variants per product for merchants on all plans, a significant increase from the previous limit of 100 variants. This update accommodates merchants with more complex product catalogs.

Cost Examples

Here are specific examples illustrating the cost improvements:

  • Simple product update (1 variant, no files or metafields):
    Previous cost: 50 points
    New cost: 10 points (80% reduction)
  • Medium complexity product (20 variants, 5 product metafields):
    Previous cost: 50 points
    New cost: 16 points (68% reduction)
  • Complex product (200 variants, 10 files, 20 metafields):
    Previous cost: 50 points
    New cost: 77 points (reflects actual resource usage)

Migration Guidance

For most apps, no changes are required since operations will automatically benefit from the lower complexity costs. For apps dealing with high-complexity products that exceed the 1,000-point single query limit, consider these strategies:

  • Leverage bulk mutations for very large operations.
  • Break down complex operations into separate calls, using `productSet` for core product data and `metafieldsSet` and `fileCreate` for additional data.

Conclusion

This change to the `productSet` mutation paves the way for more efficient, scalable, and cost-effective operations. It empowers developers and merchants alike to handle a wide range of product complexities with greater ease.

Back to blog