Market level product variant Metafields
This document outlines the structure and usage of market-specific metafields for product variants. These metafields enable market-specific order limit tracking, and shipping information display.
1. Market Preorder Count Metafield
Configuration
Key:
market_preorder_count
Type:
json
Namespace:
restockrocket_production
Owner: Product Variant
Purpose
Tracks the current number of preorders for a variant per market
Used for market-specific inventory management
Automatically updated when orders are processed in different markets
Stored as a JSON object mapping market IDs to counts
Accessing in Liquid
{% assign market_preorder_count = product_variant.metafields.restockrocket_production.market_preorder_count.value | json %}
Example value of market_preroder_count =>
{
"market_id_1": 1,
"market_id_2": 5,
"market_id_3": 3
}
2. Market Preorder Max Count Metafield
Configuration
Key:
market_preorder_max_count
Type:
json
Namespace:
restockrocket_production
Owner: Product Variant
Purpose
Sets the maximum number of preorders allowed per market
Controls market-specific inventory policy switching
Triggers blocking orders when count reaches max in specific markets
Stored as a JSON object mapping market IDs to maximum counts
Accessing in Liquid
{% assign market_preorder_max_count = product_variant.metafields.restockrocket_production.market_preorder_max_count.value | json %}
Example value of market_preorder_max_count =>
{
"market_id_1": 10,
"market_id_2": 15,
"market_id_3": 10
}
Example Usage: Market-Specific Preorder Count and Max Count
{% assign variant = product.selected_or_first_available_variant %}
{% assign market_counts = variant.metafields.restockrocket_production.market_preorder_count.value | json %}
{% assign market_max_counts = variant.metafields.restockrocket_production.market_preorder_max_count.value | json %}
{% assign current_market = shop.market.id %}
{% if market_max_counts[current_market] %}
{% assign current_count = market_counts[current_market] %}
{% assign max_count = market_max_counts[current_market] %}
{% assign spots_remaining = max_count | minus: current_count %}
{% if spots_remaining > 0 %}
<div class="preorder-availability">
<span class="spots-left">{{ spots_remaining }} spots remaining in your market</span>
{% if spots_remaining < 5 %}
<span class="low-stock-warning">Almost sold out in your region!</span>
{% endif %}
</div>
{% else %}
<div class="preorder-full">
Preorder limit reached for your market
</div>
{% endif %}
{% endif %}
3. Market Shipping Text Metafield
Configuration
Key:
market_shipping_text
Type:
json
Namespace:
restockrocket_production
Owner: Product Variant
Purpose
Stores market-specific shipping/delivery timeline text
Allows different shipping information per market
Stored as a JSON object mapping market IDs to shipping text
Accessing in Liquid
{% assign market_shipping_text = product_variant.metafields.restockrocket_production.market_shipping_text.value | json %}
Example value of market_shipping_text =>
{
"market_id_1": "Ships in 1 week",
"market_id_2": "Ships in 2 weeks",
"market_id_3": "Ships in 4 days"
}
Accessing via GraphQL
Query for Market-Specific Metafields
{
productVariant(id: "gid://shopify/ProductVariant/YOUR_VARIANT_ID") {
metafields(
namespace: "restockrocket_production",
keys: ["market_preorder_count", "market_preorder_max_count", "market_shipping_text"]
) {
edges {
node {
id
key
value
type
}
}
}
}
}
Query for Multiple Variants with Market Data
{
product(id: "gid://shopify/Product/YOUR_PRODUCT_ID") {
variants(first: 10) {
edges {
node {
id
title
metafields(
namespace: "restockrocket_production",
keys: ["market_preorder_count", "market_preorder_max_count", "market_shipping_text"]
) {
edges {
node {
id
key
value
type
# Example response for market_preorder_count:
# value: {"market_id_1": 45, "market_id_2": 20, "market_id_3": 15}
# Example response for market_preorder_max_count:
# value: {"market_id_1": 100, "market_id_2": 50, "market_id_3": 30}
# Example response for market_shipping_text:
# value: {"market_id_1": "Ships in 2 weeks", "market_id_2": "Ships in 3 weeks", "market_id_3": "Ships in 4 weeks"}
}
}
}
}
}
}
}
}
Last updated