Skip to content

Change a product

PATCH
/products/{product_id}
curl --request PATCH \
--url https://api.shootika.com/v1/products/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "title": "example", "garment_category": "tops", "external_id": "example" }'

Changes the title, the garment category or the external_id of a product. Send only the fields you want to change. Send external_id: null to clear it. Not available on a Shopify store, where you change the product in Shopify and Shootika picks the change up automatically.

product_id
required
string format: uuid
Media typeapplication/json
object
title
string
<= 500 characters
garment_category
string
Allowed values: tops bottoms one-pieces
external_id
string | null
<= 255 characters

The updated product.

Media typeapplication/json
object
product
required
object
id
required
string format: uuid
external_id
required

Your own id for the product, or null.

string | null
title
required
string
garment_category
required
Any of:
string
Allowed values: tops bottoms one-pieces
images
required
Array<object>
object
id
required
string format: uuid
url
required
string format: uri
width
required
integer | null
height
required
integer | null
created_at
required
string format: date-time
Example
{
"product": {
"garment_category": "tops"
}
}

bad_request: the request could not be read, for example a multipart body with no boundary.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}

unauthorized: the Authorization header is missing, or the key is not valid or has been revoked.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}

api_not_enabled when the API is not switched on for your store yet, store_uninstalled when the store has uninstalled Shootika, or forbidden when the key is not allowed to do that.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}

not_found: no product with that id exists in your store.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}

method_not_allowed: this address does not accept that method. The Allow header lists the ones it does.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}
Allow
string

catalog_managed_by_shopify on a Shopify store, or external_id_taken when another product already uses that external_id.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}

validation_error, and the details name the fields that are wrong.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}

rate_limited: more than 120 requests in a minute with this key. Wait the number of seconds in Retry-After.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}
Retry-After
integer

internal_error: something went wrong on our side. Try again.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}

service_busy: Shootika is busy right now. Try again in a moment.

Media typeapplication/json
object
error
required

What went wrong. Read code in your software; message is for people.

object
code
required
string
Allowed values: api_not_enabled approval_unavailable attach_conflict bad_request catalog_managed_by_shopify conflict daily_cap_reached external_id_taken family_unsupported forbidden idempotency_conflict idempotency_in_progress image_locked internal_error invalid_url media_processing_failed method_not_allowed not_an_image not_found not_ready payment_required quota_exceeded rate_limited result_purged scene_failed scene_generating scene_unsupported service_busy source_image_too_small store_uninstalled too_large unauthorized unreachable_url upload_failed validation_error
message
required

A plain sentence for a person.

string
details

Only present for some codes. For validation_error it maps each wrong field to a list of problems. For quota_exceeded and daily_cap_reached it describes the allowance.

object
key
additional properties
any
Example
{
"error": {
"code": "api_not_enabled"
}
}
Retry-After
integer