Product Resource
Content
- Product Associations
- Create Product
- Delete Product
- Filter Products
- Get Product
- Get Products Count
- Get Products
- Update Product
Product Associations
Create Product
POST /api/products.json
- POST /api/products.json will create a new product from the parameters passed.
Example:
$ curl -s \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -u APP_API_KEY:APP_API_PASSWORD \ -X POST \ -d \ '{ "product": { "title": "This is my new product!", "code": "my-new-product" } }' \ https://shop_subdomain.versacommerce.de/api/products.json
Status: 201 Created { "product": { "title": "This is my new product!", "code": "my-new-product" } }
See the Get Product endpoint for more info about the output.
Delete Product
DELETE /api/products/:product_id.json
- DELETE /api/products/:product_id.json will delete the product specified and return 200 OK if that was successful.
Example:
curl -s \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -u APP_API_KEY:APP_API_PASSWORD \ -X DELETE \ https://shop_subdomain.versacommerce.de/api/products/:product_id.json Status: 200 OK
Filter Products
GET /api/products.json?filter_name1=filter_value1&filter_name2=filter_value2
- GET /api/products.json?filter_name_1=filter_value_1&filter_name_2=filter_value_2 will return a filtered list of products. See the Get Products endpoint for more info about the output.
Available Filters and Options
Filter-/Optionname | Description | Type | Parameter |
---|---|---|---|
limit | The amount of results, defaults to 150, maximum are 250 | Integer | limit=10 |
offset | The amount of results to omit | Integer | offset=10 |
include | Include one or more product associations (format: variants, properties, recommendations, product_images, …) | String | include=items |
show_variants | Show variants as product and not as a child of a product (not nested). | Boolean | show_variant=true |
category | Filter by category | String | category=electronics |
vendor | Filter by vendor | String | vendor=vendorname |
code | Filter by Article number (Article number is unique, so the result is always a single product) | String | code=sample_code_001 |
title | Filter by title | String | title=product_title |
subtitle | Filter by subtitle | String | subtitle=product_subtitle |
price | Filter by price | BigDecimal | price=100.0 |
compare_at_price | Filter by compare_at_price | BigDecimal | compare_at_price=100.0 |
extra_price | Filter by extra_price | BigDecimal | extra_price=100.0 |
created_on | Filter by product creation date | Date | created_on= 2019-12-31 |
updated_on | Filter by product update date | Date | updated_on= 2019-12-31 |
id_min | Filter products by the minimum id | Integer | id_min=10 |
id_max | Filter products by the maximum id | Integer | id_max=10 |
price_min | Filter products by the minimum price | BigDecimal | price_min=100.0 |
price_max | Filter products by the maximum price | BigDecimal | price_max=100. |
compare_at_price_min | Filter products by the minimum compare at price | BigDecimal | compare_at_price_min =100.0 |
compare_at_price_max | Filter products by the maximum compare at price | BigDecimal | compare_at_price_max =100.0 |
extra_price_min | Filter products by the minimum extra price | BigDecimal | extra_price_min=100.0 |
extra_price_max | Filter products by the maximum extra price | BigDecimal | extra_price_max=100.0 |
stock_min | Filter products by the minimum stock amount | Integer | stock_min=10 |
stock_max | Filter products by the maximum stock amount | Integer | stock_max=10 |
created_on_min | Filter to show products created after date | DateTime | created_on_min= 2019-12-31 |
created_on_max | Filter to show products created before date | DateTime | created_on_max= 2019-12-31 |
updated_on_min | Filter to show products updated after date | DateTime | updated_on_min= 2019-12-31 |
updated_on_max | Filter to show products updated before date | DateTime | updated_on_max= 2019-12-31 |
- GET /api/products.json?include=variants&show_variants=true will return all products and variants (not nested). See the Get Products endpoint for more info about the output.
Example:
$ curl -s \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -u APP_API_KEY:APP_API_PASSWORD \ -X GET \ https://shop_subdomain.versacommerce.de/api/products.json?include=variants&show_variants=true
Status: 200 OK [ { "product": { "active": true, ... "id": 127258, ... "product_id": null, ... "variant_ids": [ 127250, 127259 ] } }, { "product": { "active": true, ... "id": 127250, ... "product_id": 127258, ... "variants_count": 0, "variant_ids": [] } }, { "product": { "active": true, ... "id": 127259, ... "product_id": 127258, .... "variants_count": 0, "variant_ids": [] } }, ... ]
Get Product
GET /api/products/:product_id.json
- GET /api/products/:product_id.json will return the specified product.
Example:
$ curl -s \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -u APP_API_KEY:APP_API_PASSWORD \ -X GET \ https://shop_subdomain.versacommerce.de/api/products/:product_id.json
Status: 200 OK { "product": { "active": true, "base_perform_calculation": false, "base_quantity": 1, "base_quantity_package": 1, "base_quantity_sold": 1, "base_unit": "Piece", "boolean_option_01": false, "calculates_shipping_cost": true, "category": "Technology", "category_handle": "technology", "code": " 4988028120657", "compare_at_price": "0.0", "considers_stock": false, "content_meta_description": null, "content_meta_keywords": null, "content_title_tag": null, "created_on": "2011-10-17T02:00:00+02:00", "custom_url": null, "custom_url_routing": "standard_url_is_canonical", "date_option_01": null, "date_option_02": null, "description": "My product description...", "description_html": "My product description...", "extra_price": "0.0", "featured": false, "featured_image_url": "https://assets.versacommerce.de/my-shop_versacommerce_de/product_images/117/original/my_image.jpg", "format": "tinymce", "handle": "deh-6300sd", "id": 117, "new": false, "note": null, "option_01": "", "option_02": "", "option_03": "", "packaging_duration": 0, "position": null, "price": "129.0", "product_id": null, "product_images_count": 4, "properties_count": 2, "shop_id": 953, "shows_stock_amount": false, "stock": 0, "subtitle": null, "tag_list": "Audio,Car,Technology,Amplifier", "tags_count": 9, "tax_category": "standard", "title": "DEH-6300SD", "updated_on": "2012-01-31T01:00:00+01:00", "vendor": "Pioneer", "vendor_handle": "pioneer", "visible": true, "weight": 0, "variants_count": 2, "url": "/products/deh-6300sd", "variant_ids": [ 118, 119 ] } }
Get Products Count
GET /api/products/count.json
- GET /api/products/count.json will return the products count.
Example:
$ curl -s \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -u APP_API_KEY:APP_API_PASSWORD \ -X GET \ https://shop_subdomain.versacommerce.de/api/products/count.json
Status: 200 OK { "count": 124 }
Get Products
GET /api/products.json
- GET /api/products.json will return the first 150 (default limit) products. You can increase the limit to a maximum of 250 products. See the Filter Products endpoint for more info.
Example:
$ curl -s \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -u APP_API_KEY:APP_API_PASSWORD \ -X GET \ https://shop_subdomain.versacommerce.de/api/products.json
Status: 200 OK [ { "product": { "active": true, "base_perform_calculation": false, "base_quantity": 1, "base_quantity_package": 1, "base_quantity_sold": 1, "base_unit": "Piece", "boolean_option_01": false, "calculates_shipping_cost": true, "category": "Fashion", "category_handle": "fashion", "code": "dress-001", "compare_at_price": "19.95", "considers_stock": true, "content_meta_description": null, "content_meta_keywords": null, "content_title_tag": null, "created_on": "2011-10-07T02:00:00+02:00", "custom_url": null, "custom_url_routing": "standard_url_is_canonical", "date_option_01": null, "date_option_02": null, "description": "My product description...", "description_html": "My product description...", "extra_price": "0.0", "featured": true, "featured_image_url": "https://assets.versacommerce.de/my-shop_versacommerce_de/product_images/100/original/my_image.jpg", "format": "tinymce", "handle": "jersey-dress-now-for-a-special-price", "id": 100, "new": false, "note": null, "option_01": null, "option_02": null, "option_03": null, "packaging_duration": 4, "position": null, "price": "12.0", "product_id": null, "product_images_count": 6, "properties_count": 4, "shop_id": 953, "shows_stock_amount": true, "stock": 2, "subtitle": "Now for a special price!", "tag_list": "Blue,Dress", "tags_count": 5, "tax_category": "standard", "title": "Jersey dress", "updated_on": "2013-09-28T16:57:01+02:00", "vendor": "Promod", "vendor_handle": "promod", "visible": true, "weight": 0, "variants_count": 2, "url": "/products/jersey-dress-now-for-a-special-price", "variant_ids": [ 101, 102 ] } }, { "product": { "active": true, "base_perform_calculation": false, "base_quantity": 1, "base_quantity_package": 1, "base_quantity_sold": 1, "base_unit": "Piece", "boolean_option_01": false, "calculates_shipping_cost": true, "category": "Fashion", "category_handle": "fashion", "code": "dress-002", "compare_at_price": "39.95", "considers_stock": true, "content_meta_description": null, "content_meta_keywords": null, "content_title_tag": null, "created_on": "2011-10-07T02:00:00+02:00", "custom_url": null, "custom_url_routing": "standard_url_is_canonical", "date_option_01": null, "date_option_02": null, "description": "My product description...", "description_html": "My product description...", "extra_price": "0.0", "featured": false, "featured_image_url": "https://assets.versacommerce.de/my-shop_versacommerce_de/product_images/103/original/my_image_2_.jpg", "format": "tinymce", "handle": "knee-length-modest-neckline-dress", "id": 103, "new": true, "note": null, "option_01": null, "option_02": null, "option_03": null, "packaging_duration": 0, "position": null, "price": "20.0", "product_id": null, "product_images_count": 4, "properties_count": 4, "shop_id": 953, "shows_stock_amount": true, "stock": 1, "subtitle": null, "tag_list": "Red,Dress", "tags_count": 8, "tax_category": "standard", "title": "Knee Length Modest Neckline Dress", "updated_on": "2011-10-07T02:00:00+02:00", "vendor": "XOXO", "vendor_handle": "xoxo", "visible": true, "weight": 0, "variants_count": 0, "url": "/products/knee-length-modest-neckline-dress", "variant_ids": [] } } ]
Update Product
PUT /api/products/:product_id.json
- PUT /api/products/:product_id.json will update the product from the parameters passed.
Example:
$ curl -s \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -u APP_API_KEY:APP_API_PASSWORD \ -X PUT \ -d \ '{ "product": { "title": "This is my new product title!", "code": "my-new-product-code" } }' \ https://shop_subdomain.versacommerce.de/api/products/:product_id.json
Status: 200 OK { "product": { "title": "This is my new product title!", "code": "my-new-product-code" } }
See the Get Product endpoint for more info about the output.