In the competitive world of e-commerce, customization is key to providing a unique and tailored shopping experience for your customers. Shopify, one of the leading e-commerce platforms, empowers merchants with a wide range of customization options. In this technical blog post, we’ll explore How to add custom property in product on shopify, allowing you to display additional information that is specific to your business needs.
Understanding Custom Properties
Before diving into the technical details, let’s define what custom properties are and why they are valuable for your Shopify store. Custom properties, also known as metafields, are additional pieces of information that can be associated with products, variants, collections, or customers. These properties provide a way to extend the default Shopify data model, allowing you to store and display information beyond the standard product attributes.
Common use cases for custom properties include displaying additional product specifications, showcasing unique features, or even attaching special promotions to specific items. By leveraging custom properties, you can enrich your product pages with relevant details that enhance the overall user experience.
How to add custom property in product on shopify?
Clik here to view.

To add custom properties to products in Shopify, we’ll be working with the Shopify Admin API and a programming language of your choice. For this example, we’ll use Python, a versatile and widely used language.
Step 1: Set Up a Private App
To interact with the Shopify Admin API, you need to set up a private app in your Shopify store. Here’s a quick guide:
- Log in to your Shopify admin.
- Navigate to “Apps” and click on “Manage private apps.
- Click on “Create a new private app.
- Fill in the required information, ensuring that you grant read and write permissions for the necessary resources (products, variants, etc.).
- Save the app and note the API key, password, and store domain.
Step 2: Install Required Libraries
For our Python script, we’ll be using the shopify library. Install it using the following command:
pip install shopify
Step 3: Write Python Script
Now, let’s create a Python script to know how to add custom property in product on shopify. Replace the placeholder values with your actual store information.
import shopify
# Set up Shopify API credentials
api_key = “YOUR_API_KEY”
password = “YOUR_API_PASSWORD”
store_url = “YOUR_STORE.myshopify.com”
shopify.ShopifyResource.set_site(f”https://{api_key}:{password}@{store_url}/admin”)
# Define product ID and custom properties
product_id = “PRODUCT_ID”
custom_properties = {
“material”: “Cotton”,
“color”: “Blue”,
“size”: “Medium”,
# Add more custom properties as needed
}
# Function to update product with custom properties
def update_product_with_properties(product_id, custom_properties):
product = shopify.Product.find(product_id)
# Create or update metafields for the product
for key, value in custom_properties.items():
product.metafields_global().namespace = “custom_properties”
product.metafields_global().key = key
product.metafields_global().value = value
product.metafields_global().value_type = “string”
product.save()
if __name__ == “__main__”:
update_product_with_properties(product_id, custom_properties)
This script uses the Shopify API to update the specified product with the custom properties provided in the custom_properties dictionary. You can customize the script to match your specific needs and add more properties as required.
Enhancing the Custom Properties Script
Now that we have a basic script on how to add custom property in product on shopify, let’s expand its functionality and explore more ways to leverage custom properties in your Shopify store.
1. Handling Variants
If your products have variants, such as different sizes or colors, you’ll want to extend the script to handle variant-level custom properties. Modify the script to iterate through each variant and update its custom properties.
# Function to update variant with custom properties
def update_variant_with_properties(variant, custom_properties):
for key, value in custom_properties.items():
variant.metafields_global().namespace = “custom_properties”
variant.metafields_global().key = key
variant.metafields_global().value = value
variant.metafields_global().value_type = “string”
variant.save()
# Modify the main script to handle variants
def update_product_with_properties(product_id, custom_properties):
product = shopify.Product.find(product_id)
# Update product-level custom properties
for key, value in custom_properties.items():
product.metafields_global().namespace = “custom_properties”
product.metafields_global().key = key
product.metafields_global().value = value
product.metafields_global().value_type = “string”
product.save()
# Update variant-level custom properties
for variant in product.variants:
update_variant_with_properties(variant, custom_properties)
2. Retrieve and Display Custom Properties
Extend the script to fetch and display custom properties for a given product. This can be useful for debugging or creating a custom display on your storefront.
# Function to retrieve and display custom properties for a product
def get_and_display_properties(product_id):
product = shopify.Product.find(product_id)
# Display product-level custom properties
print(“Product Custom Properties:”)
for metafield in product.metafields_global():
print(f”{metafield.key}: {metafield.value}”)
# Display variant-level custom properties
for variant in product.variants:
print(f”\nVariant {variant.id} Custom Properties:”)
for metafield in variant.metafields_global():
print(f”{metafield.key}: {metafield.value}”)
if __name__ == “__main__”:
# Uncomment the line below to test retrieving and displaying properties
# get_and_display_properties(product_id)
update_product_with_properties(product_id, custom_properties)
3. Webhooks for Automatic Updates
To keep your custom properties in sync with external systems or handle updates in real-time, consider implementing webhooks. Webhooks allow your application to be notified when certain events (e.g., product updates) occur in your Shopify store.
# Function to set up a webhook for product updates
def create_webhook(topic, address):
webhook = shopify.Webhook()
webhook.topic = topic
webhook.address = address
webhook.save()
# Uncomment the lines below to create a webhook for product updates
# create_webhook(“products/update”, “https://your-webhook-endpoint.com”)
By setting up a webhook, your application will receive notifications whenever a product is updated, allowing you to trigger actions, such as updating external databases or systems.
Conclusion
Custom properties in Shopify open up a world of possibilities for tailoring your online store to meet your unique business requirements. By extending product information beyond the standard attributes, you can create a more informative and engaging shopping experience for your customers. The example Python script provided in this blog on how to add custom property in product on shopify serves as a starting point, and you can further enhance and adapt it based on your specific needs. As you explore the possibilities of custom properties, remember to test thoroughly to ensure a seamless integration into your Shopify store.