---
title: Product Variant Field Cleanup - Shopify developer changelog
description: >-
  Shopify’s developer changelog documents all changes to Shopify’s platform.
  Find the latest news and learn about new platform opportunities.
source_url:
  html: 'https://shopify.dev/changelog/product-variant-field-cleanup'
  md: 'https://shopify.dev/changelog/product-variant-field-cleanup.md'
metadata:
  effectiveApiVersion: 2024-07
  affectedApi:
    - displayName: Admin GraphQL API
      handle: admin-graphql
  primaryTag:
    displayName: API
    handle: api
  secondaryTag:
    displayName: Deprecation Announcement
    handle: deprecation
  indicatesActionRequired: true
  createdAt: '2024-06-05T21:43:13-04:00'
  postedAt: '2024-07-01T00:00:00-04:00'
  updatedAt: '2024-06-11T21:21:59-04:00'
  effectiveAt: '2024-07-01T00:00:00-04:00'
---

July 1, 2024

Tags:

* Action Required
* Admin GraphQL API
* 2024-07

# Product Variant Field Cleanup

As of GraphQL Admin API version 2024-07, various fields on Product Variants that are duplicates of the linked Inventory Item will be removed from the Product Variant model, input types, and webhooks, as well as restrictions to

### GraphQL Fields

In general the fields removed (and their replacement) are:

* `fulfillmentService`: The fulfillment service is now defined by where the item is stocked, and the fulfillment services that own those locations.
* `harmonizedSystemCode`: This is replaced by the `harmonizedSystemCode` field of the inventory item.
* `inventoryManagement`: This is replaced by the `tracked` field from the inventory item. Inventory management information is more clearly defined with both the `tracked` and `fulfillmentService` fields on the inventory item.
* `requiresShipping`: This is replaced by the `requiresShipping` field of the inventory item.
* `sku`: This field will continue to be returned on the Product Variant model, but is not directly editable. Rather the field will just proxy the `sku` field from the inventory item.
* `weight` and `weightUnit`: These fields are replaced by the weight type in `InventoryItem.measurement.weight`.

More specifically, these fields are kept or removed:

* From `ProductVariantInput`: `fulfillmentServiceId`, `harmonizedSystemCode`, `inventoryManagement`, `requiresShipping`, `sku`, `weight`, and `weightUnit` are all removed.
* From `ProductVariantsBulkInput`: `fulfillmentServiceId`, `harmonizedSystemCode`, `requiresShipping`, `sku`, `weight`, and `weightUnit` are all removed.
* From `ProductVariantSetInput`: `harmonizedSystemCode`, `requiresShipping`, `weight`, and `weightUnit` are all removed. `sku` is kept.
* From `ProductVariant` return type: `fulfillmentService`, `harmonizedSystemCode`, `inventoryManagement`, `requiresShipping`, `weight`, and `weightUnit` are all removed. `sku` is kept.

### Metafields

As part of this work, you'll no longer be able to set the `harmonized_system_code` metafield under the `global` namespace for Product Variants. This was an alternative way of updating the `harmonized_system_code` of a variant, but since variants are no longer going to have the `harmonized_system_code` field, the metafield is being removed.

### Webhooks

The Product Variant webhooks are also seeing some fields removed, namely:

* `fulfillment_service`
* `inventory_management`
* `grams`
* `weight`
* `weight_unit`
* `requires_shipping`
