MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

This API is not authenticated.

Account Deletion

Request account deletion

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/delete-account" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"No longer need the account\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/delete-account"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "No longer need the account"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": null,
    "message": "A 6-digit verification code has been sent to your email. Please verify to complete account deletion."
}
 

Request      

POST api/v1/ecommerce/delete-account

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

reason   string  optional    

The reason for account deletion (optional). Example: No longer need the account

Verify and confirm account deletion

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/delete-account/verify" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_code\": \"123456\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/delete-account/verify"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "verification_code": "123456"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": null,
    "message": "Your account deletion has been confirmed and will be processed shortly."
}
 

Request      

POST api/v1/ecommerce/delete-account/verify

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

verification_code   string     

The 6-digit verification code sent to email. Example: 123456

Address

Get list of address by customer

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/addresses" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/addresses"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/addresses

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Create new address for customer

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/addresses" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"John Doe\",
    \"email\": \"[email protected]\",
    \"phone\": \"0123456789\",
    \"country\": \"United States or US\",
    \"state\": \"California\",
    \"city\": \"Los Angeles\",
    \"address\": \"123 Main St\",
    \"is_default\": true,
    \"zip_code\": \"90001\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/addresses"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "John Doe",
    "email": "[email protected]",
    "phone": "0123456789",
    "country": "United States or US",
    "state": "California",
    "city": "Los Angeles",
    "address": "123 Main St",
    "is_default": true,
    "zip_code": "90001"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "id": 1,
        "name": "John Doe",
        "phone": "0123456789",
        "email": "[email protected]",
        "country": "United States",
        "state": "California",
        "city": "Los Angeles",
        "address": "123 Main St",
        "zip_code": "90001",
        "is_default": true
    },
    "message": null
}
 

Request      

POST api/v1/ecommerce/addresses

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

The name of the address owner. Example: John Doe

email   string     

The email address. Example: [email protected]

phone   string     

The phone number. Example: 0123456789

country   string  optional    

The country name or country code. Example: United States or US

state   string  optional    

The state/province name. Example: California

city   string  optional    

The city name. Example: Los Angeles

address   string  optional    

The street address. Example: 123 Main St

is_default   boolean  optional    

Set as default address. Example: true

zip_code   string  optional    

The postal/zip code. Example: 90001

Update an address

requires authentication

Example request:
curl --request PUT \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/addresses/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"John Doe\",
    \"email\": \"[email protected]\",
    \"phone\": \"0123456789\",
    \"country\": \"United States or US\",
    \"state\": \"California\",
    \"city\": \"Los Angeles\",
    \"address\": \"123 Main St\",
    \"is_default\": true,
    \"zip_code\": \"90001\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/addresses/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "John Doe",
    "email": "[email protected]",
    "phone": "0123456789",
    "country": "United States or US",
    "state": "California",
    "city": "Los Angeles",
    "address": "123 Main St",
    "is_default": true,
    "zip_code": "90001"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "id": 1,
        "name": "John Doe",
        "phone": "0123456789",
        "email": "[email protected]",
        "country": "United States",
        "state": "California",
        "city": "Los Angeles",
        "address": "123 Main St",
        "zip_code": "90001",
        "is_default": true
    },
    "message": null
}
 

Request      

PUT api/v1/ecommerce/addresses/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the address. Example: 1

Body Parameters

name   string     

The name of the address owner. Example: John Doe

email   string     

The email address. Example: [email protected]

phone   string     

The phone number. Example: 0123456789

country   string  optional    

The country name or country code. Example: United States or US

state   string     

The state/province name. Example: California

city   string     

The city name. Example: Los Angeles

address   string     

The street address. Example: 123 Main St

is_default   boolean  optional    

Set as default address. Example: true

zip_code   string  optional    

The postal/zip code. Example: 90001

Delete an address

requires authentication

Example request:
curl --request DELETE \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/addresses/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/addresses/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": null,
    "message": "Address deleted successfully"
}
 

Request      

DELETE api/v1/ecommerce/addresses/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the address. Example: 1

Get list of available countries

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/countries" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/countries"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "name": "Vietnam",
            "code": "VN"
        }
    ],
    "message": null
}
 

Request      

GET api/v1/ecommerce/countries

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Ads

Get ads

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ads?keys[]=homepage-banner&keys[]=sidebar-banner" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keys\": [
        \"homepage-banner\",
        \"sidebar-banner\"
    ]
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ads"
);

const params = {
    "keys[0]": "homepage-banner",
    "keys[1]": "sidebar-banner",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keys": [
        "homepage-banner",
        "sidebar-banner"
    ]
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": false,
    "data": [],
    "message": null
}
 

Request      

GET api/v1/ads

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

keys   string[]  optional    

Array of ad keys to filter by.

Body Parameters

keys   string[]  optional    

Array of ad keys to filter by.

Authentication

Register

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Smith\",
    \"name\": \"architecto\",
    \"email\": \"[email protected]\",
    \"password\": \"|]|{+-\",
    \"phone\": \"architecto\",
    \"password_confirmation\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/register"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_name": "John",
    "last_name": "Smith",
    "name": "architecto",
    "email": "[email protected]",
    "password": "|]|{+-",
    "phone": "architecto",
    "password_confirmation": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": null,
    "message": "Registered successfully! We emailed you to verify your account!"
}
 

Example response (422):


{
    "message": "The given data was invalid.",
    "errors": {
        "name": [
            "The name field is required."
        ],
        "email": [
            "The email field is required."
        ],
        "password": [
            "The password field is required."
        ]
    }
}
 

Request      

POST api/v1/register

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

first_name   string  optional    

The first name of the user. This field is required when name is not present. Must not be greater than 120 characters. Must be at least 2 characters. Example: John

last_name   string  optional    

The last name of the user. This field is required when name is not present. Must not be greater than 120 characters. Must be at least 2 characters. Example: Smith

name   string     

The name of the user. Example: architecto

email   string     

The email of the user. Example: [email protected]

password   string     

The password of user to create. Example: |]|{+-

phone   string     

The phone of the user. Example: architecto

password_confirmation   string     

The password confirmation. Example: architecto

Login

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\",
    \"password\": \"|]|{+-\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]",
    "password": "|]|{+-"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "token": "1|aF5s7p3xxx1lVL8hkSrPN72m4wPVpTvTs..."
    },
    "message": null
}
 

Request      

POST api/v1/login

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

email   string     

The email of the user. Example: [email protected]

password   string     

The password of user to create. Example: |]|{+-

Check email existing or not

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/email/check" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/email/check"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "exists": true
    },
    "message": null
}
 

Request      

POST api/v1/email/check

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

email   string     

The email of the user. Example: [email protected]

Forgot password

Send a reset link to the given user.

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/password/forgot" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/password/forgot"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/password/forgot

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

email   string     

The email of the user. Example: [email protected]

Resend email verification

Resend the email verification notification.

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/resend-verify-account-email" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/resend-verify-account-email"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "[email protected]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/resend-verify-account-email

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

email   string     

The email of the user. Example: [email protected]

Logout

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/logout"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/logout

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Blog

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"q\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/search"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "q": "architecto"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "items": [
            {
                "id": 1,
                "title": "Sample Post",
                "slug": "sample-post",
                "excerpt": "This is a sample post excerpt"
            }
        ],
        "query": "sample",
        "count": 1
    }
}
 

Example response (400):


{
    "error": true,
    "message": "No search result"
}
 

List posts

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/posts?per_page=16&page=16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/posts"
);

const params = {
    "per_page": "16",
    "page": "16",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "id": 1,
            "title": "Sample Post",
            "slug": "sample-post",
            "excerpt": "This is a sample post excerpt",
            "content": "Full post content here...",
            "published_at": "2023-01-01T00:00:00.000000Z",
            "author": {
                "id": 1,
                "name": "John Doe"
            },
            "categories": [],
            "tags": []
        }
    ],
    "message": null
}
 

Request      

GET api/v1/posts

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

per_page   integer  optional    

The number of items to return per page (default: 10). Example: 16

page   integer  optional    

The page number to retrieve (default: 1). Example: 16

List categories

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/categories?per_page=16&page=16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/categories"
);

const params = {
    "per_page": "16",
    "page": "16",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "id": 1,
            "name": "Technology",
            "slug": "technology",
            "description": "Latest tech news and updates",
            "created_at": "2023-01-01T00:00:00.000000Z"
        }
    ],
    "message": null
}
 

Request      

GET api/v1/categories

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

per_page   integer  optional    

The number of items to return per page (default: 10). Example: 16

page   integer  optional    

The page number to retrieve (default: 1). Example: 16

List tags

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/tags?per_page=16&page=16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/tags"
);

const params = {
    "per_page": "16",
    "page": "16",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "id": 1,
            "name": "Laravel",
            "slug": "laravel",
            "description": "PHP Framework for web development",
            "created_at": "2023-01-01T00:00:00.000000Z"
        }
    ],
    "message": null
}
 

Request      

GET api/v1/tags

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

per_page   integer  optional    

The number of items to return per page (default: 10). Example: 16

page   integer  optional    

The page number to retrieve (default: 1). Example: 16

Filters posts

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/posts/filters?page=16&per_page=16&search=architecto&after=architecto&author=architecto&author_exclude=architecto&before=architecto&exclude=architecto&include=architecto&order=architecto&order_by=architecto&categories=architecto&categories_exclude=architecto&tags=architecto&tags_exclude=architecto&featured=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/posts/filters"
);

const params = {
    "page": "16",
    "per_page": "16",
    "search": "architecto",
    "after": "architecto",
    "author": "architecto",
    "author_exclude": "architecto",
    "before": "architecto",
    "exclude": "architecto",
    "include": "architecto",
    "order": "architecto",
    "order_by": "architecto",
    "categories": "architecto",
    "categories_exclude": "architecto",
    "tags": "architecto",
    "tags_exclude": "architecto",
    "featured": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [],
    "links": {
        "first": "https://ecommerce-api.botble.com/api/v1/posts/filters?page=1",
        "last": "https://ecommerce-api.botble.com/api/v1/posts/filters?page=1",
        "prev": "https://ecommerce-api.botble.com/api/v1/posts/filters?page=15",
        "next": null
    },
    "meta": {
        "current_page": 16,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": "https://ecommerce-api.botble.com/api/v1/posts/filters?page=15",
                "label": "&laquo; Previous",
                "page": 15,
                "active": false
            },
            {
                "url": "https://ecommerce-api.botble.com/api/v1/posts/filters?page=1",
                "label": "1",
                "page": 1,
                "active": false
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "page": null,
                "active": false
            }
        ],
        "path": "https://ecommerce-api.botble.com/api/v1/posts/filters",
        "per_page": 16,
        "to": null,
        "total": 0
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/posts/filters

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

page   integer  optional    

Current page of the collection. Default: 1 Example: 16

per_page   integer  optional    

Maximum number of items to be returned in result set.Default: 10 Example: 16

search   string  optional    

Limit results to those matching a string. Example: architecto

after   string  optional    

Limit response to posts published after a given ISO8601 compliant date. Example: architecto

author   string  optional    

Limit result set to posts assigned to specific authors. Example: architecto

author_exclude   string  optional    

Ensure result set excludes posts assigned to specific authors. Example: architecto

before   string  optional    

Limit response to posts published before a given ISO8601 compliant date. Example: architecto

exclude   string  optional    

Ensure result set excludes specific IDs. Example: architecto

include   string  optional    

Limit result set to specific IDs. Example: architecto

order   string  optional    

Order sort attribute ascending or descending. Default: desc .One of: asc, desc Example: architecto

order_by   string  optional    

Sort collection by object attribute. Default: updated_at. One of: author, created_at, updated_at, id, slug, title Example: architecto

categories   string  optional    

Limit result set to all items that have the specified term assigned in the categories taxonomy. Example: architecto

categories_exclude   string  optional    

Limit result set to all items except those that have the specified term assigned in the categories taxonomy. Example: architecto

tags   string  optional    

Limit result set to all items that have the specified term assigned in the tags taxonomy. Example: architecto

tags_exclude   string  optional    

Limit result set to all items except those that have the specified term assigned in the tags taxonomy. Example: architecto

featured   string  optional    

Limit result set to items that are sticky. Example: architecto

Get post by slug

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/posts/architecto?slug=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/posts/architecto"
);

const params = {
    "slug": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Not found"
}
 

Request      

GET api/v1/posts/{slug}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the post. Example: architecto

Query Parameters

slug   string  optional    

Find by slug of post. Example: architecto

Filters categories

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/categories/filters?page=16&per_page=16&search=architecto&order=architecto&order_by=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/categories/filters"
);

const params = {
    "page": "16",
    "per_page": "16",
    "search": "architecto",
    "order": "architecto",
    "order_by": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "id": 1,
            "name": "Technology",
            "slug": "technology",
            "description": "Latest tech news and updates"
        }
    ],
    "message": null
}
 

Request      

GET api/v1/categories/filters

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

page   integer  optional    

Current page of the collection (default: 1). Example: 16

per_page   integer  optional    

Maximum number of items to be returned (default: 10). Example: 16

search   string  optional    

Limit results to those matching a string. Example: architecto

order   string  optional    

Order sort attribute ascending or descending (default: desc). One of: asc, desc. Example: architecto

order_by   string  optional    

Sort collection by object attribute (default: created_at). One of: created_at, updated_at, id, name. Example: architecto

Get category by slug

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/categories/architecto?slug=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/categories/architecto"
);

const params = {
    "slug": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Not found"
}
 

Request      

GET api/v1/categories/{slug}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the category. Example: architecto

Query Parameters

slug   string  optional    

Find by slug of category. Example: architecto

Brands

Get list of brands

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/brands?brands=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"is_featured\": false
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/brands"
);

const params = {
    "brands": "",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "is_featured": false
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [],
    "links": {
        "first": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands?page=1",
        "last": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "page": null,
                "active": false
            },
            {
                "url": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "page": null,
                "active": false
            }
        ],
        "path": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands",
        "per_page": 16,
        "to": null,
        "total": 0
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/brands

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

brands   string[]  optional    

List of brand IDs if you need filter by brands.

page   integer  optional    

Page number. Default: 1.

per_page   integer  optional    

Number of items per page. Default: 16.

Body Parameters

brands   string[]  optional    

The id of an existing record in the ec_brands table.

is_featured   boolean  optional    

Filter by featured status. Example: false

Get brand details by slug

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/brands/{slug}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the brand. Example: architecto

Get products by brand

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 24,
            "slug": "boxed-bluetooth-headphone-digital",
            "url": "https://ecommerce-api.botble.com/products/boxed-bluetooth-headphone-digital",
            "name": "Boxed - Bluetooth Headphone (Digital)",
            "sku": "XJ-168-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 19,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 519.1035,
            "price_formatted": "$519.10",
            "original_price": 610.71,
            "original_price_formatted": "$610.71",
            "reviews_avg": 2.63,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/24-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/24-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/24-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/24-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/24-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/24-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/24-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/24-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/24-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/24-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/24-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/24-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/24-4-300x300.jpg"
                ]
            },
            "weight": 557,
            "height": 12,
            "wide": 19,
            "length": 13,
            "image_url": "https://ecommerce-api.botble.com/storage/products/24-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 8,
                "slug": "old-el-paso",
                "name": "Old El Paso"
            }
        },
        {
            "id": 25,
            "slug": "camera-samsung-ss-24",
            "url": "https://ecommerce-api.botble.com/products/camera-samsung-ss-24",
            "name": "Camera Samsung SS-24",
            "sku": "KO-172-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 14,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 399.24,
            "price_formatted": "$399.24",
            "original_price": 399.24,
            "original_price_formatted": "$399.24",
            "reviews_avg": 2.6,
            "reviews_count": 5,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/25-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/25-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/25-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/25-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/25-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/25-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/25-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/25-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/25-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/25-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/25-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/25-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/25-4-300x300.jpg"
                ]
            },
            "weight": 899,
            "height": 12,
            "wide": 15,
            "length": 20,
            "image_url": "https://ecommerce-api.botble.com/storage/products/25-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 5,
                "slug": "roberts-store",
                "name": "Robert's Store"
            }
        },
        {
            "id": 26,
            "slug": "leather-watch-in-black",
            "url": "https://ecommerce-api.botble.com/products/leather-watch-in-black",
            "name": "Leather Watch In Black",
            "sku": "PN-162",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 11,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 696.25,
            "price_formatted": "$696.25",
            "original_price": 1154.25,
            "original_price_formatted": "$1,154.25",
            "reviews_avg": 2.7,
            "reviews_count": 10,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/26-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/26-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/26-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/26-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/26-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/26-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/26-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/26-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/26-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/26-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/26-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/26-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/26-4-300x300.jpg"
                ]
            },
            "weight": 587,
            "height": 12,
            "wide": 14,
            "length": 10,
            "image_url": "https://ecommerce-api.botble.com/storage/products/26-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 6,
                "slug": "stouffer",
                "name": "Stouffer"
            }
        },
        {
            "id": 27,
            "slug": "apple-iphone-13-plus",
            "url": "https://ecommerce-api.botble.com/products/apple-iphone-13-plus",
            "name": "Apple iPhone 13 Plus",
            "sku": "VF-116-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 707.8,
            "price_formatted": "$707.80",
            "original_price": 707.8,
            "original_price_formatted": "$707.80",
            "reviews_avg": 3.44,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/27-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/27-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/27-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/27-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/27-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/27-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/27-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/27-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/27-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/27-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/27-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/27-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/27-4-300x300.jpg"
                ]
            },
            "weight": 874,
            "height": 18,
            "wide": 20,
            "length": 11,
            "image_url": "https://ecommerce-api.botble.com/storage/products/27-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 28,
            "slug": "macbook-pro-2015-digital",
            "url": "https://ecommerce-api.botble.com/products/macbook-pro-2015-digital",
            "name": "Macbook Pro 2015 (Digital)",
            "sku": "3B-155-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 11,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 70.3969,
            "price_formatted": "$70.40",
            "original_price": 89.11,
            "original_price_formatted": "$89.11",
            "reviews_avg": 3.44,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/28-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/28-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/28-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/28-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/28-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/28-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/28-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/28-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/28-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/28-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/28-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/28-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/28-4-300x300.jpg"
                ]
            },
            "weight": 842,
            "height": 14,
            "wide": 11,
            "length": 19,
            "image_url": "https://ecommerce-api.botble.com/storage/products/28-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 9,
                "slug": "tyson",
                "name": "Tyson"
            }
        },
        {
            "id": 29,
            "slug": "apple-watch-serial-7",
            "url": "https://ecommerce-api.botble.com/products/apple-watch-serial-7",
            "name": "Apple Watch Serial 7",
            "sku": "VN-199-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 10,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 872.94,
            "price_formatted": "$872.94",
            "original_price": 872.94,
            "original_price_formatted": "$872.94",
            "reviews_avg": 3.78,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/29-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/29-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/29-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/29-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/29-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/29-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/29-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/29-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/29-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/29-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/29-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/29-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/29-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/29-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/29-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/29-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/29-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/29-3-300x300.jpg"
                ]
            },
            "weight": 607,
            "height": 14,
            "wide": 14,
            "length": 15,
            "image_url": "https://ecommerce-api.botble.com/storage/products/29-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 30,
            "slug": "macbook-pro-13-inch",
            "url": "https://ecommerce-api.botble.com/products/macbook-pro-13-inch",
            "name": "Macbook Pro 13 inch",
            "sku": "DW-171",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 15,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 303.74,
            "price_formatted": "$303.74",
            "original_price": 531.74,
            "original_price_formatted": "$531.74",
            "reviews_avg": 3.1,
            "reviews_count": 10,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/30-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/30-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/30-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/30-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/30-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/30-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/30-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/30-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/30-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/30-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/30-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/30-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/30-4-300x300.jpg"
                ]
            },
            "weight": 728,
            "height": 17,
            "wide": 10,
            "length": 11,
            "image_url": "https://ecommerce-api.botble.com/storage/products/30-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 7,
                "slug": "starkist",
                "name": "StarKist"
            }
        },
        {
            "id": 31,
            "slug": "apple-keyboard",
            "url": "https://ecommerce-api.botble.com/products/apple-keyboard",
            "name": "Apple Keyboard",
            "sku": "EG-127",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 10,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 729.27,
            "price_formatted": "$729.27",
            "original_price": 982.27,
            "original_price_formatted": "$982.27",
            "reviews_avg": 2.63,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/31-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/31-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/31-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/31-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/31-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/31-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/31-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/31-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/31-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/31-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/31-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/31-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/31-4-300x300.jpg"
                ]
            },
            "weight": 818,
            "height": 17,
            "wide": 15,
            "length": 11,
            "image_url": "https://ecommerce-api.botble.com/storage/products/31-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 7,
                "slug": "starkist",
                "name": "StarKist"
            }
        },
        {
            "id": 32,
            "slug": "macsafe-80w-digital",
            "url": "https://ecommerce-api.botble.com/products/macsafe-80w-digital",
            "name": "MacSafe 80W (Digital)",
            "sku": "AC-154-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 11,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 281.5797,
            "price_formatted": "$281.58",
            "original_price": 356.43,
            "original_price_formatted": "$356.43",
            "reviews_avg": 3,
            "reviews_count": 10,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/32-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/32-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/32-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/32-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/32-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/32-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/32-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/32-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/32-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/32-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/32-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/32-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/32-4-300x300.jpg"
                ]
            },
            "weight": 503,
            "height": 19,
            "wide": 12,
            "length": 13,
            "image_url": "https://ecommerce-api.botble.com/storage/products/32-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 1,
                "slug": "gopro",
                "name": "GoPro"
            }
        },
        {
            "id": 33,
            "slug": "hand-playstation",
            "url": "https://ecommerce-api.botble.com/products/hand-playstation",
            "name": "Hand playstation",
            "sku": "KO-103-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 20,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 494.21,
            "price_formatted": "$494.21",
            "original_price": 494.21,
            "original_price_formatted": "$494.21",
            "reviews_avg": 2.63,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/33-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/33-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/33-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/33-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/33-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/33-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/33-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/33-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/33-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/33-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/33-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/33-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/33-4-300x300.jpg"
                ]
            },
            "weight": 803,
            "height": 10,
            "wide": 14,
            "length": 10,
            "image_url": "https://ecommerce-api.botble.com/storage/products/33-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 8,
                "slug": "old-el-paso",
                "name": "Old El Paso"
            }
        },
        {
            "id": 34,
            "slug": "apple-airpods-serial-3",
            "url": "https://ecommerce-api.botble.com/products/apple-airpods-serial-3",
            "name": "Apple Airpods Serial 3",
            "sku": "UY-123",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 20,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1395.328,
            "price_formatted": "$1,395.33",
            "original_price": 1585.6,
            "original_price_formatted": "$1,585.60",
            "reviews_avg": 3.2,
            "reviews_count": 5,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/34-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/34-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/34-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/34-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/34-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/34-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/34-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/34-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/34-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/34-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/34-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/34-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/34-4-300x300.jpg"
                ]
            },
            "weight": 791,
            "height": 15,
            "wide": 18,
            "length": 13,
            "image_url": "https://ecommerce-api.botble.com/storage/products/34-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 7,
                "slug": "starkist",
                "name": "StarKist"
            }
        },
        {
            "id": 35,
            "slug": "cool-smart-watches",
            "url": "https://ecommerce-api.botble.com/products/cool-smart-watches",
            "name": "Cool Smart Watches",
            "sku": "QO-107",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 166.59,
            "price_formatted": "$166.59",
            "original_price": 1595.59,
            "original_price_formatted": "$1,595.59",
            "reviews_avg": 3.67,
            "reviews_count": 6,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/35-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/35-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/35-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/35-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/35-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/35-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/35-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/35-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/35-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/35-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/35-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/35-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/35-4-300x300.jpg"
                ]
            },
            "weight": 815,
            "height": 12,
            "wide": 13,
            "length": 15,
            "image_url": "https://ecommerce-api.botble.com/storage/products/35-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 7,
                "slug": "starkist",
                "name": "StarKist"
            }
        },
        {
            "id": 36,
            "slug": "black-smart-watches-digital",
            "url": "https://ecommerce-api.botble.com/products/black-smart-watches-digital",
            "name": "Black Smart Watches (Digital)",
            "sku": "HJ-159",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 976.69,
            "price_formatted": "$976.69",
            "original_price": 1300.69,
            "original_price_formatted": "$1,300.69",
            "reviews_avg": 3.14,
            "reviews_count": 7,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/36-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/36-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/36-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/36-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/36-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/36-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/36-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/36-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/36-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/36-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/36-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/36-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/36-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/36-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/36-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/36-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/36-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/36-3-300x300.jpg"
                ]
            },
            "weight": 884,
            "height": 18,
            "wide": 20,
            "length": 17,
            "image_url": "https://ecommerce-api.botble.com/storage/products/36-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 9,
                "slug": "tyson",
                "name": "Tyson"
            }
        },
        {
            "id": 37,
            "slug": "leather-watch-in-black",
            "url": "https://ecommerce-api.botble.com/products/leather-watch-in-black",
            "name": "Leather Watch In Black",
            "sku": "I0-194-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 17,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 429.24,
            "price_formatted": "$429.24",
            "original_price": 429.24,
            "original_price_formatted": "$429.24",
            "reviews_avg": 2.86,
            "reviews_count": 7,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/37-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/37-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/37-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/37-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/37-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/37-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/37-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/37-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/37-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/37-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/37-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/37-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/37-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/37-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/37-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/37-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/37-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/37-3-300x300.jpg"
                ]
            },
            "weight": 893,
            "height": 14,
            "wide": 16,
            "length": 20,
            "image_url": "https://ecommerce-api.botble.com/storage/products/37-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 38,
            "slug": "macbook-pro-2015-13-inch",
            "url": "https://ecommerce-api.botble.com/products/macbook-pro-2015-13-inch",
            "name": "Macbook Pro 2015 13 inch",
            "sku": "1E-199-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 10,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1326.34,
            "price_formatted": "$1,326.34",
            "original_price": 1326.34,
            "original_price_formatted": "$1,326.34",
            "reviews_avg": 3.2,
            "reviews_count": 5,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/38-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/38-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/38-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/38-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/38-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/38-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/38-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/38-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/38-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/38-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/38-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/38-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/38-4-300x300.jpg"
                ]
            },
            "weight": 796,
            "height": 13,
            "wide": 13,
            "length": 11,
            "image_url": "https://ecommerce-api.botble.com/storage/products/38-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 39,
            "slug": "sony-wh-1000xm4-wireless-headphones",
            "url": "https://ecommerce-api.botble.com/products/sony-wh-1000xm4-wireless-headphones",
            "name": "Sony WH-1000XM4 Wireless Headphones",
            "sku": "J3-142",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 13,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 944.66,
            "price_formatted": "$944.66",
            "original_price": 1314.66,
            "original_price_formatted": "$1,314.66",
            "reviews_avg": 2.33,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/39-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/39-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/39-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/39-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/39-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/39-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/39-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/39-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/39-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/39-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/39-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/39-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/39-4-300x300.jpg"
                ]
            },
            "weight": 770,
            "height": 11,
            "wide": 16,
            "length": 18,
            "image_url": "https://ecommerce-api.botble.com/storage/products/39-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 40,
            "slug": "samsung-galaxy-s22-ultra-digital",
            "url": "https://ecommerce-api.botble.com/products/samsung-galaxy-s22-ultra-digital",
            "name": "Samsung Galaxy S22 Ultra (Digital)",
            "sku": "I7-198",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1643.5496,
            "price_formatted": "$1,643.55",
            "original_price": 1867.67,
            "original_price_formatted": "$1,867.67",
            "reviews_avg": 3.78,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/40-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/40-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/40-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/40-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/40-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/40-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/40-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/40-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/40-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/40-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/40-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/40-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/40-4-300x300.jpg"
                ]
            },
            "weight": 856,
            "height": 15,
            "wide": 12,
            "length": 12,
            "image_url": "https://ecommerce-api.botble.com/storage/products/40-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 41,
            "slug": "dell-xps-15-laptop",
            "url": "https://ecommerce-api.botble.com/products/dell-xps-15-laptop",
            "name": "Dell XPS 15 Laptop",
            "sku": "DR-150-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 425.85,
            "price_formatted": "$425.85",
            "original_price": 425.85,
            "original_price_formatted": "$425.85",
            "reviews_avg": 2.33,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/41-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/41-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/41-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/41-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/41-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/41-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/41-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/41-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/41-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/41-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/41-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/41-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/41-4-300x300.jpg"
                ]
            },
            "weight": 663,
            "height": 13,
            "wide": 19,
            "length": 16,
            "image_url": "https://ecommerce-api.botble.com/storage/products/41-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 1,
                "slug": "gopro",
                "name": "GoPro"
            }
        },
        {
            "id": 42,
            "slug": "ipad-pro-129-inch",
            "url": "https://ecommerce-api.botble.com/products/ipad-pro-129-inch",
            "name": "iPad Pro 12.9-inch",
            "sku": "AA-160-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1631.63,
            "price_formatted": "$1,631.63",
            "original_price": 1631.63,
            "original_price_formatted": "$1,631.63",
            "reviews_avg": 2.33,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/42-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/42-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/42-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/42-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/42-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/42-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/42-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/42-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/42-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/42-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/42-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/42-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/42-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/42-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/42-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/42-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/42-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/42-3-300x300.jpg"
                ]
            },
            "weight": 536,
            "height": 10,
            "wide": 18,
            "length": 12,
            "image_url": "https://ecommerce-api.botble.com/storage/products/42-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 43,
            "slug": "bose-quietcomfort-earbuds",
            "url": "https://ecommerce-api.botble.com/products/bose-quietcomfort-earbuds",
            "name": "Bose QuietComfort Earbuds",
            "sku": "IJ-187-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 469.49,
            "price_formatted": "$469.49",
            "original_price": 469.49,
            "original_price_formatted": "$469.49",
            "reviews_avg": 2.63,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/43-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/43-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/43-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/43-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/43-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/43-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/43-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/43-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/43-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/43-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/43-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/43-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/43-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/43-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/43-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/43-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/43-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/43-3-300x300.jpg"
                ]
            },
            "weight": 568,
            "height": 20,
            "wide": 14,
            "length": 19,
            "image_url": "https://ecommerce-api.botble.com/storage/products/43-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 6,
                "slug": "stouffer",
                "name": "Stouffer"
            }
        },
        {
            "id": 44,
            "slug": "lg-oled-c1-series-tv-digital",
            "url": "https://ecommerce-api.botble.com/products/lg-oled-c1-series-tv-digital",
            "name": "LG OLED C1 Series TV (Digital)",
            "sku": "GM-177",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 280.23,
            "price_formatted": "$280.23",
            "original_price": 506.23,
            "original_price_formatted": "$506.23",
            "reviews_avg": 3.13,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/44-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/44-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/44-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/44-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/44-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/44-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/44-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/44-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/44-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/44-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/44-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/44-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/44-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/44-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/44-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/44-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/44-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/44-3-300x300.jpg"
                ]
            },
            "weight": 742,
            "height": 19,
            "wide": 20,
            "length": 11,
            "image_url": "https://ecommerce-api.botble.com/storage/products/44-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 7,
                "slug": "starkist",
                "name": "StarKist"
            }
        },
        {
            "id": 45,
            "slug": "dyson-v11-vacuum-cleaner",
            "url": "https://ecommerce-api.botble.com/products/dyson-v11-vacuum-cleaner",
            "name": "Dyson V11 Vacuum Cleaner",
            "sku": "I9-159-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 759.59,
            "price_formatted": "$759.59",
            "original_price": 759.59,
            "original_price_formatted": "$759.59",
            "reviews_avg": 3.57,
            "reviews_count": 7,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/45-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/45-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/45-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/45-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/45-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/45-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/45-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/45-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/45-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/45-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/45-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/45-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/45-4-300x300.jpg"
                ]
            },
            "weight": 673,
            "height": 16,
            "wide": 16,
            "length": 20,
            "image_url": "https://ecommerce-api.botble.com/storage/products/45-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 1,
                "slug": "gopro",
                "name": "GoPro"
            }
        },
        {
            "id": 46,
            "slug": "nintendo-switch-oled-model",
            "url": "https://ecommerce-api.botble.com/products/nintendo-switch-oled-model",
            "name": "Nintendo Switch OLED Model",
            "sku": "XC-199",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 15,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 625.68,
            "price_formatted": "$625.68",
            "original_price": 1550.68,
            "original_price_formatted": "$1,550.68",
            "reviews_avg": 3.63,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/46-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/46-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/46-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/46-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/46-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/46-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/46-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/46-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/46-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/46-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/46-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/46-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/46-4-300x300.jpg"
                ]
            },
            "weight": 550,
            "height": 15,
            "wide": 11,
            "length": 18,
            "image_url": "https://ecommerce-api.botble.com/storage/products/46-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 47,
            "slug": "canon-eos-r5-camera",
            "url": "https://ecommerce-api.botble.com/products/canon-eos-r5-camera",
            "name": "Canon EOS R5 Camera",
            "sku": "2F-150",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 17,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 900.19,
            "price_formatted": "$900.19",
            "original_price": 1370.19,
            "original_price_formatted": "$1,370.19",
            "reviews_avg": 3,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/47-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/47-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/47-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/47-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/47-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/47-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/47-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/47-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/47-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/47-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/47-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/47-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/47-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/47-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/47-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/47-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/47-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/47-3-300x300.jpg"
                ]
            },
            "weight": 557,
            "height": 17,
            "wide": 12,
            "length": 20,
            "image_url": "https://ecommerce-api.botble.com/storage/products/47-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 1,
                "slug": "gopro",
                "name": "GoPro"
            }
        },
        {
            "id": 48,
            "slug": "fitbit-sense-smartwatch-digital",
            "url": "https://ecommerce-api.botble.com/products/fitbit-sense-smartwatch-digital",
            "name": "Fitbit Sense Smartwatch (Digital)",
            "sku": "H6-193-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 591.226,
            "price_formatted": "$591.23",
            "original_price": 695.56,
            "original_price_formatted": "$695.56",
            "reviews_avg": 3.14,
            "reviews_count": 7,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/48-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/48-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/48-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/48-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/48-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/48-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/48-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/48-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/48-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/48-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/48-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/48-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/48-4-300x300.jpg"
                ]
            },
            "weight": 769,
            "height": 15,
            "wide": 19,
            "length": 11,
            "image_url": "https://ecommerce-api.botble.com/storage/products/48-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 6,
                "slug": "stouffer",
                "name": "Stouffer"
            }
        },
        {
            "id": 49,
            "slug": "sonos-beam-soundbar",
            "url": "https://ecommerce-api.botble.com/products/sonos-beam-soundbar",
            "name": "Sonos Beam Soundbar",
            "sku": "0D-175",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1536.1016,
            "price_formatted": "$1,536.10",
            "original_price": 1745.57,
            "original_price_formatted": "$1,745.57",
            "reviews_avg": 3.1,
            "reviews_count": 10,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/49-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/49-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/49-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/49-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/49-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/49-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/49-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/49-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/49-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/49-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/49-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/49-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/49-4-300x300.jpg"
                ]
            },
            "weight": 596,
            "height": 18,
            "wide": 18,
            "length": 20,
            "image_url": "https://ecommerce-api.botble.com/storage/products/49-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 1,
                "slug": "gopro",
                "name": "GoPro"
            }
        },
        {
            "id": 50,
            "slug": "logitech-mx-master-3-mouse",
            "url": "https://ecommerce-api.botble.com/products/logitech-mx-master-3-mouse",
            "name": "Logitech MX Master 3 Mouse",
            "sku": "M3-152-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 130.47,
            "price_formatted": "$130.47",
            "original_price": 130.47,
            "original_price_formatted": "$130.47",
            "reviews_avg": 3,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/50-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/50-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/50-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/50-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/50-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/50-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/50-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/50-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/50-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/50-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/50-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/50-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/50-4-300x300.jpg"
                ]
            },
            "weight": 621,
            "height": 17,
            "wide": 13,
            "length": 12,
            "image_url": "https://ecommerce-api.botble.com/storage/products/50-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 51,
            "slug": "kindle-paperwhite-e-reader",
            "url": "https://ecommerce-api.botble.com/products/kindle-paperwhite-e-reader",
            "name": "Kindle Paperwhite E-reader",
            "sku": "0Q-108-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1447.96,
            "price_formatted": "$1,447.96",
            "original_price": 1447.96,
            "original_price_formatted": "$1,447.96",
            "reviews_avg": 3.22,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/51-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/51-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/51-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/51-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/51-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/51-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/51-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/51-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/51-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/51-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/51-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/51-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/51-4-300x300.jpg"
                ]
            },
            "weight": 871,
            "height": 13,
            "wide": 12,
            "length": 19,
            "image_url": "https://ecommerce-api.botble.com/storage/products/51-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 52,
            "slug": "gopro-hero10-black-digital",
            "url": "https://ecommerce-api.botble.com/products/gopro-hero10-black-digital",
            "name": "GoPro HERO10 Black (Digital)",
            "sku": "9N-189",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 463.99,
            "price_formatted": "$463.99",
            "original_price": 470.99,
            "original_price_formatted": "$470.99",
            "reviews_avg": 3.22,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/52-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/52-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/52-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/52-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/52-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/52-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/52-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/52-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/52-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/52-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/52-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/52-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/52-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/52-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/52-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/52-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/52-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/52-3-300x300.jpg"
                ]
            },
            "weight": 514,
            "height": 10,
            "wide": 11,
            "length": 16,
            "image_url": "https://ecommerce-api.botble.com/storage/products/52-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 7,
                "slug": "starkist",
                "name": "StarKist"
            }
        },
        {
            "id": 53,
            "slug": "anker-powercore-power-bank",
            "url": "https://ecommerce-api.botble.com/products/anker-powercore-power-bank",
            "name": "Anker PowerCore Power Bank",
            "sku": "HX-185-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 17,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1141.15,
            "price_formatted": "$1,141.15",
            "original_price": 1141.15,
            "original_price_formatted": "$1,141.15",
            "reviews_avg": 3.25,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/53-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/53-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/53-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/53-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/53-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/53-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/53-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/53-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/53-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/53-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/53-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/53-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/53-4-300x300.jpg"
                ]
            },
            "weight": 534,
            "height": 16,
            "wide": 16,
            "length": 16,
            "image_url": "https://ecommerce-api.botble.com/storage/products/53-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 7,
                "slug": "starkist",
                "name": "StarKist"
            }
        },
        {
            "id": 54,
            "slug": "product-54",
            "url": "https://ecommerce-api.botble.com/products/product-54",
            "name": "Product 54",
            "sku": "Y4-100",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 18,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 225.704,
            "price_formatted": "$225.70",
            "original_price": 282.13,
            "original_price_formatted": "$282.13",
            "reviews_avg": 3.88,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/54-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/54-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/54-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/54-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/54-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/54-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/54-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/54-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/54-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/54-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/54-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/54-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/54-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/54-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/54-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/54-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/54-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/54-3-300x300.jpg"
                ]
            },
            "weight": 707,
            "height": 12,
            "wide": 17,
            "length": 17,
            "image_url": "https://ecommerce-api.botble.com/storage/products/54-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 5,
                "slug": "roberts-store",
                "name": "Robert's Store"
            }
        },
        {
            "id": 1,
            "slug": "smart-home-speaker",
            "url": "https://ecommerce-api.botble.com/products/smart-home-speaker",
            "name": "Smart Home Speaker",
            "sku": "VO-147-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 11,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 113.0514,
            "price_formatted": "$113.05",
            "original_price": 171.29,
            "original_price_formatted": "$171.29",
            "reviews_avg": 4.5,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/1-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/1-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/1-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/1-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/1-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/1-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/1-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/1-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/1-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/1-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/1-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/1-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/1-4-300x300.jpg"
                ]
            },
            "weight": 752,
            "height": 15,
            "wide": 19,
            "length": 13,
            "image_url": "https://ecommerce-api.botble.com/storage/products/1-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 9,
                "slug": "tyson",
                "name": "Tyson"
            }
        },
        {
            "id": 2,
            "slug": "headphone-ultra-bass",
            "url": "https://ecommerce-api.botble.com/products/headphone-ultra-bass",
            "name": "Headphone Ultra Bass",
            "sku": "LI-139",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 11,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 136.2032,
            "price_formatted": "$136.20",
            "original_price": 1081.22,
            "original_price_formatted": "$1,081.22",
            "reviews_avg": 2.75,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/2-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/2-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/2-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/2-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/2-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/2-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/2-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/2-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/2-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/2-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/2-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/2-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/2-4-300x300.jpg"
                ]
            },
            "weight": 605,
            "height": 15,
            "wide": 19,
            "length": 16,
            "image_url": "https://ecommerce-api.botble.com/storage/products/2-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 2,
                "slug": "global-office",
                "name": "Global Office"
            }
        },
        {
            "id": 3,
            "slug": "boxed-bluetooth-headphone",
            "url": "https://ecommerce-api.botble.com/products/boxed-bluetooth-headphone",
            "name": "Boxed - Bluetooth Headphone",
            "sku": "YI-137-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 546.8375,
            "price_formatted": "$546.84",
            "original_price": 994.25,
            "original_price_formatted": "$994.25",
            "reviews_avg": 3.33,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/3-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/3-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/3-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/3-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/3-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/3-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/3-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/3-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/3-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/3-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/3-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/3-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/3-4-300x300.jpg"
                ]
            },
            "weight": 517,
            "height": 17,
            "wide": 11,
            "length": 17,
            "image_url": "https://ecommerce-api.botble.com/storage/products/3-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 8,
                "slug": "old-el-paso",
                "name": "Old El Paso"
            }
        },
        {
            "id": 4,
            "slug": "camera-samsung-ss-24-digital",
            "url": "https://ecommerce-api.botble.com/products/camera-samsung-ss-24-digital",
            "name": "Camera Samsung SS-24 (Digital)",
            "sku": "1U-126-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 19,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 329.22672,
            "price_formatted": "$329.23",
            "original_price": 891.73,
            "original_price_formatted": "$891.73",
            "reviews_avg": 3.44,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/4-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/4-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/4-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/4-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/4-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/4-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/4-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/4-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/4-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/4-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/4-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/4-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/4-4-300x300.jpg"
                ]
            },
            "weight": 546,
            "height": 16,
            "wide": 13,
            "length": 13,
            "image_url": "https://ecommerce-api.botble.com/storage/products/4-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 9,
                "slug": "tyson",
                "name": "Tyson"
            }
        },
        {
            "id": 5,
            "slug": "macbook-pro-2015",
            "url": "https://ecommerce-api.botble.com/products/macbook-pro-2015",
            "name": "Macbook Pro 2015",
            "sku": "IR-169",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 20,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 30.5651,
            "price_formatted": "$30.57",
            "original_price": 447.87,
            "original_price_formatted": "$447.87",
            "reviews_avg": 2.8,
            "reviews_count": 5,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/5-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/5-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/5-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/5-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/5-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/5-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/5-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/5-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/5-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/5-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/5-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/5-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/5-4-300x300.jpg"
                ]
            },
            "weight": 702,
            "height": 18,
            "wide": 16,
            "length": 12,
            "image_url": "https://ecommerce-api.botble.com/storage/products/5-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 6,
            "slug": "apple-watch-serial-7",
            "url": "https://ecommerce-api.botble.com/products/apple-watch-serial-7",
            "name": "Apple Watch Serial 7",
            "sku": "2C-121-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 11,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 364.089,
            "price_formatted": "$364.09",
            "original_price": 617.1,
            "original_price_formatted": "$617.10",
            "reviews_avg": 3,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/6-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/6-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/6-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/6-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/6-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/6-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/6-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/6-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/6-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/6-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/6-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/6-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/6-4-300x300.jpg"
                ]
            },
            "weight": 740,
            "height": 19,
            "wide": 18,
            "length": 10,
            "image_url": "https://ecommerce-api.botble.com/storage/products/6-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 8,
                "slug": "old-el-paso",
                "name": "Old El Paso"
            }
        },
        {
            "id": 7,
            "slug": "macbook-pro-13-inch",
            "url": "https://ecommerce-api.botble.com/products/macbook-pro-13-inch",
            "name": "Macbook Pro 13 inch",
            "sku": "QS-183-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 11,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1223.6705,
            "price_formatted": "$1,223.67",
            "original_price": 1882.57,
            "original_price_formatted": "$1,882.57",
            "reviews_avg": 3.33,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/7-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/7-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/7-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/7-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/7-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/7-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/7-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/7-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/7-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/7-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/7-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/7-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/7-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/7-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/7-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/7-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/7-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/7-3-300x300.jpg"
                ]
            },
            "weight": 768,
            "height": 10,
            "wide": 14,
            "length": 20,
            "image_url": "https://ecommerce-api.botble.com/storage/products/7-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 8,
            "slug": "apple-keyboard-digital",
            "url": "https://ecommerce-api.botble.com/products/apple-keyboard-digital",
            "name": "Apple Keyboard (Digital)",
            "sku": "LD-141",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 14,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 768.54574,
            "price_formatted": "$768.55",
            "original_price": 1988.99,
            "original_price_formatted": "$1,988.99",
            "reviews_avg": 3.25,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/8-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/8-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/8-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/8-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/8-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/8-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/8-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/8-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/8-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/8-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/8-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/8-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/8-4-300x300.jpg"
                ]
            },
            "weight": 617,
            "height": 16,
            "wide": 15,
            "length": 10,
            "image_url": "https://ecommerce-api.botble.com/storage/products/8-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 4,
                "slug": "global-store",
                "name": "Global Store"
            }
        },
        {
            "id": 9,
            "slug": "macsafe-80w",
            "url": "https://ecommerce-api.botble.com/products/macsafe-80w",
            "name": "MacSafe 80W",
            "sku": "TD-146",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 821.2008,
            "price_formatted": "$821.20",
            "original_price": 1828.92,
            "original_price_formatted": "$1,828.92",
            "reviews_avg": 3.11,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/9-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/9-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/9-3.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/9-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/9-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/9-3-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/9-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/9-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/9-3.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/9-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/9-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/9-3-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/9-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/9-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/9-3-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/9-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/9-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/9-3-300x300.jpg"
                ]
            },
            "weight": 601,
            "height": 16,
            "wide": 12,
            "length": 19,
            "image_url": "https://ecommerce-api.botble.com/storage/products/9-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 9,
                "slug": "tyson",
                "name": "Tyson"
            }
        },
        {
            "id": 10,
            "slug": "hand-playstation",
            "url": "https://ecommerce-api.botble.com/products/hand-playstation",
            "name": "Hand playstation",
            "sku": "5M-181",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 16,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 130.1265,
            "price_formatted": "$130.13",
            "original_price": 268.65,
            "original_price_formatted": "$268.65",
            "reviews_avg": 3.88,
            "reviews_count": 8,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/10-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/10-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/10-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/10-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/10-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/10-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/10-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/10-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/10-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/10-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/10-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/10-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/10-4-300x300.jpg"
                ]
            },
            "weight": 699,
            "height": 13,
            "wide": 15,
            "length": 10,
            "image_url": "https://ecommerce-api.botble.com/storage/products/10-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 3,
                "slug": "young-shop",
                "name": "Young Shop"
            }
        },
        {
            "id": 11,
            "slug": "apple-airpods-serial-3",
            "url": "https://ecommerce-api.botble.com/products/apple-airpods-serial-3",
            "name": "Apple Airpods Serial 3",
            "sku": "HY-105-A1",
            "description": "<ul><li> Unrestrained and portable active stereo speaker</li>\n            <li> Free from the confines of wires and chords</li>\n            <li> 20 hours of portable capabilities</li>\n            <li> Double-ended Coil Cord with 3.5mm Stereo Plugs Included</li>\n            <li> 3/4″ Dome Tweeters: 2X and 4″ Woofer: 1X</li></ul>",
            "content": "<p>Short Hooded Coat features a straight body, large pockets with button flaps, ventilation air holes, and a string detail along the hemline. The style is completed with a drawstring hood, featuring Rains’ signature built-in cap. Made from waterproof, matte PU, this lightweight unisex rain jacket is an ode to nostalgia through its classic silhouette and utilitarian design details.</p>\n                                <p>- Casual unisex fit</p>\n\n                                <p>- 64% polyester, 36% polyurethane</p>\n\n                                <p>- Water column pressure: 4000 mm</p>\n\n                                <p>- Model is 187cm tall and wearing a size S / M</p>\n\n                                <p>- Unisex fit</p>\n\n                                <p>- Drawstring hood with built-in cap</p>\n\n                                <p>- Front placket with snap buttons</p>\n\n                                <p>- Ventilation under armpit</p>\n\n                                <p>- Adjustable cuffs</p>\n\n                                <p>- Double welted front pockets</p>\n\n                                <p>- Adjustable elastic string at hempen</p>\n\n                                <p>- Ultrasonically welded seams</p>\n\n                                <p>This is a unisex item, please check our clothing & footwear sizing guide for specific Rains jacket sizing information. RAINS comes from the rainy nation of Denmark at the edge of the European continent, close to the ocean and with prevailing westerly winds; all factors that contribute to an average of 121 rain days each year. Arising from these rainy weather conditions comes the attitude that a quick rain shower may be beautiful, as well as moody- but first and foremost requires the right outfit. Rains focus on the whole experience of going outside on rainy days, issuing an invitation to explore even in the most mercurial weather.</p>",
            "with_storehouse_management": true,
            "quantity": 12,
            "is_out_of_stock": false,
            "stock_status_label": "In stock",
            "stock_status_html": "<span class=\"text-success\">In stock</span>",
            "price": 1834.91,
            "price_formatted": "$1,834.91",
            "original_price": 1834.91,
            "original_price_formatted": "$1,834.91",
            "reviews_avg": 2.67,
            "reviews_count": 9,
            "images": [
                "https://ecommerce-api.botble.com/storage/products/11-1.jpg",
                "https://ecommerce-api.botble.com/storage/products/11-2.jpg",
                "https://ecommerce-api.botble.com/storage/products/11-3.jpg",
                "https://ecommerce-api.botble.com/storage/products/11-4.jpg"
            ],
            "images_thumb": [
                "https://ecommerce-api.botble.com/storage/products/11-1-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/11-2-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/11-3-150x150.jpg",
                "https://ecommerce-api.botble.com/storage/products/11-4-150x150.jpg"
            ],
            "image_with_sizes": {
                "origin": [
                    "https://ecommerce-api.botble.com/storage/products/11-1.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-2.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-3.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-4.jpg"
                ],
                "thumb": [
                    "https://ecommerce-api.botble.com/storage/products/11-1-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-2-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-3-150x150.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-4-150x150.jpg"
                ],
                "medium": [
                    "https://ecommerce-api.botble.com/storage/products/11-1-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-2-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-3-790x510.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-4-790x510.jpg"
                ],
                "small": [
                    "https://ecommerce-api.botble.com/storage/products/11-1-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-2-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-3-300x300.jpg",
                    "https://ecommerce-api.botble.com/storage/products/11-4-300x300.jpg"
                ]
            },
            "weight": 564,
            "height": 20,
            "wide": 15,
            "length": 20,
            "image_url": "https://ecommerce-api.botble.com/storage/products/11-1-150x150.jpg",
            "product_options": [],
            "store": {
                "id": 2,
                "slug": "global-office",
                "name": "Global Office"
            }
        }
    ],
    "links": {
        "first": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products?page=1",
        "last": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products?page=2",
        "prev": null,
        "next": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "page": null,
                "active": false
            },
            {
                "url": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products?page=2",
                "label": "2",
                "page": 2,
                "active": false
            },
            {
                "url": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products?page=2",
                "label": "Next &raquo;",
                "page": 2,
                "active": false
            }
        ],
        "path": "https://ecommerce-api.botble.com/api/v1/ecommerce/brands/1/products",
        "per_page": 42,
        "to": 42,
        "total": 54
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/brands/{id}/products

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the brand. Example: 1

Cart

Add product to cart

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1,
    \"qty\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1,
    "qty": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/cart

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

product_id   integer     

ID of the product. Example: 1

qty   integer     

Quantity of the product. Default: 1. Example: 1

Add product to cart

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1,
    \"qty\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1,
    "qty": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/cart/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the cart. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

product_id   integer     

ID of the product. Example: 1

qty   integer     

Quantity of the product. Default: 1. Example: 1

Update quantity of a product in cart

Example request:
curl --request PUT \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1,
    \"qty\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1,
    "qty": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/ecommerce/cart/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the cart. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

product_id   integer     

ID of the product. Example: 1

qty   integer     

Quantity of the product. Example: 1

Remove a cart item by its ID.

Example request:
curl --request DELETE \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/ecommerce/cart/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the cart. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

product_id   string     

The ID of the product to remove from the cart. The id of an existing record in the ec_products table. Example: 1

Get a cart item by id.

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"customer_id\": 1,
    \"id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "customer_id": 1,
    "id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "id": "BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc",
    "cart_items": [],
    "count": 0,
    "raw_total": 0,
    "raw_total_formatted": "$0.00",
    "sub_total": 0,
    "sub_total_formatted": "$0.00",
    "tax_amount": 0,
    "tax_amount_formatted": "$0.00",
    "promotion_discount_amount": 0,
    "promotion_discount_amount_formatted": "$0.00",
    "coupon_discount_amount": 0,
    "coupon_discount_amount_formatted": "$0.00",
    "applied_coupon_code": null,
    "order_total": 0,
    "order_total_formatted": "$0.00"
}
 

Request      

GET api/v1/ecommerce/cart/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the cart. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

customer_id   integer  optional    

is ID of the customer. Example: 1

id   string     

ID of the cart item. Example: e70c6c88dae8344b03e39bb147eba66a

Refresh cart items

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/refresh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"products\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/cart/refresh"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "products": [
        "architecto"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/cart/refresh

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

products   string[]     

List of products with product_id and quantity.

product_id   integer     

The ID of the product. The id of an existing record in the ec_products table. Example: 1

quantity   integer     

The quantity of the product. Must be at least 1. Example: 2

*   object  optional    
product_id   integer     

ID of the product. Example: 1

quantity   integer     

Quantity of the product. Example: 1

Calculate tax for products in cart

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/checkout/taxes/calculate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"products\": [
        \"architecto\"
    ],
    \"country\": \"US\",
    \"state\": \"CA\",
    \"city\": \"Los Angeles\",
    \"zip_code\": \"90001\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/checkout/taxes/calculate"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "products": [
        "architecto"
    ],
    "country": "US",
    "state": "CA",
    "city": "Los Angeles",
    "zip_code": "90001"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "items": [
        {
            "product_id": 1,
            "price": 100,
            "price_formatted": "$100.00",
            "quantity": 2,
            "tax_rate": 10,
            "tax_amount": 20,
            "tax_amount_formatted": "$20.00",
            "subtotal": 200,
            "subtotal_formatted": "$200.00",
            "total": 220,
            "total_formatted": "$220.00"
        }
    ],
    "totals": {
        "sub_total": 200,
        "sub_total_formatted": "$200.00",
        "tax_amount": 20,
        "tax_amount_formatted": "$20.00",
        "total": 220,
        "total_formatted": "$220.00"
    }
}
 

Request      

POST api/v1/ecommerce/checkout/taxes/calculate

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

products   string[]     

List of products with id and quantity.

id   string     

The ID of the product. The id of an existing record in the ec_products table. Example: 1

quantity   integer     

The quantity of the product. Must be at least 1. Example: 2

*   object  optional    
id   integer     

Product ID. Example: 1

quantity   integer     

Product quantity. Example: 2

country   string  optional    

Country code. Example: US

state   string  optional    

State code. Example: CA

city   string  optional    

City name. Example: Los Angeles

zip_code   string  optional    

ZIP code. Example: 90001

Checkout

Process Checkout Process the checkout for a specific cart ID. This endpoint restores the cart, generates an order token, and redirects the user to the checkout page.

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/checkout/cart/12345" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/checkout/cart/12345"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (302):


{}
 

Example response (302):

Show headers
cache-control: no-cache, private
location: https://ecommerce-api.botble.com/checkout/56ad732ac2b91d942b8a24fd9c4c994f
content-type: text/html; charset=utf-8
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
access-control-allow-origin: *
set-cookie: botble_session=eyJpdiI6IkRYVHFSTk10aWYvQ0MyZzc1MWlPN1E9PSIsInZhbHVlIjoic0R5SGFIOGhlOXNzaloycHppcnE2YUw1S0pLa1Jqb21Ub3lqdXpMaDMyVVF3T3MvVFREVi8yQWpnd2o0MWdSeFAwNngxVXJhZzlCVlZrT2tKRXhubG1QTldxek1DU1JBNTZ5VExQQ2g1ZUpqQ2ZQWHhuYjVteVZ6dFgzclYyYlYiLCJtYWMiOiI1MGY2NjE4NWMzMzIzN2I4YzAzZTQwMzcyMGQzMWY2M2I2MjlmZmJkZjUzODU2MzBmODRhODllMmFlZmFmZjJlIiwidGFnIjoiIn0%3D; expires=Thu, 25 Dec 2025 11:16:31 GMT; Max-Age=7200; path=/; secure; httponly; samesite=lax; botble_footprints_cookie=eyJpdiI6IlZPcGNaRi9RV0JKcHc4V1NqbkpydlE9PSIsInZhbHVlIjoiTTJ5OFZoVG0rZ2tOWHFFcnFKN0RFYy9kb0ZDUElHMEpFcFVGMnIzQys2WjZ0ZjFIeitDUHF5WWZxN050Q3pVZVlXWmQ4VlI1aVVGZGlmQUl4VHNsbmlUZC9rTGZJeDRNRTBLeCtMQTdKU0h4cERtVlpzbjNtalFKazgxeTR1TWQiLCJtYWMiOiIyYmViMTVmNTk4OTdlYTZhYWMzNmNjNTNhMjdjZGQ3MzBhZmIwNDk3ZTA2M2RkYjRkYjAxNDhjYTQ0MDUxOWYwIiwidGFnIjoiIn0%3D; expires=Thu, 18 Feb 2027 09:16:31 GMT; Max-Age=36288000; path=/; secure; httponly; samesite=lax; botble_footprints_cookie_data=eyJpdiI6IityN1RCQUhYeGo5MEF3SGZhUS8zOUE9PSIsInZhbHVlIjoiN3JVbGI1N1N4VU9pKysxUGZYS3FRblFDVE5MSTdOMHdZeVFzMDJsK25McnM1M2ZQSGFIRlh2NStxODFYR2M0RTNSTDJObzIweE5YMy81YVZoVms2bUpUbjFxeUZWZkVaRHRCUnY3WUk4dmg2YW41U3FLRlBzMjhQaGcwVEk5NlRvcXhZdnlBRUlVYmNYa1B1OUxPWC9LZ1VPWS9oOU12aHhhNEFrT2xydlpReUVLaU5BWVdKY3RNYWxxYy92YnQyYU5CUi9GbjVLVlFvSnVQU29USXhybmR2M3VLOVgvSkY5OFJFYVBpejRHRkloS1N1ZmhyMmVQOXBBS1lKdWlpaXRWYzk0T1JnQmFjV0NOSEx1Q2s1bEZmYlI3RWcyYWhxV05BZHVoSGtmdU9ldysveGM4dCtvcWVjM3lqTTh0aWxHUXFoWUJUTTZ0NUl4NDE4KzZBTUppYlRFRWhCRVZBYUk5TTlHTUd2dlRjVjdQWW5VU0txeTVEVU5SS2VrSXVGSnl5bjBaMnBNL0ErN2ZBeWF6cTFicHBzT1VqUTBKVklUR0Y3bTVwcjYwaTFlU3hkVk43N2R5M1E2bWh4MDRDN0VGTGNiR25GUlh1M2FhZSs3elFJM1l3SDJLNlB5WUNQWUxQbWtFRkFqTCtqbEd5SG1LdGZ1OW5LWFd5aG84OEMvS2xrbUtUcUdQTFBSaTFQdTcrc0hTSUMwTG5vcUI3U0hTNXE4NzgvT3A0PSIsIm1hYyI6IjA1YWNkNTg4OGRlMTU3YzA4MmEwMjVlNmRhMWZmMWJkMDVlNmE0MGNiODUwYTk4MWE2YWVlMGU5ZWNjMzRlZjgiLCJ0YWciOiIifQ%3D%3D; expires=Thu, 18 Feb 2027 09:16:31 GMT; Max-Age=36288000; path=/; secure; httponly; samesite=lax
 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url='https://ecommerce-api.botble.com/checkout/56ad732ac2b91d942b8a24fd9c4c994f'" />

        <title>Redirecting to https://ecommerce-api.botble.com/checkout/56ad732ac2b91d942b8a24fd9c4c994f</title>
    </head>
    <body>
        Redirecting to <a href="https://ecommerce-api.botble.com/checkout/56ad732ac2b91d942b8a24fd9c4c994f">https://ecommerce-api.botble.com/checkout/56ad732ac2b91d942b8a24fd9c4c994f</a>.
    </body>
</html>
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Example response (404):


{
    "message": "Cart not found."
}
 

Request      

GET api/v1/ecommerce/checkout/cart/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the cart to process. Example: 12345

Compare

Add product to compare

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/compare" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/compare"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/compare

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

product_id   integer     

ID of the product. Example: 1

Add product to compare

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/compare/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/compare/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/compare/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the compare. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

product_id   integer     

ID of the product. Example: 1

Remove a product from compare list

Example request:
curl --request DELETE \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/compare/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/compare/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/ecommerce/compare/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the compare. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

product_id   string     

The ID of the product to remove from the compare list. The id of an existing record in the ec_products table. Example: 1

Get compare items

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/compare/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/compare/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "id": "BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc",
    "data": {
        "count": 0,
        "items": []
    }
}
 

Request      

GET api/v1/ecommerce/compare/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the compare. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

id   string     

ID of the compare list. Example: e70c6c88dae8344b03e39bb147eba66a

Contact

Store a new contact message

Rate limit: 5 requests per minute per IP address

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/contacts" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"John Doe\",
    \"email\": \"[email protected]\",
    \"content\": \"I would like to know more about your services.\",
    \"phone\": \"+1234567890\",
    \"address\": \"123 Main St\",
    \"subject\": \"General Inquiry\",
    \"agree_terms_and_policy\": true,
    \"contact_custom_fields\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/contacts"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "John Doe",
    "email": "[email protected]",
    "content": "I would like to know more about your services.",
    "phone": "+1234567890",
    "address": "123 Main St",
    "subject": "General Inquiry",
    "agree_terms_and_policy": true,
    "contact_custom_fields": [
        "architecto"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": null,
    "message": "We received your message and will contact you soon!"
}
 

Example response (422):


{
    "error": true,
    "message": "The given data was invalid.",
    "errors": {
        "name": [
            "The name field is required."
        ],
        "email": [
            "The email field is required."
        ]
    }
}
 

Example response (429):


{
    "message": "Too Many Attempts."
}
 

Request      

POST api/v1/contacts

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

The sender's name. Example: John Doe

email   string     

The sender's email. Example: [email protected]

content   string     

The message content. Example: I would like to know more about your services.

phone   string  optional    

The sender's phone number. Example: +1234567890

address   string  optional    

The sender's address. Example: 123 Main St

subject   string  optional    

The subject of the message. Example: General Inquiry

agree_terms_and_policy   boolean  optional    

Accept terms and policy. Example: true

contact_custom_fields   string[]  optional    

Custom field values.

Coupons

Get all available coupons

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/coupons?coupon_ids=1%2C2%2C3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/coupons"
);

const params = {
    "coupon_ids": "1,2,3",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 2,
            "title": "Discount 2",
            "code": "K8ZTYBCFYPZO",
            "description": null,
            "value": 8,
            "type_option": "percentage",
            "target": "all-orders",
            "min_order_price": null,
            "min_order_price_formatted": "$0.00",
            "start_date": "2025-05-25T14:22:34.000000Z",
            "end_date": null,
            "quantity": null,
            "total_used": 0,
            "left_quantity": 0,
            "can_use_with_promotion": false,
            "can_use_with_flash_sale": false,
            "apply_via_url": false,
            "display_at_checkout": true,
            "is_expired": false
        },
        {
            "id": 3,
            "title": "Discount 3",
            "code": "X0LTJNDCODTA",
            "description": null,
            "value": 174,
            "type_option": "same-price",
            "target": "all-orders",
            "min_order_price": null,
            "min_order_price_formatted": "$0.00",
            "start_date": "2025-05-25T14:22:34.000000Z",
            "end_date": null,
            "quantity": null,
            "total_used": 0,
            "left_quantity": 0,
            "can_use_with_promotion": false,
            "can_use_with_flash_sale": false,
            "apply_via_url": false,
            "display_at_checkout": true,
            "is_expired": false
        }
    ],
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/coupons

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

coupon_ids   string  optional    

Optional comma-separated list of coupon IDs to filter by. Example: 1,2,3

Apply coupon code

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/coupon/apply" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"coupon_code\": \"DISCOUNT20\",
    \"cart_id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/coupon/apply"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "coupon_code": "DISCOUNT20",
    "cart_id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/coupon/apply

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

coupon_code   string     

The coupon code. Example: DISCOUNT20

cart_id   string     

ID of the cart to apply coupon to. Example: e70c6c88dae8344b03e39bb147eba66a

Remove coupon code

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/coupon/remove" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cart_id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/coupon/remove"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cart_id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/coupon/remove

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

cart_id   string  optional    

ID of the cart to remove coupon from. Example: e70c6c88dae8344b03e39bb147eba66a

Currencies

Get list of available currencies

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/currencies" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/currencies"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "id": 1,
            "title": "USD",
            "symbol": "$",
            "is_prefix_symbol": true,
            "decimals": 2,
            "order": 0,
            "is_default": true,
            "exchange_rate": 1
        },
        {
            "id": 2,
            "title": "EUR",
            "symbol": "€",
            "is_prefix_symbol": false,
            "decimals": 2,
            "order": 1,
            "is_default": false,
            "exchange_rate": 0.91
        }
    ],
    "message": null
}
 

Request      

GET api/v1/ecommerce/currencies

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get current currency

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/currencies/current" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/currencies/current"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "id": 1,
        "title": "USD",
        "symbol": "$",
        "is_prefix_symbol": true,
        "decimals": 2,
        "order": 0,
        "is_default": true,
        "exchange_rate": 1
    },
    "message": null
}
 

Request      

GET api/v1/ecommerce/currencies/current

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Device Tokens

Register or update device token

Register a new device token or update an existing one for push notifications.

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/device-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"architecto\",
    \"platform\": \"architecto\",
    \"app_version\": \"architecto\",
    \"device_id\": \"architecto\",
    \"user_type\": \"architecto\",
    \"user_id\": 16
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/device-tokens"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "architecto",
    "platform": "architecto",
    "app_version": "architecto",
    "device_id": "architecto",
    "user_type": "architecto",
    "user_id": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/device-tokens

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

token   string     

The FCM device token. Example: architecto

platform   string  optional    

The device platform (android, ios). Example: architecto

app_version   string  optional    

The app version. Example: architecto

device_id   string  optional    

The unique device identifier. Example: architecto

user_type   string  optional    

The user type (customer, admin). Example: architecto

user_id   integer  optional    

The user ID. Example: 16

Get user's device tokens

Retrieve all device tokens for the authenticated user.

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/device-tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/device-tokens"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/device-tokens

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Update device token

Update an existing device token.

Example request:
curl --request PUT \
    "https://ecommerce-api.botble.com/api/v1/device-tokens/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"platform\": \"architecto\",
    \"app_version\": \"architecto\",
    \"device_id\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/device-tokens/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "platform": "architecto",
    "app_version": "architecto",
    "device_id": "architecto"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/device-tokens/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the device token. Example: 564

Body Parameters

platform   string  optional    

The device platform (android, ios). Example: architecto

app_version   string  optional    

The app version. Example: architecto

device_id   string  optional    

The unique device identifier. Example: architecto

Delete device token by token value

Delete a device token using the token value.

Example request:
curl --request DELETE \
    "https://ecommerce-api.botble.com/api/v1/device-tokens/by-token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/device-tokens/by-token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "architecto"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/device-tokens/by-token

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

token   string     

The FCM device token to delete. Example: architecto

Delete device token

Delete a device token to stop receiving push notifications.

Example request:
curl --request DELETE \
    "https://ecommerce-api.botble.com/api/v1/device-tokens/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/device-tokens/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/device-tokens/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the device token. Example: 564

Deactivate device token

Deactivate a device token without deleting it.

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/device-tokens/564/deactivate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/device-tokens/564/deactivate"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/device-tokens/{id}/deactivate

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the device token. Example: 564

Downloads

Get list of digital products available for download

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/downloads" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/downloads"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/downloads

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Download a digital product

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/downloads/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/downloads/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/downloads/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the download. Example: 564

Endpoints

Download a file using a token

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/download/architecto/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/download/architecto/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/download/{token}/{order_id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

token   string     

Example: architecto

order_id   string     

The ID of the order. Example: architecto

Download a proof file using a token

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/download-proof/architecto/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/download-proof/architecto/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "No query results for model [Botble\\Ecommerce\\Models\\Order] architecto"
}
 

Request      

GET api/v1/ecommerce/orders/download-proof/{token}/{order_id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

token   string     

Example: architecto

order_id   string     

The ID of the order. Example: architecto

Filters

Get filter data for products

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/filters" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/filters"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": {
        "categories": [
            {
                "id": 1,
                "name": "Hot Promotions",
                "slug": "hot-promotions",
                "url": "product-categories/hot-promotions",
                "parent_id": 0
            },
            {
                "id": 2,
                "name": "Electronics",
                "slug": "electronics",
                "url": "product-categories/electronics",
                "parent_id": 0
            },
            {
                "id": 16,
                "name": "Clothing",
                "slug": "clothing",
                "url": "product-categories/clothing",
                "parent_id": 0
            },
            {
                "id": 17,
                "name": "Computers",
                "slug": "computers",
                "url": "product-categories/computers",
                "parent_id": 0
            },
            {
                "id": 28,
                "name": "Home & Kitchen",
                "slug": "home-kitchen",
                "url": "product-categories/home-kitchen",
                "parent_id": 0
            },
            {
                "id": 29,
                "name": "Health & Beauty",
                "slug": "health-beauty",
                "url": "product-categories/health-beauty",
                "parent_id": 0
            },
            {
                "id": 30,
                "name": "Jewelry & Watch",
                "slug": "jewelry-watch",
                "url": "product-categories/jewelry-watch",
                "parent_id": 0
            },
            {
                "id": 31,
                "name": "Technology Toys",
                "slug": "technology-toys",
                "url": "product-categories/technology-toys",
                "parent_id": 0
            },
            {
                "id": 32,
                "name": "Phones",
                "slug": "phones",
                "url": "product-categories/phones",
                "parent_id": 0
            },
            {
                "id": 33,
                "name": "Babies & Moms",
                "slug": "babies-moms",
                "url": "product-categories/babies-moms",
                "parent_id": 0
            },
            {
                "id": 34,
                "name": "Sport & Outdoor",
                "slug": "sport-outdoor",
                "url": "product-categories/sport-outdoor",
                "parent_id": 0
            },
            {
                "id": 35,
                "name": "Books & Office",
                "slug": "books-office",
                "url": "product-categories/books-office",
                "parent_id": 0
            },
            {
                "id": 36,
                "name": "Cars & Motorcycles",
                "slug": "cars-motorcycles",
                "url": "product-categories/cars-motorcycles",
                "parent_id": 0
            },
            {
                "id": 37,
                "name": "Home Improvements",
                "slug": "home-improvements",
                "url": "product-categories/home-improvements",
                "parent_id": 0
            },
            {
                "id": 3,
                "name": "Consumer Electronic",
                "slug": "consumer-electronic",
                "url": "product-categories/consumer-electronic",
                "parent_id": 2
            },
            {
                "id": 12,
                "name": "Accessories & Parts",
                "slug": "accessories-parts",
                "url": "product-categories/accessories-parts",
                "parent_id": 2
            },
            {
                "id": 4,
                "name": "Home Audio & Theaters",
                "slug": "home-audio-theaters",
                "url": "product-categories/home-audio-theaters",
                "parent_id": 3
            },
            {
                "id": 5,
                "name": "TV & Videos",
                "slug": "tv-videos",
                "url": "product-categories/tv-videos",
                "parent_id": 3
            },
            {
                "id": 6,
                "name": "Camera, Photos & Videos",
                "slug": "camera-photos-videos",
                "url": "product-categories/camera-photos-videos",
                "parent_id": 3
            },
            {
                "id": 7,
                "name": "Cellphones & Accessories",
                "slug": "cellphones-accessories",
                "url": "product-categories/cellphones-accessories",
                "parent_id": 3
            },
            {
                "id": 8,
                "name": "Headphones",
                "slug": "headphones",
                "url": "product-categories/headphones",
                "parent_id": 3
            },
            {
                "id": 9,
                "name": "Videos games",
                "slug": "videos-games",
                "url": "product-categories/videos-games",
                "parent_id": 3
            },
            {
                "id": 10,
                "name": "Wireless Speakers",
                "slug": "wireless-speakers",
                "url": "product-categories/wireless-speakers",
                "parent_id": 3
            },
            {
                "id": 11,
                "name": "Office Electronic",
                "slug": "office-electronic",
                "url": "product-categories/office-electronic",
                "parent_id": 3
            },
            {
                "id": 13,
                "name": "Digital Cables",
                "slug": "digital-cables",
                "url": "product-categories/digital-cables",
                "parent_id": 12
            },
            {
                "id": 14,
                "name": "Audio & Video Cables",
                "slug": "audio-video-cables",
                "url": "product-categories/audio-video-cables",
                "parent_id": 12
            },
            {
                "id": 15,
                "name": "Batteries",
                "slug": "batteries",
                "url": "product-categories/batteries",
                "parent_id": 12
            },
            {
                "id": 18,
                "name": "Computer & Technologies",
                "slug": "computer-technologies",
                "url": "product-categories/computer-technologies",
                "parent_id": 17
            },
            {
                "id": 23,
                "name": "Networking",
                "slug": "networking",
                "url": "product-categories/networking",
                "parent_id": 17
            },
            {
                "id": 19,
                "name": "Computer & Tablets",
                "slug": "computer-tablets",
                "url": "product-categories/computer-tablets",
                "parent_id": 18
            },
            {
                "id": 20,
                "name": "Laptop",
                "slug": "laptop",
                "url": "product-categories/laptop",
                "parent_id": 18
            },
            {
                "id": 21,
                "name": "Monitors",
                "slug": "monitors",
                "url": "product-categories/monitors",
                "parent_id": 18
            },
            {
                "id": 22,
                "name": "Computer Components",
                "slug": "computer-components",
                "url": "product-categories/computer-components",
                "parent_id": 18
            },
            {
                "id": 24,
                "name": "Drive & Storages",
                "slug": "drive-storages",
                "url": "product-categories/drive-storages",
                "parent_id": 23
            },
            {
                "id": 25,
                "name": "Gaming Laptop",
                "slug": "gaming-laptop",
                "url": "product-categories/gaming-laptop",
                "parent_id": 23
            },
            {
                "id": 26,
                "name": "Security & Protection",
                "slug": "security-protection",
                "url": "product-categories/security-protection",
                "parent_id": 23
            },
            {
                "id": 27,
                "name": "Accessories",
                "slug": "accessories",
                "url": "product-categories/accessories",
                "parent_id": 23
            }
        ],
        "brands": [
            {
                "id": 1,
                "name": "Fashion live",
                "slug": "fashion-live",
                "url": "https://ecommerce-api.botble.com/products?brands%5B%5D=1",
                "products_count": 6
            },
            {
                "id": 2,
                "name": "Hand crafted",
                "slug": "hand-crafted",
                "url": "https://ecommerce-api.botble.com/products?brands%5B%5D=2",
                "products_count": 8
            },
            {
                "id": 3,
                "name": "Mestonix",
                "slug": "mestonix",
                "url": "https://ecommerce-api.botble.com/products?brands%5B%5D=3",
                "products_count": 10
            },
            {
                "id": 4,
                "name": "Sunshine",
                "slug": "sunshine",
                "url": "https://ecommerce-api.botble.com/products?brands%5B%5D=4",
                "products_count": 4
            },
            {
                "id": 5,
                "name": "Pure",
                "slug": "pure",
                "url": "https://ecommerce-api.botble.com/products?brands%5B%5D=5",
                "products_count": 5
            },
            {
                "id": 6,
                "name": "Anfold",
                "slug": "anfold",
                "url": "https://ecommerce-api.botble.com/products?brands%5B%5D=6",
                "products_count": 11
            },
            {
                "id": 7,
                "name": "Automotive",
                "slug": "automotive",
                "url": "https://ecommerce-api.botble.com/products?brands%5B%5D=7",
                "products_count": 10
            }
        ],
        "tags": [],
        "price_ranges": [],
        "max_price": 1989,
        "current_category_id": 0,
        "current_filter_categories": [],
        "attributes": [
            {
                "id": 1,
                "title": "Color",
                "slug": "color",
                "display_layout": "visual",
                "attributes": [
                    {
                        "id": 1,
                        "title": "Green",
                        "slug": "green",
                        "color": "#5FB7D4",
                        "image": null,
                        "is_default": 1,
                        "is_selected": false
                    },
                    {
                        "id": 2,
                        "title": "Blue",
                        "slug": "blue",
                        "color": "#333333",
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 3,
                        "title": "Red",
                        "slug": "red",
                        "color": "#DA323F",
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 4,
                        "title": "Black",
                        "slug": "black",
                        "color": "#2F366C",
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 5,
                        "title": "Brown",
                        "slug": "brown",
                        "color": "#87554B",
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    }
                ]
            },
            {
                "id": 2,
                "title": "Size",
                "slug": "size",
                "display_layout": "text",
                "attributes": [
                    {
                        "id": 6,
                        "title": "S",
                        "slug": "s",
                        "color": null,
                        "image": null,
                        "is_default": 1,
                        "is_selected": false
                    },
                    {
                        "id": 7,
                        "title": "M",
                        "slug": "m",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 8,
                        "title": "L",
                        "slug": "l",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 9,
                        "title": "XL",
                        "slug": "xl",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    },
                    {
                        "id": 10,
                        "title": "XXL",
                        "slug": "xxl",
                        "color": null,
                        "image": null,
                        "is_default": 0,
                        "is_selected": false
                    }
                ]
            }
        ]
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/filters

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

category   integer  optional    

Category ID to get filter data for a specific category.

Flash Sale

Get flash sales

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/flash-sales?keys=&thumbnail_size=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keys\": null
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/flash-sales"
);

const params = {
    "keys": "",
    "thumbnail_size": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keys": null
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "The keys field is required."
}
 

Request      

GET api/v1/ecommerce/flash-sales

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

keys   string[]  optional    

Array of flash sale keys to filter by.

thumbnail_size   string  optional    

Size of product thumbnail images. Value: thumb, small, medium, large. Default: thumb Example: architecto

Body Parameters

keys   string[]  optional    

Array of flash sale keys to filter by.

Languages

Get list of available languages

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/languages" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/languages"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "lang_id": 1,
            "lang_name": "English",
            "lang_locale": "en",
            "lang_code": "en_US",
            "lang_flag": "<svg ...>",
            "lang_is_default": true,
            "lang_is_rtl": false,
            "lang_order": 0
        },
        {
            "lang_id": 2,
            "lang_name": "Vietnamese",
            "lang_locale": "vi",
            "lang_code": "vi",
            "lang_flag": "<svg ...>",
            "lang_is_default": false,
            "lang_is_rtl": false,
            "lang_order": 1
        }
    ],
    "message": null
}
 

Request      

GET api/v1/languages

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get current language

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/languages/current" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/languages/current"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "lang_id": 1,
        "lang_name": "English",
        "lang_locale": "en",
        "lang_code": "en_US",
        "lang_flag": "us",
        "lang_is_default": true,
        "lang_is_rtl": false,
        "lang_order": 0
    },
    "message": null
}
 

Request      

GET api/v1/languages/current

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Notifications

Get user notifications

Retrieve notifications for the authenticated user.

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/notifications?page=1&per_page=20&unread_only=&type=general" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/notifications"
);

const params = {
    "page": "1",
    "per_page": "20",
    "unread_only": "0",
    "type": "general",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/notifications

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

page   integer  optional    

Page number for pagination. Example: 1

per_page   integer  optional    

Number of notifications per page (max 50). Example: 20

unread_only   boolean  optional    

Filter to show only unread notifications. Example: false

type   string  optional    

Filter by notification type. Example: general

Get notification statistics

Get notification statistics for the authenticated user.

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/notifications/stats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/notifications/stats"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/notifications/stats

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Mark all notifications as read

Mark all notifications as read for the authenticated user.

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/notifications/mark-all-read" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/notifications/mark-all-read"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/notifications/mark-all-read

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Mark notification as read

Mark a specific notification as read for the authenticated user.

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/notifications/564/read" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/notifications/564/read"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/notifications/{id}/read

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the notification. Example: 564

Mark notification as clicked

Mark a notification as clicked when user taps on it.

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/notifications/564/clicked" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/notifications/564/clicked"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/notifications/{id}/clicked

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the notification. Example: 564

Delete notification

Delete a notification from user's list.

Example request:
curl --request DELETE \
    "https://ecommerce-api.botble.com/api/v1/notifications/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/notifications/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/notifications/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the notification. Example: 564

Order Returns

Get list of order return requests for the current user

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/order-returns" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/order-returns"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/order-returns

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get detail of an order return request

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/order-returns/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/order-returns/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/order-returns/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the order return. Example: 564

Submit a new order return request

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/order-returns" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"order_id\": 1,
    \"return_items\": [
        \"architecto\"
    ],
    \"reason\": \"DAMAGED_PRODUCT\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/order-returns"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "order_id": 1,
    "return_items": [
        "architecto"
    ],
    "reason": "DAMAGED_PRODUCT"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/order-returns

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

order_id   integer     

The ID of the order to return. Example: 1

return_items   string[]     

The items to return with order_item_id, is_return, and qty.

is_return   string  optional    

Whether this item should be returned. Example: true

order_item_id   number  optional    

The ID of the order item to return. This field is required when return_items.*.is_return or checked is present. The id of an existing record in the ec_order_product table. Example: 1

qty   number  optional    

The quantity to return. Must be at least 1. Example: 2

*   object  optional    
order_item_id   integer     

The ID of the order item. Example: 1

is_return   boolean     

Whether to return this item. Example: true

qty   integer  optional    

The quantity to return (required if partial return is enabled). Example: 1

reason   string  optional    

The reason for returning this item (required if partial return is enabled). Example: DAMAGED_PRODUCT

reason   string     

The reason for the return. Example: DAMAGED_PRODUCT

Get order information for return request

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/returns" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/returns"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders/{order_id}/returns

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

order_id   string     

The ID of the order. Example: 564

Orders

APIs for order tracking

Get list of orders by customer

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/orders?status=completed&shipping_status=delivered&payment_status=completed&per_page=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders"
);

const params = {
    "status": "completed",
    "shipping_status": "delivered",
    "payment_status": "completed",
    "per_page": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

status   string  optional    

Filter orders by status (pending, processing, completed, canceled). Example: completed

shipping_status   string  optional    

Filter orders by shipping status (not_shipped, delivering, delivered, canceled). Example: delivered

payment_status   string  optional    

Filter orders by payment status (pending, completed, refunding, refunded, canceled). Example: completed

per_page   integer  optional    

Number of orders per page. Example: 10

Get order detail

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the order. Example: 564

Cancel an order

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/cancel" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cancellation_reason\": \"OTHER\",
    \"cancellation_reason_description\": \"I found a better deal elsewhere\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/cancel"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cancellation_reason": "OTHER",
    "cancellation_reason_description": "I found a better deal elsewhere"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/orders/{id}/cancel

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the order. Example: 564

Body Parameters

cancellation_reason   string     

The reason for cancellation. Example: OTHER

cancellation_reason_description   string  optional    

The description of the cancellation reason (required if cancellation_reason is OTHER). Example: I found a better deal elsewhere

Print an order invoice

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/invoice?type=download&format=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/invoice"
);

const params = {
    "type": "download",
    "format": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders/{id}/invoice

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the order. Example: 564

Query Parameters

type   string  optional    

Type of response (print or download). Example: download

format   string  optional    

Response format (url or pdf). Use 'pdf' for direct PDF content, 'url' for URL response. Default: url Example: architecto

Upload payment proof for an order

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/upload-proof" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "file=@/tmp/phpvej0n3s52tu0fBs2GJv" 
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/upload-proof"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('file', document.querySelector('input[name="file"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());

Request      

POST api/v1/ecommerce/orders/{id}/upload-proof

Headers

Content-Type        

Example: multipart/form-data

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the order. Example: 564

Body Parameters

file   file     

The payment proof file (jpeg, jpg, png, pdf, max 2MB). Example: /tmp/phpvej0n3s52tu0fBs2GJv

Download payment proof for an order

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/download-proof" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/download-proof"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/orders/{id}/download-proof

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the order. Example: 564

Confirm delivery of an order

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/confirm-delivery" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/564/confirm-delivery"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/ecommerce/orders/{id}/confirm-delivery

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the order. Example: 564

Track an order

Track an order by order code and email/phone

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/tracking" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"ORD-12345\",
    \"email\": \"[email protected]\",
    \"phone\": \"+1234567890\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/orders/tracking"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "code": "ORD-12345",
    "email": "[email protected]",
    "phone": "+1234567890"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "message": "Order found successfully",
    "data": {
        "order": {
            "id": 1,
            "code": "ORD-12345",
            "status": "completed",
            "amount": 100,
            "shipping_amount": 10,
            "payment_fee": 5,
            "tax_amount": 5,
            "sub_total": 90,
            "discount_amount": 0,
            "payment_id": 1,
            "user_id": 1,
            "created_at": "2023-08-10T12:34:56.000000Z",
            "updated_at": "2023-08-10T12:34:56.000000Z",
            "address": {
                "id": 1,
                "name": "John Doe",
                "email": "[email protected]",
                "phone": "+1234567890",
                "address": "123 Main St",
                "city": "New York",
                "state": "NY",
                "country": "US",
                "zip_code": "10001"
            },
            "products": [
                {
                    "id": 1,
                    "name": "Product 1",
                    "price": 90,
                    "qty": 1
                }
            ],
            "histories": [
                {
                    "id": 1,
                    "action": "create_order",
                    "description": "Order was created",
                    "created_at": "2023-08-10T12:34:56.000000Z"
                }
            ],
            "shipment": {
                "id": 1,
                "status": "delivered",
                "tracking_id": "SHIP-12345",
                "tracking_link": "https://example.com/tracking/SHIP-12345"
            },
            "payment": {
                "id": 1,
                "status": "completed",
                "payment_channel": "stripe",
                "amount": 100
            }
        }
    }
}
 

Example response (404):


{
    "error": true,
    "message": "Order not found",
    "code": 404
}
 

Request      

POST api/v1/ecommerce/orders/tracking

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

code   string     

The order code. Example: ORD-12345

email   string     

if phone not provided The email associated with the order. Example: [email protected]

phone   string     

if email not provided The phone number associated with the order. Example: +1234567890

Page

List pages

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/pages?per_page=16&page=16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/pages"
);

const params = {
    "per_page": "16",
    "page": "16",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": [
        {
            "id": 1,
            "title": "About Us",
            "slug": "about-us",
            "content": "This is the about us page content...",
            "published_at": "2023-01-01T00:00:00.000000Z"
        }
    ],
    "message": null
}
 

Request      

GET api/v1/pages

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

per_page   integer  optional    

The number of items to return per page (default: 10). Example: 16

page   integer  optional    

The page number to retrieve (default: 1). Example: 16

Get page by ID

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/pages/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/pages/16"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "id": 1,
        "title": "About Us",
        "slug": "about-us",
        "content": "This is the about us page content...",
        "published_at": "2023-01-01T00:00:00.000000Z"
    },
    "message": null
}
 

Example response (404):


{
    "error": true,
    "message": "Not found"
}
 

Request      

GET api/v1/pages/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the page to retrieve. Example: 16

Product Categories

Get list of product categories

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/product-categories" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"is_featured\": false
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/product-categories"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "is_featured": false
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [
        {
            "id": 1,
            "name": "Hot Promotions",
            "icon": "icon-star",
            "icon_image": null,
            "is_featured": false,
            "parent_id": 0,
            "slug": "hot-promotions",
            "image_with_sizes": null
        },
        {
            "id": 3,
            "name": "Consumer Electronic",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 2,
            "slug": "consumer-electronic",
            "image_with_sizes": null
        },
        {
            "id": 4,
            "name": "Home Audio & Theaters",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 3,
            "slug": "home-audio-theaters",
            "image_with_sizes": null
        },
        {
            "id": 13,
            "name": "Digital Cables",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 12,
            "slug": "digital-cables",
            "image_with_sizes": null
        },
        {
            "id": 18,
            "name": "Computer & Technologies",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 17,
            "slug": "computer-technologies",
            "image_with_sizes": null
        },
        {
            "id": 19,
            "name": "Computer & Tablets",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 18,
            "slug": "computer-tablets",
            "image_with_sizes": null
        },
        {
            "id": 24,
            "name": "Drive & Storages",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 23,
            "slug": "drive-storages",
            "image_with_sizes": null
        },
        {
            "id": 5,
            "name": "TV & Videos",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 3,
            "slug": "tv-videos",
            "image_with_sizes": null
        },
        {
            "id": 12,
            "name": "Accessories & Parts",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 2,
            "slug": "accessories-parts",
            "image_with_sizes": null
        },
        {
            "id": 14,
            "name": "Audio & Video Cables",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 12,
            "slug": "audio-video-cables",
            "image_with_sizes": null
        },
        {
            "id": 20,
            "name": "Laptop",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 18,
            "slug": "laptop",
            "image_with_sizes": null
        },
        {
            "id": 23,
            "name": "Networking",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 17,
            "slug": "networking",
            "image_with_sizes": null
        },
        {
            "id": 25,
            "name": "Gaming Laptop",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 23,
            "slug": "gaming-laptop",
            "image_with_sizes": null
        },
        {
            "id": 6,
            "name": "Camera, Photos & Videos",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 3,
            "slug": "camera-photos-videos",
            "image_with_sizes": null
        },
        {
            "id": 15,
            "name": "Batteries",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 12,
            "slug": "batteries",
            "image_with_sizes": null
        },
        {
            "id": 21,
            "name": "Monitors",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 18,
            "slug": "monitors",
            "image_with_sizes": null
        },
        {
            "id": 26,
            "name": "Security & Protection",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 23,
            "slug": "security-protection",
            "image_with_sizes": null
        },
        {
            "id": 7,
            "name": "Cellphones & Accessories",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 3,
            "slug": "cellphones-accessories",
            "image_with_sizes": null
        },
        {
            "id": 22,
            "name": "Computer Components",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 18,
            "slug": "computer-components",
            "image_with_sizes": null
        },
        {
            "id": 27,
            "name": "Accessories",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 23,
            "slug": "accessories",
            "image_with_sizes": null
        },
        {
            "id": 8,
            "name": "Headphones",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 3,
            "slug": "headphones",
            "image_with_sizes": null
        },
        {
            "id": 9,
            "name": "Videos games",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 3,
            "slug": "videos-games",
            "image_with_sizes": null
        },
        {
            "id": 10,
            "name": "Wireless Speakers",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 3,
            "slug": "wireless-speakers",
            "image_with_sizes": null
        },
        {
            "id": 11,
            "name": "Office Electronic",
            "icon": null,
            "icon_image": null,
            "is_featured": false,
            "parent_id": 3,
            "slug": "office-electronic",
            "image_with_sizes": null
        },
        {
            "id": 33,
            "name": "Babies & Moms",
            "icon": "icon-baby-bottle",
            "icon_image": null,
            "is_featured": false,
            "parent_id": 0,
            "slug": "babies-moms",
            "image_with_sizes": null
        },
        {
            "id": 34,
            "name": "Sport & Outdoor",
            "icon": "icon-baseball",
            "icon_image": null,
            "is_featured": false,
            "parent_id": 0,
            "slug": "sport-outdoor",
            "image_with_sizes": null
        },
        {
            "id": 35,
            "name": "Books & Office",
            "icon": "icon-book2",
            "icon_image": null,
            "is_featured": false,
            "parent_id": 0,
            "slug": "books-office",
            "image_with_sizes": null
        },
        {
            "id": 36,
            "name": "Cars & Motorcycles",
            "icon": "icon-car-siren",
            "icon_image": null,
            "is_featured": false,
            "parent_id": 0,
            "slug": "cars-motorcycles",
            "image_with_sizes": null
        },
        {
            "id": 37,
            "name": "Home Improvements",
            "icon": "icon-wrench",
            "icon_image": null,
            "is_featured": false,
            "parent_id": 0,
            "slug": "home-improvements",
            "image_with_sizes": null
        }
    ],
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/product-categories

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

categories   string  optional    

nullable array List of category IDs if you need filter by categories, (e.g. [1,2,3]).

page   integer  optional    

Page number. Default: 1.

per_page   integer  optional    

Number of items per page. Default: 16.

Body Parameters

categories   string[]  optional    

The id of an existing record in the ec_product_categories table.

is_featured   boolean  optional    

Filter by featured status. Example: false

Get product category details by slug

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/product-categories/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/product-categories/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/product-categories/{slug}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the product category. Example: architecto

Get products by category

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/product-categories/564/products" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/product-categories/564/products"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "No query results for model [Botble\\Ecommerce\\Models\\ProductCategory] 564"
}
 

Request      

GET api/v1/ecommerce/product-categories/{id}/products

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the product category. Example: 564

Products

Get list of products

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/products?sort_by=architecto&price_ranges=%5B%7B%22from%22%3A10%2C%22to%22%3A20%7D%2C%7B%22from%22%3A30%2C%22to%22%3A40%7D%5D&attributes=%5B%7B%22id%22%3A1%2C%22value%22%3A1%7D%2C%7B%22id%22%3A2%2C%22value%22%3A2%7D%5D&thumbnail_size=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/products"
);

const params = {
    "sort_by": "architecto",
    "price_ranges": "[{"from":10,"to":20},{"from":30,"to":40}]",
    "attributes": "[{"id":1,"value":1},{"id":2,"value":2}]",
    "thumbnail_size": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "data": [],
    "links": {
        "first": "https://ecommerce-api.botble.com/api/v1/ecommerce/products?page=1",
        "last": "https://ecommerce-api.botble.com/api/v1/ecommerce/products?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "page": null,
                "active": false
            },
            {
                "url": "https://ecommerce-api.botble.com/api/v1/ecommerce/products?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "page": null,
                "active": false
            }
        ],
        "path": "https://ecommerce-api.botble.com/api/v1/ecommerce/products",
        "per_page": 42,
        "to": null,
        "total": 0
    },
    "error": false,
    "message": null
}
 

Request      

GET api/v1/ecommerce/products

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

categories   string[]  optional    

Filter by category IDs.

brands   string[]  optional    

Filter by brand IDs.

collections   string[]  optional    

Filter by collection IDs.

q   string  optional    

Search term.

sort_by   string  optional    

Sort field. Value: default_sorting, date_asc, date_desc, price_asc, price_desc, name_asc, name_desc, rating_asc, rating_desc Example: architecto

page   integer  optional    

The current page.

per_page   integer  optional    

Number of items per page.

discounted_only   boolean  optional    

Filter by discounted only.

min_price   integer  optional    

Minimum price.

max_price   integer  optional    

Maximum price.

price_ranges   string  optional    

Price ranges as JSON string. Example: [{"from":10,"to":20},{"from":30,"to":40}]

attributes   string  optional    

Attributes as JSON string. Example: [{"id":1,"value":1},{"id":2,"value":2}]

thumbnail_size   string  optional    

Size of product thumbnail images. Value: thumb, small, medium, large. Default: thumb Example: architecto

Get product details by slug

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/products/architecto?thumbnail_size=architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/products/architecto"
);

const params = {
    "thumbnail_size": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/products/{slug}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the product. Example: architecto

Query Parameters

thumbnail_size   string  optional    

Size of product thumbnail images. Value: thumb, small, medium, large. Default: thumb Example: architecto

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/products/architecto/related" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/products/architecto/related"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Get cross-sale products for a product

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/products/architecto/cross-sale" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/products/architecto/cross-sale"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/products/{slug}/cross-sale

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the product. Example: architecto

Get product's reviews

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/products/architecto/reviews" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/products/architecto/reviews"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": ""
}
 

Request      

GET api/v1/ecommerce/products/{slug}/reviews

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

The slug of the product. Example: architecto

Get product variation by attributes

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/product-variation/564?attributes=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reference_product\": \"architecto\",
    \"attributes\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/product-variation/564"
);

const params = {
    "attributes": "",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reference_product": "architecto",
    "attributes": [
        "architecto"
    ]
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Not available"
}
 

Request      

GET api/v1/ecommerce/product-variation/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the product variation. Example: 564

Query Parameters

attributes   string[]  optional    

Array of attribute IDs.

reference_product   string  optional    

Reference product slug.

Body Parameters

reference_product   string  optional    

Example: architecto

attributes   string[]     

Profile

Get the user profile information.

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/me"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/me

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Update profile

requires authentication

Example request:
curl --request PUT \
    "https://ecommerce-api.botble.com/api/v1/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"bngz\",
    \"last_name\": \"miyv\",
    \"name\": \"architecto\",
    \"phone\": \"architecto\",
    \"dob\": \"architecto\",
    \"gender\": \"architecto\",
    \"description\": \"Eius et animi quos velit et.\",
    \"email\": \"[email protected]\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/me"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_name": "bngz",
    "last_name": "miyv",
    "name": "architecto",
    "phone": "architecto",
    "dob": "architecto",
    "gender": "architecto",
    "description": "Eius et animi quos velit et.",
    "email": "[email protected]"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/me

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

first_name   string  optional    

This field is required when name is not present. Must not be greater than 120 characters. Must be at least 2 characters. Example: bngz

last_name   string  optional    

This field is required when name is not present. Must not be greater than 120 characters. Must be at least 2 characters. Example: miyv

name   string     

Name. Example: architecto

phone   string     

Phone. Example: architecto

dob   date  optional    

nullable Date of birth (format: Y-m-d). Example: architecto

gender   string  optional    

Gender (male, female, other). Example: architecto

description   string  optional    

Description Example: Eius et animi quos velit et.

email   string  optional    

Email. Example: [email protected]

Update Avatar

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/update/avatar" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "avatar=@/tmp/phpdgq4c5hp53tb0Xhb9Nt" 
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/update/avatar"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('avatar', document.querySelector('input[name="avatar"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());

Request      

POST api/v1/update/avatar

Headers

Content-Type        

Example: multipart/form-data

Accept        

Example: application/json

Body Parameters

avatar   file     

Avatar file. Example: /tmp/phpdgq4c5hp53tb0Xhb9Nt

Update password

requires authentication

Example request:
curl --request PUT \
    "https://ecommerce-api.botble.com/api/v1/update/password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"password\": \"|]|{+-\",
    \"old_password\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/update/password"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "password": "|]|{+-",
    "old_password": "architecto"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/update/password

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

password   string     

The new password of user. Example: |]|{+-

old_password   string     

The current password of user. Example: architecto

Get user settings

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/settings

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Update user settings

requires authentication

Example request:
curl --request PUT \
    "https://ecommerce-api.botble.com/api/v1/settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"biometric_enabled\": false,
    \"notification_enabled\": false,
    \"language\": \"architecto\",
    \"currency\": \"architecto\",
    \"theme\": \"architecto\",
    \"timezone\": \"America\\/Hermosillo\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "biometric_enabled": false,
    "notification_enabled": false,
    "language": "architecto",
    "currency": "architecto",
    "theme": "architecto",
    "timezone": "America\/Hermosillo"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/settings

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

biometric_enabled   boolean  optional    

Enable/disable biometric authentication. Example: false

notification_enabled   boolean  optional    

Enable/disable notifications. Example: false

language   string  optional    

User's preferred language. Example: architecto

currency   string  optional    

User's preferred currency. Example: architecto

theme   string  optional    

User's preferred theme (light, dark, auto). Example: architecto

timezone   string  optional    

User's timezone. Example: America/Hermosillo

Reviews

Get list of reviews for the current user

requires authentication

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/reviews" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/reviews"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": true,
    "data": null,
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/ecommerce/reviews

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Create a new review

requires authentication

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/reviews" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1,
    \"star\": 5,
    \"comment\": \"This is a great product! I highly recommend it.\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/reviews"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1,
    "star": 5,
    "comment": "This is a great product! I highly recommend it."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/reviews

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

product_id   integer     

The ID of the product to review. Example: 1

star   integer     

The rating from 1 to 5 stars. Example: 5

comment   string     

The review comment. Example: This is a great product! I highly recommend it.

images   string[]  optional    

Array of images for the review (optional).

Delete a review

requires authentication

Example request:
curl --request DELETE \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/reviews/564" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/reviews/564"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/ecommerce/reviews/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the review. Example: 564

Simple Slider

Get sliders

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/simple-sliders?keys[]=home-slider&keys[]=product-slider" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keys\": [
        \"home-slider\",
        \"product-slider\"
    ]
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/simple-sliders"
);

const params = {
    "keys[0]": "home-slider",
    "keys[1]": "product-slider",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keys": [
        "home-slider",
        "product-slider"
    ]
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": false,
    "data": [
        {
            "id": 1,
            "name": "Home slider",
            "key": "home-slider",
            "description": "The main slider on homepage",
            "items": [
                {
                    "id": 1,
                    "title": "Slider 1",
                    "description": null,
                    "image": "https://ecommerce-api.botble.com/storage/sliders/1-lg.jpg",
                    "link": "/products",
                    "order": 1,
                    "tablet_image": "sliders/1-md.jpg",
                    "mobile_image": "sliders/1-sm.jpg"
                },
                {
                    "id": 2,
                    "title": "Slider 2",
                    "description": null,
                    "image": "https://ecommerce-api.botble.com/storage/sliders/2-lg.jpg",
                    "link": "/products",
                    "order": 2,
                    "tablet_image": "sliders/2-md.jpg",
                    "mobile_image": "sliders/2-sm.jpg"
                },
                {
                    "id": 3,
                    "title": "Slider 3",
                    "description": null,
                    "image": "https://ecommerce-api.botble.com/storage/sliders/3-lg.jpg",
                    "link": "/products",
                    "order": 3,
                    "tablet_image": "sliders/3-md.jpg",
                    "mobile_image": "sliders/3-sm.jpg"
                }
            ]
        }
    ],
    "message": null
}
 

Request      

GET api/v1/simple-sliders

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

keys   string[]  optional    

Array of slider keys to filter by.

Body Parameters

keys   string[]  optional    

Array of slider keys to filter by.

Social Login

Apple login

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/auth/apple" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identityToken\": \"architecto\",
    \"guard\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/auth/apple"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "identityToken": "architecto",
    "guard": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "token": "1|abc123def456...",
        "user": {
            "id": 1,
            "name": "John Doe",
            "email": "[email protected]"
        }
    },
    "message": "Login successful"
}
 

Example response (400):


{
    "error": true,
    "message": "Invalid Apple token"
}
 

Example response (400):


{
    "error": true,
    "message": "Cannot login, no email or Apple ID provided!"
}
 

Request      

POST api/v1/auth/apple

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

identityToken   string     

The Apple identity token received from Apple Sign-In. Example: architecto

guard   string  optional    

optional The guard to use for authentication (default: web). Example: architecto

Google login

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/auth/google" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identityToken\": \"architecto\",
    \"guard\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/auth/google"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "identityToken": "architecto",
    "guard": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "token": "1|abc123def456...",
        "user": {
            "id": 1,
            "name": "John Doe",
            "email": "[email protected]"
        }
    },
    "message": "Login successful"
}
 

Example response (400):


{
    "error": true,
    "message": "Invalid Google token"
}
 

Example response (400):


{
    "error": true,
    "message": "Google authentication is not properly configured"
}
 

Request      

POST api/v1/auth/google

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

identityToken   string     

The Google identity token received from Google Sign-In. Example: architecto

guard   string  optional    

optional The guard to use for authentication (default: web). Example: architecto

Facebook login

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/auth/facebook" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"accessToken\": \"architecto\",
    \"guard\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/auth/facebook"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "accessToken": "architecto",
    "guard": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "token": "1|abc123def456...",
        "user": {
            "id": 1,
            "name": "John Doe",
            "email": "[email protected]"
        }
    },
    "message": "Login successful"
}
 

Example response (400):


{
    "error": true,
    "message": "Invalid Facebook token"
}
 

Example response (400):


{
    "error": true,
    "message": "Facebook authentication is not properly configured"
}
 

Request      

POST api/v1/auth/facebook

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

accessToken   string     

The Facebook access token received from Facebook Login. Example: architecto

guard   string  optional    

optional The guard to use for authentication (default: web). Example: architecto

X (Twitter) login

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/auth/x" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"accessToken\": \"architecto\",
    \"guard\": \"architecto\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/auth/x"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "accessToken": "architecto",
    "guard": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "error": false,
    "data": {
        "token": "1|abc123def456...",
        "user": {
            "id": 1,
            "name": "John Doe",
            "email": "[email protected]"
        }
    },
    "message": "Login successful"
}
 

Example response (400):


{
    "error": true,
    "message": "Invalid X (Twitter) token"
}
 

Example response (400):


{
    "error": true,
    "message": "X (Twitter) authentication is not properly configured"
}
 

Request      

POST api/v1/auth/x

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

accessToken   string     

The X (Twitter) access token received from X OAuth. Example: architecto

guard   string  optional    

optional The guard to use for authentication (default: web). Example: architecto

Wishlist

Add product to wishlist

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/wishlist" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/wishlist"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/wishlist

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

product_id   integer     

ID of the product. Example: 1

Add product to wishlist

Example request:
curl --request POST \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/wishlist/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/wishlist/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ecommerce/wishlist/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the wishlist. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

product_id   integer     

ID of the product. Example: 1

Remove a product from wishlist

Example request:
curl --request DELETE \
    "https://ecommerce-api.botble.com/api/v1/ecommerce/wishlist/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 1
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/wishlist/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 1
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/ecommerce/wishlist/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the wishlist. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

product_id   string     

The ID of the product to remove from the wishlist. The id of an existing record in the ec_products table. Example: 1

Get wishlist items

Example request:
curl --request GET \
    --get "https://ecommerce-api.botble.com/api/v1/ecommerce/wishlist/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": \"e70c6c88dae8344b03e39bb147eba66a\"
}"
const url = new URL(
    "https://ecommerce-api.botble.com/api/v1/ecommerce/wishlist/BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "e70c6c88dae8344b03e39bb147eba66a"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "id": "BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc",
    "data": {
        "count": 0,
        "items": []
    }
}
 

Request      

GET api/v1/ecommerce/wishlist/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the wishlist. Example: BcECdBDA-CdED-bFEA-CbCE-BcCdeBfbbebc

Body Parameters

id   string     

ID of the wishlist. Example: e70c6c88dae8344b03e39bb147eba66a