logo
Retrieves the full record for one product — its variants, images, options, and the collections it belongs to.
💡 The product id goes on the wire as id, even though the SDKs name the parameter productId / product_id.

Request

method is "getProductItem".
Field
Type
Required
Description
id
String
Yes
The product to retrieve.
app_id
String
Yes
The app the product belongs to.
reference
String
Optional
Your id for this request. Echoed back in the response.

Preconditions

Requirement
Why
"Manage Products" permission
Needed to read product data for the app.

Response

getProductItemResponse

Field
Type
Returned
Description
method
String
Yes
"getProductItemResponse"
data
Yes
The full product, including variant, image, option, and collection arrays.
app_id
String
Yes
Echoed from the request.
reference
String
Optional
Echoed from the request.

SDKs

SDK
Call
Callback
Java
api.getProductDetail(productId, appId, reference);
onProductDetail(ProductItemResponse productItem)
JavaScript
api.getProductDetail(productId, appId, reference);
onProductDetail(productItem)
Python
napi.get_product_detail(product_id=product_id, app_id=app_id, reference=reference)
on_product_detail(self, obj)

Example

Request

json
{ "method": "getProductItem", "id": "5121419845126176", "app_id": "90090684293000559", "reference": "1123423511" }
java
api.getProductDetail("5121419845126176", "90090684293000559", "1123423511");
javascript
api.getProductDetail("5121419845126176", "90090684293000559", "1123423511");
python
napi.get_product_detail( product_id="5121419845126176", app_id="90090684293000559", reference="1123423511", )

Response

Image URLs are signed and time-limited; they are shortened here for readability.
json
{ "method": "getProductItemResponse", "reference": "1123423511", "data": { "id": "5121419845126176", "name": "Black T-shirt", "description": "Cotton T-shirt for Men", "category": "product", "type": "0", "status": "A", "price": 50.0, "compare_at_price": 0.0, "cost": 0, "track_stock": false, "in_stock": null, "is_taxable": false, "shipping_required": false, "tag": [], "timezone": "America/Toronto", "version": "L0hmcA", "app_id": 90090684293000559, "business_channel_id": 90090684293000559, "created_date": "2025-04-02 13:56:34", "updated_date": "2025-04-02 14:15:17", "image": [ { "url": "https://m1.nandbox.ca/v1/AUTH_.../90090684293000559_b7010f02…jpg?temp_url_sig=…", "width": 235, "height": 275 } ], "option": [ { "id": "option1", "name": "Size", "values": ["Large", "Medium", "Small"] } ], "variant": [ { "id": "5121792017126173", "parent_id": "5121419845126176", "option1": "Large", "price": 50, "compare_at_price": 0, "type": 2, "category": "product", "status": "A", "track_stock": false, "in_stock": null, "is_taxable": false, "shipping_required": false, "app_id": 90090684293000559, "business_channel_id": 90090684293000559 }, { "id": "5121362976126174", "parent_id": "5121419845126176", "option1": "Medium", "price": 50, "compare_at_price": 0, "type": 2, "category": "product", "status": "A", "track_stock": false, "in_stock": null, "is_taxable": false, "shipping_required": false, "app_id": 90090684293000559, "business_channel_id": 90090684293000559 }, { "id": "5121705203126175", "parent_id": "5121419845126176", "option1": "Small", "price": 50, "compare_at_price": 0, "type": 2, "category": "product", "status": "A", "track_stock": false, "in_stock": null, "is_taxable": false, "shipping_required": false, "app_id": 90090684293000559, "business_channel_id": 90090684293000559 } ], "collection": [ { "id": "5121960361126208", "name": "New Collection", "image": [ { "url": "https://m1.nandbox.ca/v1/AUTH_.../null073734a3…jpg?temp_url_sig=…", "width": 720, "height": 340 } ] } ] } }