The Product object
A Rutter Product represents a product contained in a merchant's catalog. Every product contains variants, which represent the different types or options of products sold (e.g. size, color, model). The product object contains high level information about the item including name, images, and tags, whereas the variant object contains physical information about the item, including price and weight.
In the case where a product in a merchant's catalog contains no variants, a default variant will exist containing information about the product.
Properties
id
stringThe Rutter generated unique ID of the product.
platform_id
stringoptionalThe platform specific ID of the product.
description
stringThe description of the product.
name
stringThe name of the product.
type
stringThe unstandardized type or categorization of the product.
product_url
stringoptionalThe consumer facing URL used to access the product online.
images
arrayAn array of images linked to the product.
images
attributesstatus
The status of the product.
tags
arrayAn array of tags linked to the product.
String array.
created_at
stringThe ISO 8601 timestamp that the product was created.
updated_at
stringThe ISO 8601 timestamp that the product was last updated.
{
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"description": "A Rutter Shirt. It comes in all shapes and sizes.",
"name": "Rutter shirt",
"type": "physical",
"product_url": "https://rutter.com/products/shirt",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
},
{
"src": "https://rutter.com/products/shirt.jpg"
},
{
"src": "https://rutter.com/products/shirtsmall.jpg"
}
],
"status": "active",
"tags": [
"clothing",
"shirt"
],
"variants": [
{
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"product_id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"requires_shipping": true,
"barcode": "0012345678901",
"fulfillment_service": "fedex",
"inventory_management": "shopify",
"iso_currency_code": "USD",
"sku": "RUTTER-1",
"title": "Rutter shirt (Large)",
"unit_cost": 12.34,
"variant_url": "https://rutter.com/products/shirt?size=large",
"description": "A Rutter Shirt. It comes in all shapes and sizes, but this one is large",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"short_description": "Rutter shirt (Large)",
"option_values": [
{
"name": "size",
"value": "large"
}
],
"currency_prices": [
{
"iso_currency_code": "USD",
"price": 12.34
}
],
"weight": {
"unit": "kg",
"value": 10
},
"linked_products": [
{
"variant_id": "00000000-0000-0000-0000-000000000000",
"link_type": "product",
"sku": "RUTTER-2"
}
],
"inventory": {
"total_count": 10,
"locations": []
},
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
],
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
List Products
GET /versioned/productsRequest Parameters
access_token
stringqueryThe access token of the connection.
created_at_max
integeroptionalqueryUnix Timestamp in milliseconds representing the maximum created_at datetime to fetch entities from.
created_at_min
integeroptionalqueryUnix Timestamp in milliseconds representing the minimum created_at datetime to fetch entities from.
cursor
stringoptionalqueryThe cursor to use for pagination. This value is passed in from next_cursor
field in a previous request.
force_fetch
enumoptionalqueryForce a response even if the underlying connection hasn't finished the initial sync.
limit
integeroptionalqueryThe limit on the number of entities returned.
name
stringoptionalqueryFilter products by names similar to the input.
status
enumoptionalqueryShow products with certain product status.
updated_at_max
integeroptionalqueryUnix Timestamp in milliseconds representing the maximum updated_at datetime to fetch entities from.
updated_at_min
integeroptionalqueryUnix Timestamp in milliseconds representing the minimum updated_at datetime to fetch entities from.
Response Body
connection
objectconnection
attributesproducts
arrayproducts
attributesnext_cursor
stringnullable{
"connection": {
"id": "00000000-0000-0000-0000-000000000000",
"orgId": "00000000-0000-0000-0000-000000000000",
"platform": "SHOPIFY"
},
"products": [
{
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"description": "A Rutter Shirt. It comes in all shapes and sizes.",
"name": "Rutter shirt",
"type": "physical",
"product_url": "https://rutter.com/products/shirt",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
},
{
"src": "https://rutter.com/products/shirt.jpg"
},
{
"src": "https://rutter.com/products/shirtsmall.jpg"
}
],
"status": "active",
"tags": [
"clothing",
"shirt"
],
"variants": [
{
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"product_id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"requires_shipping": true,
"barcode": "0012345678901",
"fulfillment_service": "fedex",
"inventory_management": "shopify",
"iso_currency_code": "USD",
"sku": "RUTTER-1",
"title": "Rutter shirt (Large)",
"unit_cost": 12.34,
"variant_url": "https://rutter.com/products/shirt?size=large",
"description": "A Rutter Shirt. It comes in all shapes and sizes, but this one is large",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"short_description": "Rutter shirt (Large)",
"option_values": [
{
"name": "size",
"value": "large"
}
],
"currency_prices": [
{
"iso_currency_code": "USD",
"price": 12.34
}
],
"weight": {
"unit": "kg",
"value": 10
},
"linked_products": [
{
"variant_id": "00000000-0000-0000-0000-000000000000",
"link_type": "product",
"sku": "RUTTER-2"
}
],
"inventory": {
"total_count": 10,
"locations": []
},
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
],
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
],
"next_cursor": "MTY3NDgzMTk0Ml82MDY4ZDI0ZC02NGRmLTRmN2EtYTM0Ny0zN2ZmNjY5MGVmMjU="
}
Fetch a Product
GET /versioned/products/:idRequest Parameters
id
stringpathThe Rutter generated unique ID of the object.
access_token
stringqueryThe access token of the connection.
force_fetch
enumoptionalqueryForce a response even if the underlying connection hasn't finished the initial sync.
Response Body
connection
objectconnection
attributesproduct
objectproduct
attributes{
"connection": {
"id": "00000000-0000-0000-0000-000000000000",
"orgId": "00000000-0000-0000-0000-000000000000",
"platform": "SHOPIFY"
},
"product": {
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"description": "A Rutter Shirt. It comes in all shapes and sizes.",
"name": "Rutter shirt",
"type": "physical",
"product_url": "https://rutter.com/products/shirt",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
},
{
"src": "https://rutter.com/products/shirt.jpg"
},
{
"src": "https://rutter.com/products/shirtsmall.jpg"
}
],
"status": "active",
"tags": [
"clothing",
"shirt"
],
"variants": [
{
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"product_id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"requires_shipping": true,
"barcode": "0012345678901",
"fulfillment_service": "fedex",
"inventory_management": "shopify",
"iso_currency_code": "USD",
"sku": "RUTTER-1",
"title": "Rutter shirt (Large)",
"unit_cost": 12.34,
"variant_url": "https://rutter.com/products/shirt?size=large",
"description": "A Rutter Shirt. It comes in all shapes and sizes, but this one is large",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"short_description": "Rutter shirt (Large)",
"option_values": [
{
"name": "size",
"value": "large"
}
],
"currency_prices": [
{
"iso_currency_code": "USD",
"price": 12.34
}
],
"weight": {
"unit": "kg",
"value": 10
},
"linked_products": [
{
"variant_id": "00000000-0000-0000-0000-000000000000",
"link_type": "product",
"sku": "RUTTER-2"
}
],
"inventory": {
"total_count": 10,
"locations": []
},
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
],
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
}
List Product Categories
GET /versioned/products/categoriesRequest Parameters
access_token
stringqueryThe access token of the connection.
force_fetch
enumoptionalqueryForce a response even if the underlying connection hasn't finished the initial sync.
id
stringoptionalqueryOnly fetch a specific product category id.
Response Body
categories
arraycategories
attributes{
"categories": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "Shirts",
"children": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "T Shirts",
"children": []
},
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "Long sleeve shirts",
"children": []
}
]
}
]
}
Create a Product
POST /versioned/productsRequest Parameters
access_token
stringqueryThe access token of the connection.
Request Body
product
objectproduct
attributesResponse Body
Any of:
async_response
objectasync_response
attributesproduct
objectproduct
attributes{
"product": {
"category_id": 123456789,
"description": "A Rutter Shirt. It comes in all shapes and sizes.",
"name": "Rutter shirt",
"status": "active",
"tags": [
"clothing",
"shirt"
],
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
},
{
"src": "https://rutter.com/products/shirt.jpg"
},
{
"src": "https://rutter.com/products/shirtsmall.jpg"
}
],
"variants": [
{
"id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"sku": "RUTTER-1",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"option_values": [
{
"name": "size",
"value": "large"
}
],
"weight": {
"unit": "kg",
"value": 10
},
"inventory": {
"total_count": 10
}
}
],
"additional_fields": {
"amazon": {
"sku": "RUTTER-1",
"display_album": null,
"decorative_cutout": null,
"cellular_phone_case": null,
"wall_art": null,
"drinking_cup": null,
"tote_bag": null,
"shirt": null,
"sweatshirt": null
}
}
}
}
{
"product": {
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"description": "A Rutter Shirt. It comes in all shapes and sizes.",
"name": "Rutter shirt",
"type": "physical",
"product_url": "https://rutter.com/products/shirt",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
},
{
"src": "https://rutter.com/products/shirt.jpg"
},
{
"src": "https://rutter.com/products/shirtsmall.jpg"
}
],
"status": "active",
"tags": [
"clothing",
"shirt"
],
"variants": [
{
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"product_id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"requires_shipping": true,
"barcode": "0012345678901",
"fulfillment_service": "fedex",
"inventory_management": "shopify",
"iso_currency_code": "USD",
"sku": "RUTTER-1",
"title": "Rutter shirt (Large)",
"unit_cost": 12.34,
"variant_url": "https://rutter.com/products/shirt?size=large",
"description": "A Rutter Shirt. It comes in all shapes and sizes, but this one is large",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"short_description": "Rutter shirt (Large)",
"option_values": [
{
"name": "size",
"value": "large"
}
],
"currency_prices": [
{
"iso_currency_code": "USD",
"price": 12.34
}
],
"weight": {
"unit": "kg",
"value": 10
},
"linked_products": [
{
"variant_id": "00000000-0000-0000-0000-000000000000",
"link_type": "product",
"sku": "RUTTER-2"
}
],
"inventory": {
"total_count": 10,
"locations": []
},
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
],
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
}
Update a Product
PATCH /versioned/products/:idRequest Parameters
id
stringpathThe Rutter generated unique ID of the object.
access_token
stringqueryThe access token of the connection.
Request Body
product
objectproduct
attributesResponse Body
product
objectproduct
attributes{
"product": {
"description": "A Rutter Shirt. It comes in all shapes and sizes.",
"name": "Rutter shirt",
"status": "active"
}
}
{
"product": {
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"description": "A Rutter Shirt. It comes in all shapes and sizes.",
"name": "Rutter shirt",
"type": "physical",
"product_url": "https://rutter.com/products/shirt",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
},
{
"src": "https://rutter.com/products/shirt.jpg"
},
{
"src": "https://rutter.com/products/shirtsmall.jpg"
}
],
"status": "active",
"tags": [
"clothing",
"shirt"
],
"variants": [
{
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"product_id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"requires_shipping": true,
"barcode": "0012345678901",
"fulfillment_service": "fedex",
"inventory_management": "shopify",
"iso_currency_code": "USD",
"sku": "RUTTER-1",
"title": "Rutter shirt (Large)",
"unit_cost": 12.34,
"variant_url": "https://rutter.com/products/shirt?size=large",
"description": "A Rutter Shirt. It comes in all shapes and sizes, but this one is large",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"short_description": "Rutter shirt (Large)",
"option_values": [
{
"name": "size",
"value": "large"
}
],
"currency_prices": [
{
"iso_currency_code": "USD",
"price": 12.34
}
],
"weight": {
"unit": "kg",
"value": 10
},
"linked_products": [
{
"variant_id": "00000000-0000-0000-0000-000000000000",
"link_type": "product",
"sku": "RUTTER-2"
}
],
"inventory": {
"total_count": 10,
"locations": []
},
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
],
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
}
Delete a Product
DELETE /versioned/products/:idRequest Parameters
id
stringpathThe Rutter generated unique ID of the object.
access_token
stringqueryThe access token of the connection.
Response Body
product
stringId of the deleted product
success
booleantrue
if the delete operation succeeded.
{
"product": "00000000-0000-0000-0000-000000000000",
"success": true
}
Create a Product Variant
POST /versioned/products/:id/variantsRequest Parameters
access_token
stringqueryThe access token of the connection.
Request Body
variant
objectvariant
attributesResponse Body
variant
objectvariant
attributes{
"variant": {
"id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"sku": "RUTTER-1",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"option_values": [
{
"name": "size",
"value": "large"
}
],
"weight": {
"unit": "kg",
"value": 10
},
"inventory": {
"total_count": 10
}
}
}
{
"variant": {
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"product_id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"requires_shipping": true,
"barcode": "0012345678901",
"fulfillment_service": "fedex",
"inventory_management": "shopify",
"iso_currency_code": "USD",
"sku": "RUTTER-1",
"title": "Rutter shirt (Large)",
"unit_cost": 12.34,
"variant_url": "https://rutter.com/products/shirt?size=large",
"description": "A Rutter Shirt. It comes in all shapes and sizes, but this one is large",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"short_description": "Rutter shirt (Large)",
"option_values": [
{
"name": "size",
"value": "large"
}
],
"currency_prices": [
{
"iso_currency_code": "USD",
"price": 12.34
}
],
"weight": {
"unit": "kg",
"value": 10
},
"linked_products": [
{
"variant_id": "00000000-0000-0000-0000-000000000000",
"link_type": "product",
"sku": "RUTTER-2"
}
],
"inventory": {
"total_count": 10,
"locations": []
},
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
}
Update a Product Variant
PATCH /versioned/products/:id/variants/:variantIdRequest Parameters
variantId
stringpathThe Rutter generated unique ID of the variant.
access_token
stringqueryThe access token of the connection.
Request Body
variant
objectvariant
attributesResponse Body
variant
objectvariant
attributes{
"variant": {
"id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"sku": "RUTTER-1",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"weight": {
"unit": "kg",
"value": 10
},
"option_values": [
{
"name": "size",
"value": "large"
}
],
"inventory": {
"total_count": 10
}
}
}
{
"variant": {
"id": "00000000-0000-0000-0000-000000000000",
"platform_id": "12345678",
"product_id": "00000000-0000-0000-0000-000000000000",
"price": 12.34,
"requires_shipping": true,
"barcode": "0012345678901",
"fulfillment_service": "fedex",
"inventory_management": "shopify",
"iso_currency_code": "USD",
"sku": "RUTTER-1",
"title": "Rutter shirt (Large)",
"unit_cost": 12.34,
"variant_url": "https://rutter.com/products/shirt?size=large",
"description": "A Rutter Shirt. It comes in all shapes and sizes, but this one is large",
"images": [
{
"src": "https://rutter.com/products/shirtlarge.jpg"
}
],
"short_description": "Rutter shirt (Large)",
"option_values": [
{
"name": "size",
"value": "large"
}
],
"currency_prices": [
{
"iso_currency_code": "USD",
"price": 12.34
}
],
"weight": {
"unit": "kg",
"value": 10
},
"linked_products": [
{
"variant_id": "00000000-0000-0000-0000-000000000000",
"link_type": "product",
"sku": "RUTTER-2"
}
],
"inventory": {
"total_count": 10,
"locations": []
},
"created_at": "2023-01-02T02:34:56.000Z",
"updated_at": "2023-01-02T02:34:56.000Z"
}
}
Delete a Product Variant
DELETE /versioned/products/:id/variants/:idRequest Parameters
id
stringpathThe Rutter generated unique ID of the variant.
access_token
stringqueryThe access token of the connection.
Response Body
productId
stringvariantId
string{
"productId": "00000000-0000-0000-0000-000000000000",
"variantId": "00000000-0000-0000-0000-000000000000"
}