Introduction

This is the documentation for the Ecommerce API.

This documentation aims to provide all the information you need to work with our API. As you scroll, you will 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 devices). You can change the language used with the tabs in the upper right (or from the navigation menu in the upper left on mobile devices).

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {ACCESS TOKEN}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

The access token is obtained by generating it from the administration panel.

Customers

Display a listing of registered and unregistered customers.

GET
https://api.staging.newss.beer
/external/v1/customers
requiere autenticación

Headers

Authorization
Example:
Bearer {ACCESS TOKEN}
Content-Type
Example:
application/vnd.api+json
Accept
Example:
application/vnd.api+json

Query Parameters

page
integer

Optional. Page number for pagination. Default: 1.

Example:
2
limit
integer

Optional. Number of results per page (maximum 100). Default: 15.

Example:
20
search
string

Search term to filter by name, email or phone. Must not be greater than 255 characters.

Example:
Juan
registered
boolean

Optional. Filter by customer type. true: registered only, false: unregistered only, null: all.

Example:
1
Example request:
curl --request GET \
    --get "https://api.staging.newss.beer/external/v1/customers?page=2&limit=20&search=Juan&registered=1" \
    --header "Authorization: Bearer {ACCESS TOKEN}" \
    --header "Content-Type: application/vnd.api+json" \
    --header "Accept: application/vnd.api+json"
Example response:
{
    "data": [
        {
            "customer_id": 1,
            "email": "customer@example.com",
            "firstname": "Juan",
            "lastname": "Pérez",
            "telephone": "1234567890",
            "status": 1,
            "date_added": "2025-01-15 10:30:00"
        },
        {
            "customer_id": 0,
            "email": "unregistered@example.com",
            "firstname": "María",
            "lastname": "González",
            "telephone": "0987654321",
            "status": 1,
            "date_added": "2025-01-15 10:30:00"
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 5,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://api.example.com/external/v1/customers?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": "https://api.example.com/external/v1/customers?page=2",
                "label": "2",
                "active": false
            },
            {
                "url": "https://api.example.com/external/v1/customers?page=2",
                "label": "Next »",
                "active": false
            }
        ],
        "path": "https://api.example.com/external/v1/customers",
        "per_page": 15,
        "to": 15,
        "total": 78
    }
}

Products

Display a listing of the products.

GET
https://api.staging.newss.beer
/external/v1/products
requiere autenticación

Headers

Authorization
Example:
Bearer {ACCESS TOKEN}
Content-Type
Example:
application/vnd.api+json
Accept
Example:
application/vnd.api+json

Query Parameters

page
integer

Optional. Page number for pagination. Default: 1.

Example:
2
limit
integer

Optional. Number of results per page. Default: 12.

Example:
24
filter[search]
string

Search by text.

Example:
tractor
filter[category]
integer

Filter by category.

Example:
1
filter[variants]
string

Filter by variants.

Example:
color:red
filter[tags]
string

Filter by tags.

Example:
oferta
sort
string

Sort results. Allowed values: sort_order, -sort_order, price, -price, date_added, -date_added, name, -name.

Example:
price
Example request:
curl --request GET \
    --get "https://api.staging.newss.beer/external/v1/products?page=2&limit=24&filter%5Bsearch%5D=tractor&filter%5Bcategory%5D=1&filter%5Bvariants%5D=color%3Ared&filter%5Btags%5D=oferta&sort=price" \
    --header "Authorization: Bearer {ACCESS TOKEN}" \
    --header "Content-Type: application/vnd.api+json" \
    --header "Accept: application/vnd.api+json"
Example response:
{
 "data": [
     {
         "id": 1837,
         "product_id": 1837,
         "name": "Tornillos para strap de talones (pack x 5)",
         "price": 18793,
         "order_price": 18793,
         "sku": "",
         "special": null,
         "hasDiscount": false,
         "min_price": 18793,
         "max_price": 18793,
         "count_variants": 0,
         "id_first_variant": null,
         "image": "host1/b69b712f7bd6757ddcda59959c89a2b1//img/products/",
         "date_added": "2025-09-10 13:39:36",
         "url": "demos-2./tornillos-para-strap-de-talones-(pack-x-5)",
         "status": 1,
         "currency_code": "ARS"
      },
     {
	    "id": 1838,
	    "product_id": 1838,
		"name": "Tornillos para strap de dedos (pack x 5) (copia)",
		"price": 18793,
		"order_price": 18793,
		"sku": "",
		"special": null,
		"hasDiscount": false,
		"min_price": 18793,
		"max_price": 18793,
		"count_variants": 0,
		"id_first_variant": null,
		"image": "host1/b69b712f7bd6757ddcda59959c89a2b1//img/products/",
		"date_added": "2025-09-10 13:39:36",
		"url": "demos-2./tornillos-para-strap-de-dedos-(pack-x-5)-(copia)",
		"status": 1,
		"currency_code": "ARS"
	}
 ],
"meta": {
"current_page": 1,
	"from": 1,
	"last_page": 10,
	"links": [
		{
			"url": null,
			"label": "« Previous",
			"active": false
		},
	{
			"url": "https://api-ecomm.llujan.t2.newss.beer/external/v1/products?page=1",
			"label": "1",
			"active": true
		},
		{
			"url": "https://api-ecomm.llujan.t2.newss.beer/external/v1/products?page=2",
			"label": "2",
			"active": false
		}
		{
			"url": "https://api-ecomm.llujan.t2.newss.beer/external/v1/products?page=2",
			"label": "Next »",
			"active": false
		}
	],
	"path": "https://api-ecomm.llujan.t2.newss.beer/external/v1/products",
	"per_page": 10,
"to": 10,
	"total": 99
}
}

Update multiple products and their variants in a single request. Update stock, prices, discounts and status. Each product is processed independently - failures won't affect other products. Variants are identified by their attributes (e.g., color, size).

PATCH
https://api.staging.newss.beer
/external/v1/products
requiere autenticación

Headers

Authorization
Example:
Bearer {ACCESS TOKEN}
Content-Type
Example:
application/vnd.api+json
Accept
Example:
application/vnd.api+json

Body Parameters

Example request:
curl --request PATCH \
    "https://api.staging.newss.beer/external/v1/products" \
    --header "Authorization: Bearer {ACCESS TOKEN}" \
    --header "Content-Type: application/vnd.api+json" \
    --header "Accept: application/vnd.api+json" \
    --data "{
    \"products\": [
        {
            \"product_id\": 1837,
            \"quantity\": 100,
            \"price\": 18793.5,
            \"has_discount\": true,
            \"special_price\": 15000,
            \"status\": true,
            \"variants\": [
                {
                    \"attributes\": {
                        \"color\": \"blanco\",
                        \"talle\": \"xl\"
                    },
                    \"quantity\": 50,
                    \"price\": 19000,
                    \"has_discount\": false,
                    \"special_price\": 18000
                }
            ]
        },
        {
            \"product_id\": 1838,
            \"quantity\": 50,
            \"price\": 12500,
            \"status\": false
        }
    ]
}"
Example response:
{
    "data": [
        {
            "type": "product",
            "id": "1837",
            "success": true,
            "attributes": {
                "quantity": 100,
                "price": 18793.5,
                "status": true
            }
        },
        {
            "type": "product",
            "id": "1838",
            "success": true,
            "attributes": {
                "variants_updated": 1
            }
        },
        {
            "type": "product",
            "id": "9999",
            "success": false
        }
    ],
    "errors": [
        {
            "status": "422",
            "source": {
                "pointer": "/data/2/id"
            },
            "title": "Update failed",
            "detail": "No query results for model [App\\Models\\Site\\Ecommerce\\Product] 9999"
        }
    ],
    "meta": {
        "total": 3,
        "successful": 2,
        "failed": 1,
        "version": "1.0.0",
        "processed_at": "2025-10-07T14:30:00+00:00"
    }
}
{
    "message": "The given data was invalid.",
    "errors": {
        "products": [
            "Debe proporcionar al menos un producto para actualizar."
        ]
    }
}