Products

POST /products

Create a new product. The json with the product should be valid with the following json-schema

Request content format

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "A representation of a product",
    "type": "object",
    "required": ["sku", "name"],
    "properties": {
        "sku": {"type":"string"},
        "base_sku": {"type":"string"},
        "name": {"type":"string", "minLength": 1},
        "base_name": {"type": "string"},
        "brand": {"type":"string"},
        "description": {"type":"string"},
        "url": {"type":"string"},
        "image_url": {"type":"string"},
        "thumbnail_url": {"type":"string"},
        "price": {"type":"number"},
        "offer_price": {"type":"number"},        
        "stock": {"type":"number"},
        "available": {"type":"boolean"},
        "release_date": {"type":"string"},
        "category": {
            "type": "array",
            "items": {
                "oneOf": [
                    {
                        "type": "string",
                        "minLength" : 1,
                        "maxLength" : 100
                    },
                    {
                        "type": "object",
                        "required": ["id", "name" ],
                        "properties": {
                            "id": {
                                "type" : "string",
                                "minLength" : 1,
                                "maxLength" : 64
                            },
                            "name": {
                                "type" : "string",
                                "minLength" : 1,
                                "maxLength" : 100
                            },
                            "url": { "type": "string" },
                            "image_url": { "type": "string" }
                        }
                    }
                ]
            }
        },
        "specifications": {
            "type": "array",
            "items": {
                "type": "object",
                "required": ["name", "value"],
                "properties": {
                    "name": { "type": "string" },
                    "value": { "type": "string" }
                }
            }
        },
        "metadata": {
            "type": "object"
        },
        "with_extension_warranty": { "type": "boolean" },
        "custom_attributes": { "type": "object" }
    }
}

Example

This is a valid purchase according to the previous json-schema:

{
    "sku": "6786896868",
    "base_sku": "6786896",
    "brand": "BGH Positive",
    "name": "Notebook",
    "base_name": "BGH Notebook",
    "description": "Notebook BGH 14\"",
    "url": "http://www.example.com/notebook-bgh-6786896868",
    "image_url": "http://www.example.com/notebook-bgh-6786896868.png",
    "thumbnail_url": "http://www.example.com/thumbnail_notebook-bgh-6786896868.png",
    "price": 12200,
    "offer_price": 12000,
    "stock": 20,
    "available": true,
    "release_date": "2020-04-16T00:00:00-03:00",
    "category": [
        {
            "id": "a",
            "name": "Todos los productos",
            "url": "http://www.example.com/categorias/a",
            "image_url": "http://www.example.com/categorias/a.jpg"
        },
        {
            "id": "a-b",
            "name": "Hogar",
            "url": "http://www.example.com/categorias/a/b",
            "image_url": "http://www.example.com/categorias/b.png"
        },
        {
            "id": "a-b-c",
            "name": "Notebook",
            "url": "http://www.example.com/categorias/a/b/c",
            "image_url": "http://www.example.com/categorias/c.jpg"
        }
    ],
    "specifications": [
        {"name": "Disco rígido", "value": "1TB"}
    ],
    "metadata": {
        "internal_id": 123456789,
        "uploaded_by": {
            "id": 1,
            "name": "john doe",
            "email": "dataentry@myecommerce.com"
        }
    },
    "custom_attributes": { 
        "weight": 2,
        "release_date": "2019-05-22T14:35:22-03:00"
    }
}

This is a curl example:

curl -X POST \
  https://api.woowup.com/apiv3/products \
  -H 'accept: application/json' \
  -H 'authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
  -H 'cache-control: no-cache' \
  -d '{
    "sku": "6786896868",
    "base_sku": "6786896",
    "brand": "BGH Positive",
    "name": "Notebook",
    "base_name": "BGH Notebook",
    "description": "Notebook BGH 14\"",
    "url": "http://www.example.com/notebook-bgh-6786896868",
    "image_url": "http://www.example.com/notebook-bgh-6786896868.png",
    "thumbnail_url": "http://www.example.com/thumbnail_notebook-bgh-6786896868.png",
    "price": 12200,
    "offer_price": 12000,
    "stock": 20,
    "available": true,
    "release_date": "2020-04-16 03:00:00",
    "category": [
        {
            "id": "a",
            "name": "Todos los productos",
            "url": "http://www.example.com/categorias/a",
            "image_url": "http://www.example.com/categorias/a.jpg"
        },
        {
            "id": "a-b",
            "name": "Hogar",
            "url": "http://www.example.com/categorias/a/b",
            "image_url": "http://www.example.com/categorias/b.png"
        },
        {
            "id": "a-b-c",
            "name": "Notebook",
            "url": "http://www.example.com/categorias/a/b/c",
            "image_url": "http://www.example.com/categorias/c.jpg"
        }
    ],
    "specifications": [
        {"name": "Disco rígido", "value": "1TB"}
    ],
    "metadata": {
        "internal_id": 123456789,
        "uploaded_by": {
            "id": 1,
            "name": "john doe",
            "email": "dataentry@myecommerce.com"
        }
    },
    "custom_attributes": { 
        "weight": 2,
        "release_date": "2019-05-22T14:35:22-03:00"
    }
}'

Errors

HttpCode

HttpCode Name

Code

Description

201

ok

ok

Request successful

400

bad request

bad_request

Invalid parameters, view message for more details

429

too many requests

too_many_requests

API's requests-per-second limit exceeded

500

internal error

internal_error

Unexpected error

POST /products/bulk

Create multiple products in one request. This endpoint is equal to /products but accept an array of products.

This is an example with 2 products in one request:

curl -X POST \
  https://api.woowup.com/apiv3/products/bulk \
  -H 'accept: application/json' \
  -H 'authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
  -H 'cache-control: no-cache' \
  -d '[{
    "sku": "6786896868",
    "brand": "BGH Positive",
    "name": "Notebook",
    "base_name": "BGH Notebook",
    "description": "Notebook BGH 14\"",
    "url": "http://www.example.com/notebook-bgh-6786896868",
    "image_url": "http://www.example.com/notebook-bgh-6786896868.png",
    "thumbnail_url": "http://www.example.com/thumbnail_notebook-bgh-6786896868.png",
    "price": 12200,
    "offer_price": 12000,
    "stock": 20,
    "available": true,
    "category": [
        {
            "id": "a",
            "name": "Todos los productos",
            "url": "http://www.example.com/categorias/a",
            "image_url": "http://www.example.com/categorias/a.jpg"
        },
        {
            "id": "a-b",
            "name": "Hogar",
            "url": "http://www.example.com/categorias/a/b",
            "image_url": "http://www.example.com/categorias/b.png"
        },
        {
            "id": "a-b-c",
            "name": "Notebook",
            "url": "http://www.example.com/categorias/a/b/c",
            "image_url": "http://www.example.com/categorias/c.jpg"
        }
    ],
    "specifications": [
        {"name": "Disco rígido", "value": "1TB"}
    ],
    "metadata": {
        "internal_id": 123456789,
        "uploaded_by": {
            "id": 1,
            "name": "john doe",
            "email": "dataentry@myecommerce.com"
        }
    },
    "custom_attributes": { 
        "weight": 2,
        "release_date": "2019-05-22T14:35:22-03:00"
    }
}, {
    "sku": "44558987",
    "brand": "Asus",
    "name": "Notebook",
    "base_name": "Asus Notebook",
    "description": "Notebook ASUS 15\"",
    "url": "http://www.example.com/notebook-asus-44558987",
    "image_url": "http://www.example.com/notebook-asus-44558987.png",
    "thumbnail_url": "http://www.example.com/thumbnail_notebook-asus-44558987.png",
    "price": 14000,
    "offer_price": 13900,
    "stock": 15,
    "available": true,
    "category": [
        {
            "id": "a",
            "name": "Todos los productos",
            "url": "http://www.example.com/categorias/a",
            "image_url": "http://www.example.com/categorias/a.jpg"
        },
        {
            "id": "a-b",
            "name": "Hogar",
            "url": "http://www.example.com/categorias/a/b",
            "image_url": "http://www.example.com/categorias/b.png"
        },
        {
            "id": "a-b-c",
            "name": "Notebook",
            "url": "http://www.example.com/categorias/a/b/c",
            "image_url": "http://www.example.com/categorias/c.jpg"
        }
    ],
    "specifications": [
        {"name": "Disco rígido", "value": "720GB"}
    ]
}]'

Errors

HttpCode

HttpCode Name

Code

Description

201

ok

ok

Request successful

400

bad request

bad_request

Invalid parameters, view message for more details

429

too many requests

too_many_requests

API's requests-per-second limit exceeded

500

internal error

internal_error

Unexpected error

PUT /products/{id}

Update product's information. The {id} parameter is required and can be: the product's code encoded or the product's id.

This is an example to update the stock and the availability of the product according to the json schema on the POST section:

curl -X PUT \
  https://api.woowup.com/apiv3/products/Njc4Njg5Njg2OA== \
  -H 'accept: application/json' \
  -H 'authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
  -H 'cache-control: no-cache' \
  -d '{
    "sku": "6786896868",
    "base_sku": "6786896",
    "brand": "BGH Positive",
    "name": "Notebook",
    "base_name": "BGH Notebook",
    "description": "Notebook BGH 14\"",
    "url": "http://www.example.com/notebook-bgh-6786896868",
    "image_url": "http://www.example.com/notebook-bgh-6786896868.png",
    "thumbnail_url": "http://www.example.com/thumbnail_notebook-bgh-6786896868.png",
    "price": 12200,
    "offer_price": 12000,
    "stock": 20,
    "available": true,
    "release_date": "2020-04-16T00:00:00-03:00",
    "category": [
        {
            "id": "a",
            "name": "Todos los productos",
            "url": "http://www.example.com/categorias/a",
            "image_url": "http://www.example.com/categorias/a.jpg"
        },
        {
            "id": "a-b",
            "name": "Hogar",
            "url": "http://www.example.com/categorias/a/b",
            "image_url": "http://www.example.com/categorias/b.png"
        },
        {
            "id": "a-b-c",
            "name": "Notebook",
            "url": "http://www.example.com/categorias/a/b/c",
            "image_url": "http://www.example.com/categorias/c.jpg"
        }
    ],
    "specifications": [
        {"name": "Disco rígido", "value": "1TB"}
    ],
    "metadata": {
        "internal_id": 987654321,
        "uploaded_by": {
            "id": 2,
            "name": "joanne doe",
            "email": "dataentry2@myecommerce.com"
        }
    },
    "custom_attributes": { 
        "weight": 15,
        "release_date": "2019-04-26"
    }
}'

Errors

HttpCode

HttpCode Name

Code

Description

200

ok

ok

Request successful

400

bad request

bad_request

Invalid parameters, view message for more details

404

not found

not_found

Product not found

429

too many requests

too_many_requests

API's requests-per-second limit exceeded

500

internal error

internal_error

Unexpected error

GET /products/{id}/exist

Test if a product exist by id/sku. The {id} parameter is required and can be: the product's code encoded or the product's id.

Parameter

Type

Required

Description

id

uri

Yes

Product ID or encoded sku

Example

curl -X GET \
    -H "Accept: application/json" \
    -H "Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -H "Cache-Control: no-cache" \
    "https://api.woowup.com/apiv3/products/12345/exist"

Response

{
    "payload": {
        "exist": true
    },
    "message":"ok",
    "code":"ok",
    "time":"100ms"
}

Errors

HttpCode

HttpCode Name

Code

Description

200

ok

ok

Request successful

429

too many requests

too_many_requests

API's requests-per-second limit exceeded

500

internal error

internal_error

Unexpected error

Last updated