Storeden Developers

Products API

Current version: v1.1

Products list

Get a list of all your items

GET
/products/list.json
nodes (string) Additional fields can be required on the fly passing via get "nodes" url parameter.
Available fields: title, image_id, ean, mpn, update_at, weight, dimension, description, categoryUID , brandUID .
Multiples accepted using comma separation.
brandUID optional (int) Filter products for a specified brandUID, can be combined with categoryUID param
categoryUID option (int) Filter products for a specified categoryUID, can be combined with brandUID param
Products list Request

$storeden = new Storeden\Storeden($config);
$products_list = $storeden->get('/products/list.json');
					
Products list Response

[
    {
        "code": "a58",
        "price": 173,
        "final_price": 173,
        "status": 1,
        "uid": 49532
    },
    ...
    {
        "code": "135424",
        "price": 6.66,
        "final_price": 6.66,
        "status": 1,
        "uid": 49558
    },
    ...
]
					

Get product details

List a full featured fieldset of one product

GET
/products/product.json?uid={product-uid}
uid required (int) Unique id of your product
Get product details Request

$storeden = new Storeden\Storeden($config);
$product_details = $storeden->get('/products/product.json?uid=49558');
					
Get product details Response

{
    "attributes": [],
    "brandUID": 49232,
    "categoryUID": [ //
        49557        // Legacy name, use categories instead
    ],               //
    "categories": [
        49557
    ],
    "code": "135424", // legacy name, check against sku instead
    "sku": "135424",
    "data": {
        "ean13": "",
        "ean8": "",
        "isbn": "",
        "issn": "",
        "unlimited": false
    },
    "description": "Product Description",
    "dimension": {
        "w": "0",
        "h": "10",
        "z": "0"
    },
    "price": 6.66,
    "final_price": 6.66,
    "highview": 0,
    "parameters": [],
    "seo": {
        "title": "Product SEO Title",
        "keywords": "product, seo, keywords",
        "description": "Product SEO Description"
    },
    "shipping_cost": 0,
    "slug": "api-product-test-custom-friendly-url",
    "status": 1,
    "stockCount": 100, // legacy name, use stock_count instead,
    "stock_count": 100,
    "tags": [],
    "taxable": 0,
    "taxprofile": "52dd3382be85f18660000000", // legacy name, usa tax_profile instead,
	"tax_profile": "52dd3382be85f18660000000",
    "title": "Api Product Test",
    "uid": 49558,
    "updateDate": {
        "sec": 1396856023,
        "usec": 608000
    },
    "usevariants": 0,
    "weight": 0,
    "image_id": "52dd3382be85f186600000fef"
}
					

Get product images list

GET
/products/image.json?uid={product-uid}
uid required (int) Unique id of your product
Get product images list Request

$storeden = new Storeden\Storeden($config);
$result = $storeden->get('/products/image.json?uid=114550');
					
Get product images list Response

{
    "product": {
        "uid": 114550
    },
    "images": [
        {
            "image_id": "569f4c0b16f46a366c8b4569",
            "thumbnail": "https://static-cdn.storeden.com/secache/569f4c0b16f46a366c8b4569",
            "original": "https://tcdn.storeden.com/gallery/569f4c0b16f46a366c8b4569"
        }
    ]
}
					

Remove product

DELETE
/products/product.json
uid required (int) Unique id of your product
Remove product Request

$storeden = new Storeden\Storeden($config);
$response = $storeden->delete('/products/product.json', ['uid' => 114550]);
					
Remove product Response

{
	"ok": 1,
	"err": null
}
					

Add product

Add a new product to your catalog

POST
/products/product.json
sku required (string) Unique product identifier.
If a product with the same sku is found, an error will be triggered.
title required (string)
description required (string)
tax_profile required (StoredenID)
price required (real) Listing product price, must be higher than 0.
final_price (real) Selling product price. If empty or not higher than 0, "price" field will be used instead.
Product final price must be higher than original price.
brandUID (int) UID of existing brand
categories (array)[int] List of existing categories UID
stock_count required (int) Available product quantity.
package_width (real)
package_height (real)
package_length (real)
weight (real)
shipping_cost (int) Set to -1 to indicate free shipping for this item.
Set to 0 or leave empty otherwise.
data (associative array) Extra product information:
EAN: string of a valid EAN number
MPN: string of item MPN
unlimitedsell: 1/0
minQuantity: (int) minimum items buyable
maxQuantity: (int) maximum items buyable
steps: (int) items after the minimum number of items buyable
tags (string) String of tags, without whitespaces, separated by commas
Eg: "tag1,tag2,tag3"
seo (associative array) SEO meta data for store main language
"seo": {
    "title": "Product SEO Title",
    "keywords": "product, seo, keywords",
    "description": "Product SEO Description"
}
seo_lang (associative array) SEO meta data for additional languages
"seo": {
    "en_US": {
      "title": "Product SEO Title",
      "keywords": "product, seo, keywords",
      "description": "Product SEO Description"
  }
.... }
additional_tabs (associative array) Additional descriptions, from 0 to 4
"additional_tabs": {
    0: "Text of additinal tab 0",
    1: "Text of additinal tab 1",
    2: "Text of additinal tab 2",
    3: "Text of additinal tab 3",
    4: "Text of additinal tab 4"
}
status (int) Nov 7th, 2019 Default is "1" ( Product visible). You can send "0" (product not visible).
Add product Request

$payload = array();
$payload['sku'] = 'PRODUCT_SKU';
$payload['title'] = 'Product title';
$payload['description'] = 'Product description...';
$payload['tax_profile'] = '52dd3382be85f18660000000';
$payload['price'] = 10;
$payload['final_price'] = 8.5;
// ...

$storeden = new Storeden\Storeden($config);
$response = $storeden->post('/products/product.json', $payload);
					
Add product Response

{
    "product_uid": 114557,
    "urls": {
        "manage": "https://132-backoffice.storeden.com/products/edit/114557"
    },
    "next": {
        "image": {
            "method": "POST",
            "endpoint": "https://connect.storeden.com/v1.1/products/image.json"
        }
    }
}
					

Update product data

Note: if the product has variants, it is also necessary to execute the update call of variants otherwise the product will have the variants disabled.

PUT
/products/product.json
uid required (int) Unique id of product to update
title required (string)
description required (string)
categories (array)[int] List of existing categories uid
tax_profile required (StoredenID)
price required (float) Listing product price, must be higher than 0.
final_price (float) Selling product price. If empty or not higher than 0, "price" field will be used instead.
Product final price must be higher than original price.
sku required (string) Unique product identifier.
stock_count required (int) Available product quantity.
brandUID (int) Unique identifier of existing brand.
package_width (float)
package_height (float)
package_length (float)
weight (float)
facebook (int) Enable (1) or disable (0) Facebook selling.
shipping_cost (int) Set to -1 to indicate free shipping for this item.
Set to 0 or leave empty otherwise.
data (associative array)
data[ean13]
data[mpn]
data[unlimitedsell]
data[minQuantity]
data[maxQuantity]
data[steps]
< Extra product information:


EAN13: string of a valid EAN number
MPN: string of item MPN
unlimitedsell: 1/0
minQuantity: (int) minimum items buyable
maxQuantity: (int) maximum items buyable
steps: (int) items after the minimum number of items buyable
* If you pass just one element in "data", please be aware that this "data" container will be completely overwritten.
tags (string) String of tags, without whitespaces, separated by commas
Eg: "tag1,tag2,tag3"
seo (associative array)
seo[title]
seo[description]
seo[keywords]
SEO meta data for store main language
"seo": {
    "title": "Product SEO Title",
    "keywords": "product, seo, keywords",
    "description": "Product SEO Description"
}
seo_lang (associative array)
seo_lang[lng][title]
seo_lang[lng][keywords]
seo_lang[lng][description]
SEO meta data for additional languages
"seo": {
    "en_US": {
      "title": "Product SEO Title",
      "keywords": "product, seo, keywords",
      "description": "Product SEO Description"
  }
.... }
additional_tabs (associative array)
additional_tabs[0]
additional_tabs[1]
additional_tabs[2]
additional_tabs[3]
additional_tabs[4]
Additional descriptions, from 0 to 4
"additional_tabs": {
    0: "Text of additinal tab 0",
    1: "Text of additinal tab 1",
    2: "Text of additinal tab 2",
    3: "Text of additinal tab 3",
    4: "Text of additinal tab 4"
}
status (int) Nov 7th, 2019 "1" => Product Visible
"0" => Product not visible
Update product data Request

$payload = array();
$payload['uid'] = 1325574;
$payload['title'] = 'Product title';
$payload['description'] = 'Product description...';
$payload['tax_profile'] = '52dd3382be85f18660000000';
$payload['price'] = 10;
$payload['final_price'] = 8.5;
$payload['sku'] = 'PRODUCT_SKU';
$payload['stock_count'] = 10;
// ...

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/product.json', $payload);
					
Update product data Response

{
    "ok": 1,
    "err": null
}
					

Upload product image

POST
/products/image.json
uid required (int) Unique id of your product
base64 required (base64) Base64 encoded image content
related (int) Specify if uploaded image will be the principal image (0) or a related image (1)
Upload product image Request

$payload = array();
$payload['uid'] = 1325574;
$payload['base64'] = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA....';
$payload['related'] = 0;

$storeden = new Storeden\Storeden($config);
$response = $storeden->post('/products/image.json', $payload);
					
Upload product image Response

{
    "image_id": "56a0aa7e16f46a334cc7c823",
    "thumbnail": "https://static-cdn.storeden.com/secache/56a0aa7e16f46a334cc7c823",
    "original": "https://tcdn.storeden.com/gallery/56a0aa7e16f46a334cc7c823"
}
					

Set image placeholder

PUT
/products/image.json
uid required (int) Unique id of your product
image_id required (StoredenId) Unique image identifier
Set image placeholder Request

$payload = array();
$payload['uid'] = 1325574;
$payload['image_id'] = '56a0aa7e16f46a334cc7c823';

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/image.json', $payload);
					
Set image placeholder Response

{
    "n": "1",
    "ok": 1
}
					

Search product

Search product by SKU

GET
/products/search.json?sku={product-sku}
sku required (string) Product Sku
Search product Request

$storeden = new Storeden\Storeden($config);
$response = $storeden->get('/products/search.json?sku=PRODUCT_SKU');
					
Search product Response

{
    "uid": 114554,
    "endpoint": {
        "type": "GET",
        "url": "https://connect.storeden.com/v1.1/products/product.json?uid=114554"
    }
}
					

Product visibility

Enable of disable product for sells.

PUT
/products/status.json
uid required (int) An existing product uid
status required (int) Set status to 1 to enable product visibility or 0 to disable product visibility
Product visibility Request

$payload = array();
$payload['uid'] = 1325574;
$payload['status'] = 1;

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/status.json', $payload);
					
Product visibility Response

{
    "ok" : 1
}
					

Blomming product publish

Publish/Depublish product from Blomming marketplace.

PUT
/products/blomming.json
uid required (int) An existing product uid
publish required (int) Set push to 1 to enable product on blomming marketplace or 0 to disable product on blomming marketplace
Blomming product publish Request

$payload = array();
$payload['uid'] = 20506087;
$payload['publish'] = 1;

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/blomming.json', $payload);
					
Blomming product publish Response

{
    "action": "publish",
    "status": true,
    "itemUID": "20506087"
}
					

Get additional tabs

GET
/products/addition_tabs.json?product_uid={uid}
product_uid required (int) Unique id of your product
Get additional tabs Request

$storeden = new Storeden\Storeden($config);
$response = $storeden->get('/products/addition_tabs.json?product_uid=1325574');
			
Get additional tabs Response

{
	"count" : 5,
	"tab_0" : "tab 0 content",
	"tab_1" : "tab 1 content",
	"tab_2" : "tab 2 content",
	"tab_3" : "tab 3 content",
	"tab_4" : "tab 4 content",
}
			

Get product prices

GET
/products/prices.json?uid={uid}
uid required (int) Unique id of your product
Get product prices Request

$storeden = new Storeden\Storeden($config);
$response = $storeden->get('/products/prices.json?uid=17843530');
					
Get product prices Response

{
	"uid" : 17843530,
	"final_price" : 80.00,
	"price" : 100.00,
	"discount" : 20.00
}
					

Update product prices

PUT
/products/prices.json
uid required (int) Unique id of your product
price required (real)
final_price required (real)
Update product prices Request

$payload = array();
$payload['uid'] = 20506087;
$payload['price'] = 10;
$payload['final_price'] = 7.5;

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/prices.json', $payload);
					
Update product prices Response

{
	"ok" : 1
}
					

Bulk product prices update

PUT
/products/bulk_prices.json
product (associative array)
product[SKU][price]
product[SKU][final_price]

product[SKU_M][variants][SKU_V][price]
product[SKU_M][variants][SKU_V][final_price]
SKU: string of a valid product SKU (without variants)
SKU_M: string of a valid product master SKU (with variants)
SKU_V: string of a valid product variant SKU
price: (float) price of product / product variant
final_price: (float) final price of product / product variant

* Please be aware that it is necessary to pass all the product variants with their prices. The lower price between variants will determine the base price of the master product.
Bulk product prices update Request

$payload = array();
$payload['product']['SKU']['price'] = 12;
$payload['product']['SKU']['final_price'] = 12;
$payload['product']['SKU_M']['variants']['SKU_V1']['price'] = 45.9;
$payload['product']['SKU_M']['variants']['SKU_V1']['final_price'] = 45.9;
$payload['product']['SKU_M']['variants']['SKU_V2']['price'] = 62;
$payload['product']['SKU_M']['variants']['SKU_V2']['final_price'] = 62;
$payload['product']['SKU_M']['variants']['SKU_V3']['price'] = 88;
$payload['product']['SKU_M']['variants']['SKU_V3']['final_price'] = 88;
// ...

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/bulk_prices.json', $payload);
					
Bulk product prices update response

{
    "ok": 1,
    "nModified": 100
}
					

Update product weight

PUT
/products/weight.json
uid required (int) Unique id of your product
weight required (real)
Update product weight Request

$payload = array();
$payload['uid'] = 20506087;
$payload['weight'] = 3.9;

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/weight.json', $payload);
						
Update product weight Response

{
	"ok" : 1
}
					

Update product dimension

PUT
/products/dimensions.json
uid required (int) Unique id of your product
width required (real)
height required (real)
depth required (real)
Update product dimension Request

$payload = array();
$payload['uid'] = 20506087;
$payload['width'] = 24.00;
$payload['height'] = 27.00;
$payload['depth'] = 1.5;

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/dimensions.json', $payload);
					
Update product dimension Response

{
	"ok" : 1
}
					

Assign specific category to product

PUT
/products/category.json
uid required (int) Unique id of your product
categoryUID (int) Existing category UID
Assign specific category to product Request

$payload = array();
$payload['uid'] = 20506087;
$payload['categoryUID'] = 42782;

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/category.json', $payload);
					
Assign specific category to product Response

{
	"ok" : 1
}
					

Update product attributes

PUT
/products/attributes.json
uid required (int) Unique id of your product
[attribute_id]:[value] required (StoredenID) repeatable Substitute the "attribute_id" with a valid attribute id.
Value type depends on attribute type definition.
Update product attributes Request

$payload = array();
$payload['uid'] = 20506087;
$payload['56764sdf930643sdfs'] = 'Attribute text value';
$payload['56764930634643sdfa'] = 1;
$payload['5676493s034643sdce'] = 49.99;
// ...

$storeden = new Storeden\Storeden($config);
$response = $storeden->put('/products/attributes.json', $payload);
					
Update product attributes Response

{
    "ok" : 1
}
					

Update products variants

PUT
/products/variants.json
uid required (int) Unique id of your products
usevariants (int) Enable the use of variants (1) or disable it (0)
vars (array)[string] Variants to use in combinations "variants"
variants (array)[string] NB: url of the image: the picture must be uploaded before the assignment
Example

{
	"uid" : 123,
	"usevariants" : 1,
	"vars" : {
		"taglia" : ["s", "m", "l"],
		"colore" : ["rosso", "giallo"]
	},
	"variants" : [
		{
			"superkey" => "s_rosso",
			"available" => 10,
			"price" => 0,
			"sku" => "sku_s_rosso",
			"image" => "https://...."
			"variants" : {
				"taglia" : "s",
				"colore" : "rosso"
			}
		},
		.... // each combination of vars options
	]
}
					

Update products filters

PUT
/products/filter.json
uid required (int) Unique id of your products
filters required (associative array) Couples "filter_key" : "option_index"
Example

{
	"uid" : 123,
	"filters" : {
		"color" : 3,
		"material" : 6,
		"size" : 0
	}
}
					

Get related products

GET
/products/related_products.json
uid required (int) Unique uid of your product
Get related products Response

{
	"count": 1,
	"products": [
		241274
	]
}
					

Set related products

Insert a list of related products

PUT
/products/related_products.json
uid required (int) Unique uid of your product
related[] (int) repeatable Unique uid of product
Set related products

{
	"ok": 1,
	"nModified": 1,
	"err": null,
	"associated": [
		"241274"
	]
}
					

Remove product image(s)

DELETE
/products/image.json
uid required* (int) Unique uid of your product
type required* (string) principal => delete only the principal product image, all => delete all images from product
Remove product image(s) result

{
    "uid": 1420670,
    "remove_operation": true
}