Product
스토어에서 Shopify 상품 하나를 가져옵니다: 가격, 모든 변형(variant), 옵션, 이미지, 설명.
GET | POST /v1/shopify/product파라미터는 GET의 쿼리 문자열로도, POST의 JSON 본문으로도 보낼 수 있습니다. 둘은 같습니다.
요청
curl "https://gateway.apinoa.com/v1/shopify/product?id=thedoodlebot.com%2Fdoodle-bot" \
-H "x-api-key: $APINOA_API_KEY"파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | A Shopify id rather than a global identifier: the composite shop/handle, e.g. us.giesswein.com/wool-sneaker-women. A search item's id is already in this form, and a full product URL is accepted too. |
currency | string | Presentment currency, ISO 4217. | |
region | string | Buyer country as ISO 3166-1 alpha-2; sets availability, shipping and price. |
같은 파라미터와 모든 응답 타입은 OpenAPI 문서에도 있습니다.
응답
data에 Product를 돌려줍니다. 실제 응답을 줄인 것입니다. 배열은 앞쪽 항목만 남기고 긴 텍스트는 잘랐습니다.
{
"success": true,
"data": {
"marketplace": "shopify",
"id": "thedoodlebot.com/doodle-bot",
"url": "https://thedoodlebot.com/products/doodle-bot",
"title": "Doodle Bot Limited Edition",
"price": {
"currency": "USD",
"amount": 80
},
"listPrice": {
"currency": "USD",
"amount": 140
},
"brand": "Doodle Bot",
"listedAt": "2025-10-06T02:01:18.000Z",
"inStock": true,
"description": "<p data-start=\"247\" data-end=\"513\"><strong data-start=\"302\" data-end=\"392\">Doodle Bot is the fun, interactive robot tha…",
"badges": [],
"promotions": [],
"features": [],
"media": {
"images": [
"https://cdn.shopify.com/s/files/1/0785/4070/1921/files/IMG_2729.jpg?v=1759715594",
"https://cdn.shopify.com/s/files/1/0785/4070/1921/files/IMG_2728.jpg?v=1759715764"
],
"videos": []
},
"category": [],
"attributes": [],
"options": [
{
"id": "1",
"name": "Color",
"values": [
{
"id": "PINK",
"name": "PINK"
},
{
"id": "GREEN",
"name": "GREEN"
}
]
}
],
"variants": [
{
"id": "47235322806497",
"price": {
"currency": "USD",
"amount": 80
},
"listPrice": {
"currency": "USD",
"amount": 140
},
"inStock": true,
"selections": [
{
"optionId": "1",
"valueId": "PINK",
"optionName": "Color",
"valueName": "PINK"
}
]
},
{
"id": "47235322839265",
"price": {
"currency": "USD",
"amount": 80
},
"listPrice": {
"currency": "USD",
"amount": 140
},
"inStock": false,
"selections": [
{
"optionId": "1",
"valueId": "GREEN",
"optionName": "Color",
"valueName": "GREEN"
}
]
}
],
"offers": [],
"reviewAspects": [],
"boxContents": [],
"reviews": [],
"seller": {
"id": "thedoodlebot.com",
"url": "https://thedoodlebot.com"
}
}
}에러
| 상태 | 코드 | 의미 |
|---|---|---|
| 400 | INVALID_PARAMS | 파라미터가 없거나, 알 수 없거나, 범위를 벗어났습니다. 메시지에 이름이 나옵니다. |
| 400 | INVALID_PRODUCT_ID | id가 shop/handle도 상품 URL도 아닙니다. |
| 401 | UNAUTHORIZED | x-api-key 헤더가 없거나, 폐기되었거나 알 수 없는 키입니다. |
| 402 | INSUFFICIENT_BALANCE | 잔액이 이 호출 비용에 모자랍니다. 대시보드에서 충전하세요. |
| 404 | PRODUCT_NOT_FOUND | 마켓플레이스에 그런 상품이 없습니다. |
| 429 | MARKETPLACE_SATURATED | 동시 호출이 너무 많습니다. Retry-After 초만큼 기다린 뒤 다시 시도하세요. |
| 502 | UPSTREAM_ERROR | 플랫폼이 쓸 수 없는 응답을 보냈습니다. 간격을 두고 다시 시도하세요. |
모든 코드는 Errors에 있습니다. 실패한 호출은 과금되지 않습니다.
가격
가격 호출당 $0.001. 정가 기준이며, 하루 1,000회를 넘으면 단가가 내려갑니다.
참고
id는shop/handle입니다 (thedoodlebot.com/doodle-bot). 검색 또는 catalog 항목에 담긴 그대로입니다. 전체 상품 URL도 됩니다.currency는 스토어의 통화를 고정합니다 (기본값 USD). 응답은 가격마다 스토어가 실제로 청구한 통화를 밝힙니다.