Skip to main content

InventoryItem

Requires read_inventory access scope.

Subscribe to field-level changes on the InventoryItem GraphQL Admin API object. You can subscribe to create, delete, and update events, as well as changes to specific fields.

Each topic corresponds to a commerce resource (for example, an inventory item) that can exist independently within its domain. Child entities that depend on a parent within the same domain don't have their own topic. Instead, changes to child entities trigger a delivery on the parent topic. Calculated fields, derived fields, auto-updated timestamps, and cross-domain fields aren't available as triggers.

shopify.app.toml

[events]
api_version = "unstable"

[[events.subscription]]
handle = "my_inventory_item_events"

topic = "InventoryItem"
actions = ["update"]
triggers = [
"inventoryItem.sku",
"inventoryItem.tracked"
]

uri = "https://your-app.com/events"

query = """
query inventory_item_details($inventoryItemId: ID!) {
inventoryItem(id: $inventoryItemId) {
id
sku
tracked
requiresShipping
measurement {
weight {
unit
value
}
}
}
shop {
id
}
}
"""

Field-level triggers for InventoryItem subscriptions.

All triggers require the read_inventory access scope, and those triggers that require additional scopes are documented where relevant. Deprecated triggers are listed last.

Subscriptions can include multiple triggers. Use the shopify-webhook-id header for deduplication when handling duplicate deliveries.

Custom queries aren't limited to InventoryItem. They can query the full GraphQL Admin API.

Anchor to list-of-topics-inventoryItem.*
inventoryItem.*

Fires when events involve the InventoryItem object.

The "create" and "delete" actions are only relevant within the context of this parent topic. Use fields_changed to follow or replicate impacted data after a delete event. Define a custom query to retrieve specific fields from create events.

inventoryItem.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryItem, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.countryCodeOfOrigin
inventoryItem.countryCodeOfOrigin

Fires when the countryCodeOfOrigin field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The countryCodeOfOrigin field represents the ISO 3166-1 alpha-2 country code of where the item originated from.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.harmonizedSystemCode
inventoryItem.harmonizedSystemCode

Fires when the harmonizedSystemCode field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The harmonizedSystemCode field represents the harmonized system code of the item.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.inventoryLevel.*
inventoryItem.inventoryLevel.*

Fires when the inventoryLevel field on the InventoryItem object changes.

inventoryItem.inventoryLevel.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryItem.inventoryLevel, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The inventoryLevel field represents the inventory item's quantities at the specified location.

Variables: inventoryItemId, inventoryLevelId

Anchor to list-of-topics-inventoryItem.inventoryLevel.isActive
inventoryItem.inventoryLevel.isActive

Fires when the isActive field on the InventoryLevel object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The isActive field indicates whether the inventory level is active.

Variables: inventoryItemId, inventoryLevelId

Anchor to list-of-topics-inventoryItem.inventoryLevel.quantities.*
inventoryItem.inventoryLevel.quantities.*

Fires when the quantities field on the InventoryLevel object changes.

inventoryItem.inventoryLevel.quantities.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryItem.inventoryLevel.quantities, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The quantities field represents the quantity of an inventory item at a specific location, for a quantity name.

Variables: inventoryItemId, inventoryLevelId, quantitiesName

Anchor to list-of-topics-inventoryItem.inventoryLevel.quantities.quantity
inventoryItem.inventoryLevel.quantities.quantity

Fires when the quantity field on the InventoryQuantity object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The quantity field represents the quantity of an inventory item at a specific location, for a quantity name.

Variables: inventoryItemId, inventoryLevelId, quantitiesName

Anchor to list-of-topics-inventoryItem.measurement.*
inventoryItem.measurement.*

Fires when the measurement field on the InventoryItem object changes.

inventoryItem.measurement.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryItem.measurement, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The measurement field represents the packaging dimensions of the inventory item.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.measurement.weight.*
inventoryItem.measurement.weight.*

Fires when the weight field on the InventoryItemMeasurement object changes.

inventoryItem.measurement.weight.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under inventoryItem.measurement.weight, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The weight field represents the weight of the inventory item.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.measurement.weight.unit
inventoryItem.measurement.weight.unit

Fires when the unit field on the Weight object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The unit field represents the unit of measurement for value.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.measurement.weight.value
inventoryItem.measurement.weight.value

Fires when the value field on the Weight object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The value field represents the weight value using the unit system specified with unit.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.provinceCodeOfOrigin
inventoryItem.provinceCodeOfOrigin

Fires when the provinceCodeOfOrigin field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The provinceCodeOfOrigin field represents the ISO 3166-2 alpha-2 province code of where the item originated from.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.requiresShipping
inventoryItem.requiresShipping

Fires when the requiresShipping field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The requiresShipping field indicates whether the inventory item requires shipping.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.sku
inventoryItem.sku

Fires when the sku field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

Inventory item SKU.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.tracked
inventoryItem.tracked

Fires when the tracked field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The tracked field indicates whether inventory levels are tracked for the item.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.trackedEditable
inventoryItem.trackedEditable

Fires when the trackedEditable field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The trackedEditable field indicates whether the value of the tracked field for the inventory item can be changed.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.unitCost
inventoryItem.unitCost

Fires when the unitCost field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

Unit cost associated with the inventory item.

Variables: inventoryItemId

Anchor to list-of-topics-inventoryItem.variants
inventoryItem.variants

Fires when the variants field on the InventoryItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The variants field represents a paginated list of the variants that reference this inventory item.

Variables: inventoryItemId, variantsId


Was this page helpful?