Getting Started
Storefront APIs
Platform Essentials
Retrieve a product detail
Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Commerce Engine will return the corresponding product information.
curl --request GET \
--url https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/products/{product_id} \
--header 'Authorization: Bearer <token>'
{
"message": "Products retrieved successfully.",
"success": true,
"content": {
"product": {
"id": "<string>",
"sku": "<string>",
"name": "<string>",
"slug": "<string>",
"short_description": "<string>",
"product_type": "physical",
"active": true,
"stock_available": true,
"on_offer": true,
"on_subscription": true,
"on_promotion": true,
"has_variant": true,
"tags": [
"<string>"
],
"category_ids": [
"<string>"
],
"reviews_rating_sum": 123,
"reviews_count": 123,
"attributes": [
{
"id": "<string>",
"name": "<string>",
"key": "<string>",
"type": "color",
"value": [
{
"name": "<string>",
"hexcode": "<string>"
}
]
}
],
"pricing": {
"currency": "<string>",
"tax_type": "GST",
"tax_rate": 123,
"price_including_tax": false,
"listing_price": 123,
"selling_price": 123,
"min_order_quantity": 123,
"max_order_quantity": 123,
"incremental_quantity": 123,
"selling_price_excluding_tax": 123
},
"variant_options": [
{
"name": "<string>",
"key": "<string>",
"type": "single-select",
"value": [
"<string>"
]
}
],
"promotion": {
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"details": {
"promotion_type": "<any>",
"discount_type": "percentage",
"discount_percent": 123,
"discount_fixed_amount": 123
}
},
"images": [
{
"id": "<string>",
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"url_tiny": "<string>",
"url_thumbnail": "<string>",
"url_standard": "<string>",
"url_zoom": "<string>"
}
],
"subscription": [
{
"id": "<string>",
"subscription_plan": "<string>",
"subscription_price": 123,
"billing_interval": 123,
"billing_frequency": "monthly",
"billing_limit": 123,
"fulfill_separately": true,
"order_interval": 123,
"order_frequency": "monthly",
"order_limit": 123,
"minimum_quantity": 123,
"billing_trial_days": 123
}
],
"variants": [
{
"id": "<string>",
"product_id": "<string>",
"sku": "<string>",
"slug": "<string>",
"name": "<string>",
"product_name": "<string>",
"short_description": "<string>",
"active": true,
"stock_available": true,
"on_offer": true,
"on_promotion": true,
"on_subscription": true,
"is_default": true,
"associated_options": {
"background_color": {
"name": "Background Color",
"value": {
"name": "Blue",
"hexcode": "#0000FF"
},
"type": "color"
},
"size": {
"name": "Size",
"value": "Large",
"type": "single-select"
}
},
"images": [
{
"id": "<string>",
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"url_tiny": "<string>",
"url_thumbnail": "<string>",
"url_standard": "<string>",
"url_zoom": "<string>"
}
],
"pricing": {
"currency": "<string>",
"tax_type": "GST",
"tax_rate": 123,
"price_including_tax": false,
"listing_price": 123,
"selling_price": 123,
"min_order_quantity": 123,
"max_order_quantity": 123,
"incremental_quantity": 123,
"selling_price_excluding_tax": 123
},
"subscription": [
{
"id": "<string>",
"subscription_plan": "<string>",
"subscription_price": 123,
"billing_interval": 123,
"billing_frequency": "monthly",
"billing_limit": 123,
"fulfill_separately": true,
"order_interval": 123,
"order_frequency": "monthly",
"order_limit": 123,
"minimum_quantity": 123,
"billing_trial_days": 123
}
],
"promotion": {
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"details": {
"promotion_type": "<any>",
"discount_type": "percentage",
"discount_percent": 123,
"discount_fixed_amount": 123
}
}
}
],
"bundle_items": [
{
"quantity": 123,
"product_id": "<string>",
"variant_id": "<string>",
"sku": "<string>",
"slug": "<string>",
"product_name": "<string>",
"variant_name": "<string>",
"product_type": "physical",
"short_description": "<string>",
"active": true,
"stock_available": true,
"on_offer": true,
"on_subscription": true,
"on_promotion": true,
"category_ids": [
"<string>"
],
"tags": [
"<string>"
],
"reviews_count": 123,
"reviews_rating_sum": 123,
"attributes": [
{
"id": "<string>",
"name": "<string>",
"key": "<string>",
"type": "color",
"value": [
{
"name": "<string>",
"hexcode": "<string>"
}
]
}
],
"images": [
{
"id": "<string>",
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"url_tiny": "<string>",
"url_thumbnail": "<string>",
"url_standard": "<string>",
"url_zoom": "<string>"
}
],
"pricing": {
"currency": "<string>",
"tax_type": "GST",
"tax_rate": 123,
"price_including_tax": false,
"listing_price": 123,
"selling_price": 123,
"min_order_quantity": 123,
"max_order_quantity": 123,
"incremental_quantity": 123,
"selling_price_excluding_tax": 123
},
"promotion": {
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"details": {
"promotion_type": "<any>",
"discount_type": "percentage",
"discount_percent": 123,
"discount_fixed_amount": 123
}
},
"subscription": [
{
"id": "<string>",
"subscription_plan": "<string>",
"subscription_price": 123,
"billing_interval": 123,
"billing_frequency": "monthly",
"billing_limit": 123,
"fulfill_separately": true,
"order_interval": 123,
"order_frequency": "monthly",
"order_limit": 123,
"minimum_quantity": 123,
"billing_trial_days": 123
}
],
"associated_options": {
"background_color": {
"name": "Background Color",
"value": {
"name": "Blue",
"hexcode": "#0000FF"
},
"type": "color"
},
"size": {
"name": "Size",
"value": "Large",
"type": "single-select"
}
}
}
],
"description": "<string>",
"hsn_code": "<string>",
"videos": [
{
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"video_preview_url": "<string>",
"video_stream_hls_url": "<string>",
"video_stream_dash_url": "<string>",
"image_thumbnail_url": "<string>",
"video_duration": 123
}
],
"shipping": {
"additional_cost": 123,
"shipping_price_including_tax": true,
"availability_description": "<string>",
"ships_internationally": false,
"mid_code": "<string>",
"country_of_origin": "India",
"tax_type": "<string>",
"tax_rate": 123
},
"upselling_product_ids": [
"01F3Z7KG06J4ACWH1C4926KJEB"
],
"crossselling_product_ids": [
"01F3Z7KG06J4ACWH1C4926KJEB"
],
"seo": {
"slug": "<string>",
"title": "<string>",
"description": "<string>",
"keywords": [
"<string>"
]
},
"metadata": {}
}
}
}
Authorizations
Access token
Path Parameters
id of a particular product
"41"
Query Parameters
use this param only if different pricing is configured as per customer group
Response
"Products retrieved successfully."
The ID of the product
physical
, digital
, bundle
"physical"
Indicates whether the product has stock available
Indicates whether this item is associated with any active (product-specific) coupons
Indicates whether the product has any subscription plans avaialble
Indicates whether the product is currently on promotion. When true, the ProductPromotion
object will contain details of the promotion
Indicates whether the product has variants
Attribute for colors
A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is Product Type
, key will be product_type
"color"
"GST"
"GST"
false
this will be used if has_variant is true, to auto set default values.
The name of the associated option.
A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is Product Type
, key will be product_type
single-select
, color
When option_type is color, value will contain an array of objects like:
[
{
"name": "first_color",
"hexcode": "#000000"
},
{
"name": "second_color",
"hexcode": "#FFFFFF"
}
]
percentage
, fixed-amount
'> 0' if discount_type = percentage, otherwise set 0.
'> 0' if discount_type = fixed-amount, otherwise set 0.
Billing interval determines the frequency for which the customer is charged for the subscription itself.
weekly
, monthly
, annually
"monthly"
Optionally limit the number of times this subscription will invoice the customer.
order interval defines the frequency of when the subscription sends customers the product
weekly
, monthly
, annully
"monthly"
By default this is set to unlimited, meaning the subscription will fulfill indefinitely. Changing the Limit to 10 would force the subscription to end after the tenth interval had been fulfilled.
The quantity of the plan to which the customer should be subscribed
Use in digital product only for trial period
variant id
product id
variant sku
variant name
variant name
Indicates whether this item is associated with any active (product-specific) coupons
Indicates whether a variant is marked as the default variant for a product
This object contains multiple dynamic keys. Each key is a string derived from the attribute key, and the value is an object of the type AssociatedOption
.
{
"background_color": {
"name": "Background Color",
"value": { "name": "Blue", "hexcode": "#0000FF" },
"type": "color"
},
"size": {
"name": "Size",
"value": "Large",
"type": "single-select"
}
}
"GST"
"GST"
false
Billing interval determines the frequency for which the customer is charged for the subscription itself.
weekly
, monthly
, annually
"monthly"
Optionally limit the number of times this subscription will invoice the customer.
order interval defines the frequency of when the subscription sends customers the product
weekly
, monthly
, annully
"monthly"
By default this is set to unlimited, meaning the subscription will fulfill indefinitely. Changing the Limit to 10 would force the subscription to end after the tenth interval had been fulfilled.
The quantity of the plan to which the customer should be subscribed
Use in digital product only for trial period
physical
, digital
, bundle
"physical"
Indicates whether this item is associated with any active (product-specific) coupons
Attribute for colors
A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is Product Type
, key will be product_type
"color"
"GST"
"GST"
false
Billing interval determines the frequency for which the customer is charged for the subscription itself.
weekly
, monthly
, annually
"monthly"
Optionally limit the number of times this subscription will invoice the customer.
order interval defines the frequency of when the subscription sends customers the product
weekly
, monthly
, annully
"monthly"
By default this is set to unlimited, meaning the subscription will fulfill indefinitely. Changing the Limit to 10 would force the subscription to end after the tenth interval had been fulfilled.
The quantity of the plan to which the customer should be subscribed
Use in digital product only for trial period
Used when variant_id
is not null.
{
"background_color": {
"name": "Background Color",
"value": { "name": "Blue", "hexcode": "#0000FF" },
"type": "color"
},
"size": {
"name": "Size",
"value": "Large",
"type": "single-select"
}
}
in seconds
An array of product IDs
An array of product IDs
curl --request GET \
--url https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/products/{product_id} \
--header 'Authorization: Bearer <token>'
{
"message": "Products retrieved successfully.",
"success": true,
"content": {
"product": {
"id": "<string>",
"sku": "<string>",
"name": "<string>",
"slug": "<string>",
"short_description": "<string>",
"product_type": "physical",
"active": true,
"stock_available": true,
"on_offer": true,
"on_subscription": true,
"on_promotion": true,
"has_variant": true,
"tags": [
"<string>"
],
"category_ids": [
"<string>"
],
"reviews_rating_sum": 123,
"reviews_count": 123,
"attributes": [
{
"id": "<string>",
"name": "<string>",
"key": "<string>",
"type": "color",
"value": [
{
"name": "<string>",
"hexcode": "<string>"
}
]
}
],
"pricing": {
"currency": "<string>",
"tax_type": "GST",
"tax_rate": 123,
"price_including_tax": false,
"listing_price": 123,
"selling_price": 123,
"min_order_quantity": 123,
"max_order_quantity": 123,
"incremental_quantity": 123,
"selling_price_excluding_tax": 123
},
"variant_options": [
{
"name": "<string>",
"key": "<string>",
"type": "single-select",
"value": [
"<string>"
]
}
],
"promotion": {
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"details": {
"promotion_type": "<any>",
"discount_type": "percentage",
"discount_percent": 123,
"discount_fixed_amount": 123
}
},
"images": [
{
"id": "<string>",
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"url_tiny": "<string>",
"url_thumbnail": "<string>",
"url_standard": "<string>",
"url_zoom": "<string>"
}
],
"subscription": [
{
"id": "<string>",
"subscription_plan": "<string>",
"subscription_price": 123,
"billing_interval": 123,
"billing_frequency": "monthly",
"billing_limit": 123,
"fulfill_separately": true,
"order_interval": 123,
"order_frequency": "monthly",
"order_limit": 123,
"minimum_quantity": 123,
"billing_trial_days": 123
}
],
"variants": [
{
"id": "<string>",
"product_id": "<string>",
"sku": "<string>",
"slug": "<string>",
"name": "<string>",
"product_name": "<string>",
"short_description": "<string>",
"active": true,
"stock_available": true,
"on_offer": true,
"on_promotion": true,
"on_subscription": true,
"is_default": true,
"associated_options": {
"background_color": {
"name": "Background Color",
"value": {
"name": "Blue",
"hexcode": "#0000FF"
},
"type": "color"
},
"size": {
"name": "Size",
"value": "Large",
"type": "single-select"
}
},
"images": [
{
"id": "<string>",
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"url_tiny": "<string>",
"url_thumbnail": "<string>",
"url_standard": "<string>",
"url_zoom": "<string>"
}
],
"pricing": {
"currency": "<string>",
"tax_type": "GST",
"tax_rate": 123,
"price_including_tax": false,
"listing_price": 123,
"selling_price": 123,
"min_order_quantity": 123,
"max_order_quantity": 123,
"incremental_quantity": 123,
"selling_price_excluding_tax": 123
},
"subscription": [
{
"id": "<string>",
"subscription_plan": "<string>",
"subscription_price": 123,
"billing_interval": 123,
"billing_frequency": "monthly",
"billing_limit": 123,
"fulfill_separately": true,
"order_interval": 123,
"order_frequency": "monthly",
"order_limit": 123,
"minimum_quantity": 123,
"billing_trial_days": 123
}
],
"promotion": {
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"details": {
"promotion_type": "<any>",
"discount_type": "percentage",
"discount_percent": 123,
"discount_fixed_amount": 123
}
}
}
],
"bundle_items": [
{
"quantity": 123,
"product_id": "<string>",
"variant_id": "<string>",
"sku": "<string>",
"slug": "<string>",
"product_name": "<string>",
"variant_name": "<string>",
"product_type": "physical",
"short_description": "<string>",
"active": true,
"stock_available": true,
"on_offer": true,
"on_subscription": true,
"on_promotion": true,
"category_ids": [
"<string>"
],
"tags": [
"<string>"
],
"reviews_count": 123,
"reviews_rating_sum": 123,
"attributes": [
{
"id": "<string>",
"name": "<string>",
"key": "<string>",
"type": "color",
"value": [
{
"name": "<string>",
"hexcode": "<string>"
}
]
}
],
"images": [
{
"id": "<string>",
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"url_tiny": "<string>",
"url_thumbnail": "<string>",
"url_standard": "<string>",
"url_zoom": "<string>"
}
],
"pricing": {
"currency": "<string>",
"tax_type": "GST",
"tax_rate": 123,
"price_including_tax": false,
"listing_price": 123,
"selling_price": 123,
"min_order_quantity": 123,
"max_order_quantity": 123,
"incremental_quantity": 123,
"selling_price_excluding_tax": 123
},
"promotion": {
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"details": {
"promotion_type": "<any>",
"discount_type": "percentage",
"discount_percent": 123,
"discount_fixed_amount": 123
}
},
"subscription": [
{
"id": "<string>",
"subscription_plan": "<string>",
"subscription_price": 123,
"billing_interval": 123,
"billing_frequency": "monthly",
"billing_limit": 123,
"fulfill_separately": true,
"order_interval": 123,
"order_frequency": "monthly",
"order_limit": 123,
"minimum_quantity": 123,
"billing_trial_days": 123
}
],
"associated_options": {
"background_color": {
"name": "Background Color",
"value": {
"name": "Blue",
"hexcode": "#0000FF"
},
"type": "color"
},
"size": {
"name": "Size",
"value": "Large",
"type": "single-select"
}
}
}
],
"description": "<string>",
"hsn_code": "<string>",
"videos": [
{
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"video_preview_url": "<string>",
"video_stream_hls_url": "<string>",
"video_stream_dash_url": "<string>",
"image_thumbnail_url": "<string>",
"video_duration": 123
}
],
"shipping": {
"additional_cost": 123,
"shipping_price_including_tax": true,
"availability_description": "<string>",
"ships_internationally": false,
"mid_code": "<string>",
"country_of_origin": "India",
"tax_type": "<string>",
"tax_rate": 123
},
"upselling_product_ids": [
"01F3Z7KG06J4ACWH1C4926KJEB"
],
"crossselling_product_ids": [
"01F3Z7KG06J4ACWH1C4926KJEB"
],
"seo": {
"slug": "<string>",
"title": "<string>",
"description": "<string>",
"keywords": [
"<string>"
]
},
"metadata": {}
}
}
}