openapi: 3.0.3 info: title: SS-API-ECOMM description: '' version: 1.0.0 servers: - url: 'https://api.mdiarte.t2.newss.beer/api/v1/back/shop' paths: /v2/categories: get: summary: 'Show all Categories.' operationId: showAllCategories description: '' parameters: [] responses: { } tags: - Categories post: summary: 'Create a new Category.' operationId: createANewCategory description: '' parameters: [] responses: { } tags: - Categories requestBody: required: true content: application/vnd.api+json: schema: type: object properties: image: type: string description: 'The image of the category.' example: category.jpg parent_id: type: integer description: 'The parent category ID.' example: 1 status: type: boolean description: 'Whether the category is active.' example: false google_category: type: string description: 'The Google category.' example: google_category meta_keywords: type: string description: 'The meta keywords for the category.' example: 'meta, keywords' category_description: type: array description: '' example: - qui items: type: integer required: - category_description '/v2/categories/{id}': get: summary: 'Show a Category.' operationId: showACategory description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Categories put: summary: 'Actualiza una Categoría.' operationId: actualizaUnaCategora description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Categories requestBody: required: true content: application/vnd.api+json: schema: type: object properties: image: type: string description: 'The image of the category.' example: category.jpg parent_id: type: integer description: 'The parent category ID.' example: 1 status: type: boolean description: 'Whether the category is active.' example: false google_category: type: string description: 'The Google category.' example: google_category meta_keywords: type: string description: 'The meta keywords for the category.' example: 'meta, keywords' category_description: type: array description: '' example: - voluptas items: type: integer required: - category_description delete: summary: 'Delete a Category.' operationId: deleteACategory description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Categories parameters: - in: path name: id description: 'The ID of the category.' example: esse required: true schema: type: string '/v2/categories/{id}/order': post: summary: 'Change the order of a Category.' operationId: changeTheOrderOfACategory description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Categories requestBody: required: true content: application/vnd.api+json: schema: type: object properties: sort_order: type: integer description: 'El orden de la categoría.' example: 1 required: - sort_order parameters: - in: path name: id description: 'The ID of the category.' example: quaerat required: true schema: type: string /v2/coupons: get: summary: 'Muestra todos los cupones' operationId: muestraTodosLosCupones description: '' parameters: - in: query name: name description: 'Filtra por nombre del cupon.' example: null required: false schema: type: string description: 'Filtra por nombre del cupon.' example: null - in: query name: sort description: 'Parametros de ordenamiento.' example: date_added required: false schema: type: string description: 'Parametros de ordenamiento.' example: date_added enum: - coupon_id - date_added - '-coupon_id' - '-date_added' responses: { } tags: - Cupones post: summary: 'Store a newly created resource in storage.' operationId: storeANewlyCreatedResourceInStorage description: '' parameters: - in: query name: name description: 'string Color de texto.' example: Cupon required: true schema: type: string description: 'string Color de texto.' example: Cupon - in: query name: code description: 'string Color de texto.' example: '123' required: true schema: type: string description: 'string Color de texto.' example: '123' - in: query name: discount description: Descuento. example: 1.0 required: false schema: type: number description: Descuento. example: 1.0 - in: query name: percentage description: Porcentaje. example: 10.0 required: false schema: type: number description: Porcentaje. example: 10.0 responses: { } tags: - Cupones requestBody: required: true content: application/vnd.api+json: schema: type: object properties: name: type: string description: 'Cupon name.' example: 'Cupon 1' code: type: string description: 'Cupon code.' example: A311 discount: type: string description: Discount. example: 10 percentage: type: integer description: Percentage. example: 0 type: type: string description: Type. example: F aplication_coupon: type: string description: '' example: minima amount_min: type: string description: 'Amount Min.' example: 1 amount_max: type: string description: 'Amount Max.' example: 3 logged: type: boolean description: Logged. example: false shipping: type: boolean description: Shipping. example: false total: type: string description: Total. example: 3 date_start: type: string description: 'Must be a valid date.' example: '2025-06-19T13:02:48' date_end: type: string description: 'Must be a valid date.' example: '2025-06-19T13:02:48' uses_total: type: integer description: '' example: 16 uses_customer: type: integer description: '' example: 13 status: type: boolean description: 'Cupon status.' example: false date_added: type: string description: 'Must be a valid date.' example: '2025-06-19T13:02:48' required: - name - code '/v2/coupons/{id}': get: summary: 'Display the specified resource.' operationId: displayTheSpecifiedResource description: '' parameters: - in: query name: id description: 'Id del coupons.' example: 1 required: true schema: type: integer description: 'Id del coupons.' example: 1 responses: { } tags: - Cupones put: summary: 'Update the specified resource in storage.' operationId: updateTheSpecifiedResourceInStorage description: '' parameters: - in: query name: id description: 'Id del coupons.' example: 1 required: true schema: type: integer description: 'Id del coupons.' example: 1 responses: { } tags: - Cupones requestBody: required: true content: application/vnd.api+json: schema: type: object properties: name: type: string description: 'Cupon name.' example: 'Cupon 1' code: type: string description: 'Cupon code.' example: A311 discount: type: string description: Discount. example: 10 percentage: type: integer description: Percentage. example: 0 type: type: string description: Type. example: F aplication_coupon: type: string description: '' example: qui amount_min: type: string description: 'Amount Min.' example: 1 amount_max: type: string description: 'Amount Max.' example: 3 logged: type: boolean description: Logged. example: false shipping: type: boolean description: Shipping. example: false total: type: string description: Total. example: 3 date_start: type: string description: 'Must be a valid date.' example: '2025-06-19T13:02:48' date_end: type: string description: 'Must be a valid date.' example: '2025-06-19T13:02:48' uses_total: type: integer description: '' example: 20 uses_customer: type: integer description: '' example: 6 status: type: boolean description: 'Cupon status.' example: false date_added: type: string description: 'Must be a valid date.' example: '2025-06-19T13:02:48' required: - name - code delete: summary: 'Remove the specified resource from storage.' operationId: removeTheSpecifiedResourceFromStorage description: '' parameters: - in: query name: id description: 'Id del coupons.' example: 1 required: true schema: type: integer description: 'Id del coupons.' example: 1 responses: { } tags: - Cupones parameters: - in: path name: id description: 'The ID of the coupon.' example: possimus required: true schema: type: string /v2/currency: get: summary: 'Show all Currencies.' operationId: showAllCurrencies description: '' parameters: [] responses: { } tags: - Currencies '/v2/currency/{currency}': get: summary: 'Show a Currency.' operationId: showACurrency description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Currencies parameters: - in: path name: currency description: 'The currency.' example: nihil required: true schema: type: string /v2/customers: get: summary: 'Show all Customers.' operationId: showAllCustomers description: '' parameters: - in: query name: page description: 'The page number for pagination.' example: 1 required: false schema: type: integer description: 'The page number for pagination.' example: 1 - in: query name: per_page description: 'The number of items per page.' example: 20 required: false schema: type: integer description: 'The number of items per page.' example: 20 - in: query name: sort description: 'The field to sort by. Possible values: email, id, last-order.' example: '-last-order' required: false schema: type: string description: 'The field to sort by. Possible values: email, id, last-order.' example: '-last-order' - in: query name: 'filter[search]' description: 'Search term to filter by firstname, lastname or email.' example: john required: false schema: type: string description: 'Search term to filter by firstname, lastname or email.' example: john responses: { } tags: - Customers post: summary: 'Create a new Customer.' operationId: createANewCustomer description: '' parameters: [] responses: { } tags: - Customers requestBody: required: true content: application/vnd.api+json: schema: type: object properties: user_id: type: integer description: 'The user ID of the customer.' example: 1 dni: type: integer description: 'The DNI of the customer.' example: 12345678 firstname: type: string description: 'The first name of the customer.' example: John lastname: type: string description: 'The last name of the customer.' example: Doe email: type: string description: 'The email of the customer.' example: example@example.com telephone: type: string description: 'The telephone of the customer.' example: '123456789' restricted: type: boolean description: Restricted. example: true required: - firstname - lastname - email - restricted '/v2/customers/{id}': get: summary: 'Show a Customer.' operationId: showACustomer description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Customers put: summary: 'Update a Customer.' operationId: updateACustomer description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Customers requestBody: required: true content: application/vnd.api+json: schema: type: object properties: user_id: type: integer description: 'The user ID of the customer.' example: 1 dni: type: integer description: 'The DNI of the customer.' example: 12345678 firstname: type: string description: 'The first name of the customer.' example: John lastname: type: string description: 'The last name of the customer.' example: Doe email: type: string description: 'The email of the customer.' example: example@example.com telephone: type: string description: 'The telephone of the customer.' example: '123456789' restricted: type: boolean description: Restricted. example: true required: - firstname - lastname - email - restricted delete: summary: 'Delete a Customer.' operationId: deleteACustomer description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Customers parameters: - in: path name: id description: 'The ID of the customer.' example: facilis required: true schema: type: string /v2/customers/updateRestrictedMassive: post: summary: 'Update a Restricted users.' operationId: updateARestrictedUsers description: '' parameters: [] responses: 204: description: success 404: description: 'Customer not found' content: text/plain: schema: type: string example: '' 422: description: 'Validation error' content: text/plain: schema: type: string example: '' 500: description: 'Server error' content: text/plain: schema: type: string example: '' tags: - Customers requestBody: required: true content: application/vnd.api+json: schema: type: object properties: type: type: string description: 'Type of restriction.' example: allow enum: - allow - deny all: type: boolean description: 'Update all customers.' example: true customer_ids: type: array description: '' example: - 12 items: type: integer required: - type - all '/v2/customers/showByUserId/{iser_id}': get: summary: 'Show a Customer by User ID.' operationId: showACustomerByUserID description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: { } tags: - Customers parameters: - in: path name: iser_id description: 'The ID of the iser.' example: quisquam required: true schema: type: string '/v2/currency/setDefault/{id}': get: summary: '' operationId: getV2CurrencySetDefaultId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the setDefault.' example: maxime required: true schema: type: string /api/render/v1/products: get: summary: 'Display a listing of the resource.' operationId: displayAListingOfTheResource description: '' parameters: [] responses: { } tags: - Endpoints /api/render/v1/products/variants: get: summary: '' operationId: getApiRenderV1ProductsVariants description: '' parameters: [] responses: { } tags: - Endpoints /api/render/v1/products/tags: get: summary: '' operationId: getApiRenderV1ProductsTags description: '' parameters: [] responses: { } tags: - Endpoints /api/render/v1/categories: get: summary: 'Display a listing of the resource.' operationId: displayAListingOfTheResource description: '' parameters: [] responses: { } tags: - Endpoints /api/render/v2/products/options: get: summary: '' operationId: getApiRenderV2ProductsOptions description: '' parameters: [] responses: { } tags: - Endpoints /api/render/v2/products/tags: get: summary: '' operationId: getApiRenderV2ProductsTags description: '' parameters: [] responses: { } tags: - Endpoints /api/render/v2/categories: get: summary: 'Display a listing of the resource.' operationId: displayAListingOfTheResource description: '' parameters: [] responses: { } tags: - Endpoints /api/render/v2/categories/validate: get: summary: '' operationId: getApiRenderV2CategoriesValidate description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/vnd.api+json: schema: type: object properties: category_slug: type: string description: '' example: nobis required: - category_slug '/api/render/v2/customers/{user}/address': get: summary: 'Display a listing of the resource by customer id.' operationId: displayAListingOfTheResourceByCustomerId description: '' parameters: [] responses: { } tags: - Endpoints post: summary: 'Store a newly created resource in storage.' operationId: storeANewlyCreatedResourceInStorage description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/vnd.api+json: schema: type: object properties: street: type: string description: 'Nombre de la calle. Must not be greater than 255 characters.' example: '25 de Mayo' city: type: string description: 'Nombre de la ciudad. Must not be greater than 128 characters.' example: Parana postcode: type: string description: 'Código postal. Must not be greater than 10 characters.' example: '1111' address_id: type: string description: '' example: null customer_id: type: string description: '' example: null firstname: type: string description: '' example: null lastname: type: string description: '' example: null company: type: string description: '' example: null address_1: type: string description: '' example: null address_2: type: string description: '' example: null country_id: type: string description: '' example: null zone_id: type: string description: '' example: null custom_field: type: string description: '' example: null default: type: string description: '' example: null home_note: type: string description: '' example: null status: type: string description: '' example: null number: type: string description: '' example: null dpto: type: string description: '' example: null country: type: string description: '' example: null zone: type: string description: '' example: null parameters: - in: path name: user description: '' example: '4124' required: true schema: type: string '/api/render/v2/customers/{user}/address/{address}': get: summary: '' operationId: getApiRenderV2CustomersUserAddressAddress description: '' parameters: [] responses: { } tags: - Endpoints put: summary: '' operationId: putApiRenderV2CustomersUserAddressAddress description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/vnd.api+json: schema: type: object properties: street: type: string description: 'Nombre de la calle. Must not be greater than 255 characters.' example: '25 de Mayo' city: type: string description: 'Nombre de la ciudad. Must not be greater than 128 characters.' example: Parana postcode: type: string description: 'Código postal. Must not be greater than 10 characters.' example: '1111' address_id: type: string description: '' example: null customer_id: type: string description: '' example: null firstname: type: string description: '' example: null lastname: type: string description: '' example: null company: type: string description: '' example: null address_1: type: string description: '' example: null address_2: type: string description: '' example: null country_id: type: string description: '' example: null zone_id: type: string description: '' example: null custom_field: type: string description: '' example: null default: type: string description: '' example: null home_note: type: string description: '' example: null status: type: string description: '' example: null number: type: string description: '' example: null dpto: type: string description: '' example: null country: type: string description: '' example: null zone: type: string description: '' example: null delete: summary: '' operationId: deleteApiRenderV2CustomersUserAddressAddress description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: user description: '' example: iste required: true schema: type: string - in: path name: address description: 'The address.' example: '2' required: true schema: type: string '/api/render/v2/customers/{user}/address/{address}/current': patch: summary: '' operationId: patchApiRenderV2CustomersUserAddressAddressCurrent description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: user description: '' example: quas required: true schema: type: string - in: path name: address description: 'The address.' example: '3' required: true schema: type: string /api/render/v2/countries: get: summary: 'Display a listing of the resources.' operationId: displayAListingOfTheResources description: '' parameters: [] responses: { } tags: - Endpoints '/api/render/v2/countries/{countryId}': get: summary: '' operationId: getApiRenderV2CountriesCountryId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: countryId description: '' example: '706433' required: true schema: type: string '/api/render/v2/countries/{countryId}/zones': get: summary: '' operationId: getApiRenderV2CountriesCountryIdZones description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: countryId description: '' example: '61' required: true schema: type: string '/v2/options/{option_id}/values': get: summary: 'Show all Options.' operationId: showAllOptions description: '' parameters: [] responses: { } tags: - 'Option Values' post: summary: 'Create a new Attribute Option.' operationId: createANewAttributeOption description: '' parameters: [] responses: 201: description: success content: application/json: schema: type: object example: data: id: 1 properties: data: type: object properties: id: type: integer example: 1 404: description: fail content: application/json: schema: type: object example: error: 'Option not found' properties: error: type: string example: 'Option not found' tags: - 'Option Values' requestBody: required: true content: application/vnd.api+json: schema: type: object properties: sort_order: type: integer description: 'The sort order of the option.' example: 1 language_id: type: integer description: 'Language ID.' example: 1 option_value_id: type: integer description: 'Option Value ID.' example: 1 option_description: type: array description: '' example: - ut items: type: integer option_id: type: integer description: 'The type of the option.' example: 1 required: - option_description - option_id parameters: - in: path name: option_id description: 'The ID of the option.' example: ut required: true schema: type: string '/v2/options/{option_id}/values/{id}': get: summary: 'Show a Option Attribute Option.' operationId: showAOptionAttributeOption description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 - in: query name: option_id description: 'The ID of the option.' example: 1 required: true schema: type: integer description: 'The ID of the option.' example: 1 responses: 200: description: success content: application/json: schema: type: object example: data: id: 1 properties: data: type: object properties: id: type: integer example: 1 404: description: fail content: application/json: schema: type: object example: error: 'Option not found' properties: error: type: string example: 'Option not found' tags: - 'Option Values' put: summary: 'Update a Option Attribute Option.' operationId: updateAOptionAttributeOption description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: 200: description: success content: application/json: schema: type: object example: data: id: 1 properties: data: type: object properties: id: type: integer example: 1 404: description: fail content: application/json: schema: type: object example: error: 'Option update fail' properties: error: type: string example: 'Option update fail' tags: - 'Option Values' requestBody: required: true content: application/vnd.api+json: schema: type: object properties: sort_order: type: integer description: 'The sort order of the option.' example: 1 language_id: type: integer description: 'Language ID.' example: 1 option_value_id: type: integer description: 'Option Value ID.' example: 1 option_description: type: array description: '' example: - placeat items: type: integer option_id: type: string description: 'The type of the option.' example: '"select"' required: - option_description - option_id delete: summary: 'Delete a Option Attribute Option.' operationId: deleteAOptionAttributeOption description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 - in: query name: option_id description: 'The ID of the option.' example: 1 required: true schema: type: integer description: 'The ID of the option.' example: 1 responses: 204: description: success 404: description: fail content: application/json: schema: type: object example: error: 'Option delete fail' properties: error: type: string example: 'Option delete fail' tags: - 'Option Values' parameters: - in: path name: option_id description: 'The ID of the option.' example: earum required: true schema: type: string - in: path name: id description: 'The ID of the value.' example: facere required: true schema: type: string /v2/options: get: summary: 'Show all Options.' operationId: showAllOptions description: '' parameters: [] responses: { } tags: - Options post: summary: 'Create a new Option.' operationId: createANewOption description: '' parameters: [] responses: 201: description: success content: application/json: schema: type: object example: data: id: 1 properties: data: type: object properties: id: type: integer example: 1 404: description: fail content: application/json: schema: type: object example: error: 'Option store fail' properties: error: type: string example: 'Option store fail' tags: - Options requestBody: required: true content: application/vnd.api+json: schema: type: object properties: type: type: string description: 'The type of the option.' example: '"select"' sort_order: type: integer description: 'The sort order of the option.' example: 1 language_id: type: integer description: 'The ID of the language.' example: 1 option_value_id: type: integer description: 'The ID of the option value.' example: 1 option_description: type: array description: '' example: - quasi items: type: integer required: - type - option_description '/v2/options/{id}': get: summary: 'Show a Option.' operationId: showAOption description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: 200: description: success content: application/json: schema: type: object example: data: id: 1 properties: data: type: object properties: id: type: integer example: 1 404: description: fail content: application/json: schema: type: object example: error: 'Option show fail' properties: error: type: string example: 'Option show fail' tags: - Options put: summary: 'Update a Option.' operationId: updateAOption description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: 200: description: success content: application/json: schema: type: object example: data: id: 1 properties: data: type: object properties: id: type: integer example: 1 404: description: fail content: application/json: schema: type: object example: error: 'Option update fail' properties: error: type: string example: 'Option update fail' tags: - Options requestBody: required: true content: application/vnd.api+json: schema: type: object properties: type: type: string description: 'The type of the option.' example: '"select"' sort_order: type: integer description: 'The sort order of the option.' example: 1 language_id: type: integer description: 'The ID of the language.' example: 1 option_value_id: type: integer description: 'The ID of the option value.' example: 1 option_description: type: array description: '' example: - commodi items: type: integer required: - type - option_description delete: summary: 'Delete a Option.' operationId: deleteAOption description: '' parameters: - in: query name: id description: 'The ID of the resource.' example: 1 required: true schema: type: integer description: 'The ID of the resource.' example: 1 responses: 204: description: success 404: description: fail content: application/json: schema: type: object example: error: 'Option delete fail' properties: error: type: string example: 'Option delete fail' tags: - Options parameters: - in: path name: id description: 'The ID of the option.' example: dolor required: true schema: type: string /v2/products: get: summary: 'Listar todos los productos' operationId: listarTodosLosProductos description: 'Retorna una lista paginada de productos con la posibilidad de aplicar filtros, ordenamientos e incluir relaciones.' parameters: - in: query name: 'filter[shipping]' description: 'Filtro por si el producto requiere envío o no.' example: true required: false schema: type: boolean description: 'Filtro por si el producto requiere envío o no.' example: true - in: query name: 'filter[is_active]' description: 'Filtro por si el producto está activo.' example: true required: false schema: type: boolean description: 'Filtro por si el producto está activo.' example: true - in: query name: 'filter[description]' description: 'Filtro por texto en la descripción del producto.' example: remera required: false schema: type: string description: 'Filtro por texto en la descripción del producto.' example: remera - in: query name: 'filter[category_description]' description: 'Filtro por texto en la descripción de la categoría.' example: ropa required: false schema: type: string description: 'Filtro por texto en la descripción de la categoría.' example: ropa - in: query name: sort description: 'Ordenamiento por campo. Puede usarse con prefijo "-" para ordenar de forma descendente. Valores permitidos: min_price, max_price, created_at, description, -min_price, -max_price, -created_at, -description.' example: '-max_price' required: false schema: type: string description: 'Ordenamiento por campo. Puede usarse con prefijo "-" para ordenar de forma descendente. Valores permitidos: min_price, max_price, created_at, description, -min_price, -max_price, -created_at, -description.' example: '-max_price' - in: query name: include description: 'Relaciones a incluir. Valores permitidos: variants.' example: variants required: false schema: type: string description: 'Relaciones a incluir. Valores permitidos: variants.' example: variants - in: header name: ss-siteid description: '' example: 'string required El ID del sitio.' schema: type: string - in: header name: ss-host description: '' example: 'string required El host del sitio.' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"data\": [\n {\n \"id\": 1,\n \"name\": \"Remera Azul\",\n \"min_price\": 100,\n \"max_price\": 200,\n \"variants_count\": 3,\n \"productImages\": [...],\n \"tags\": [...],\n \"categories\": [...]\n }\n ],\n \"links\": {...},\n \"meta\": {...}\n}" tags: - Productos post: summary: 'Crear nuevo producto.' operationId: crearNuevoProducto description: '' parameters: - in: header name: ss-siteid description: '' example: 'string required El ID del sitio.' schema: type: string - in: header name: ss-host description: '' example: 'string required El host del sitio.' schema: type: string responses: { } tags: - Productos requestBody: required: true content: application/vnd.api+json: schema: type: object properties: sku: type: string description: 'Código interno creado por la empresa para identificar y gestionar productos en su inventario.' example: CAMISETA-AZUL-M quantity: type: integer description: 'Cantidad disponible del producto en inventario.' example: 150 control_stock: type: integer description: 'Indica si se controla el stock del producto (1 para sí, 0 para no).' example: 1 is_digital: type: integer description: 'Indica si el producto es digital. Must be at least 0. Must not be greater than 1.' example: 0 cost: type: number description: 'Costo del producto.' example: 12.5 digital_product_url: type: string description: 'URL para la descarga del producto digital.' example: 'https://midominio.com/downloads/ebook123.pdf' video: type: string description: 'URL de un video del producto (por ejemplo, YouTube).' example: catalog/products/camiseta_azul.mp4 price: type: number description: 'Precio de venta del producto.' example: 39.99 weight: type: number description: 'Peso del producto.' example: 1.25 weight_unit: type: string description: 'Unidad de peso del producto.' example: kg length: type: string description: 'Longitud del producto.' example: 30.5 width: type: string description: 'Ancho del producto.' example: 20.0 height: type: string description: 'Altura del producto.' example: 10.0 length_unit: type: string description: 'Unidad de medida de dimensiones.' example: cm sort_order: type: integer description: 'Orden de aparición del producto en listados.' example: 5 is_active: type: string description: 'Indica si el producto está activo (1) o inactivo (0).' example: 1 category_id: type: string description: '' example: null tags: type: array description: '' example: - 14 items: type: integer descriptions: type: array description: 'Listado de descripciones del producto en distintos idiomas.' example: - lang_id: '1' name: 'Camiseta azul' description: 'Camiseta de algodón color azul.' - lang_id: '2' name: 'Blue T-shirt' description: 'Cotton blue T-shirt.' items: type: string variants: type: array description: 'Lista de variantes del producto (por ejemplo, tallas o colores diferentes).' example: - id: '28' sku: CAMISETA-AZUL-M quantity: 30 control_stock: 1 is_digital: 0 cost: 10.75 digital_product_url: null video: catalog/products/camiseta_demo.mp4 price: 29.99 weight: 0.25 weight_unit: kg length: 25 width: 18 height: 2 length_unit: cm sort_order: 2 is_active: 1 items: type: string required: - descriptions '/v2/products/{product}': get: summary: 'Obtener un producto por ID' operationId: obtenerUnProductoPorID description: 'Retorna la información detallada de un producto específico, incluyendo sus variantes, imágenes, categorías, y etiquetas.' parameters: - in: header name: ss-siteid description: '' example: 'string required El ID del sitio.' schema: type: string - in: header name: ss-host description: '' example: 'string required El host del sitio.' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"id\": 5,\n \"name\": \"Remera Azul\",\n \"description\": \"Remera de algodón color azul\",\n \"min_price\": 100,\n \"max_price\": 200,\n \"variants_count\": 2,\n \"variants\": [\n {\n \"id\": 10,\n \"price\": 150,\n \"sku\": \"REMERA-AZUL-S\",\n \"product_description\": {\n \"name\": \"Remera Azul S\",\n \"description\": \"Remera talle S\"\n }\n }\n ],\n \"productImages\": [...],\n \"tags\": [...],\n \"categories\": [\n {\n \"id\": 2,\n \"category_description\": {\n \"name\": \"Ropa\"\n }\n }\n ]\n }\n}" 404: description: '' content: application/json: schema: type: object example: error: 'Product not found' properties: error: type: string example: 'Product not found' tags: - Productos put: summary: 'Actualizar un producto.' operationId: actualizarUnProducto description: '' parameters: - in: query name: id description: 'Id del producto.' example: 1 required: true schema: type: integer description: 'Id del producto.' example: 1 - in: header name: ss-siteid description: '' example: 'string required El ID del sitio.' schema: type: string - in: header name: ss-host description: '' example: 'string required El host del sitio.' schema: type: string responses: { } tags: - Productos requestBody: required: true content: application/vnd.api+json: schema: type: object properties: sku: type: string description: 'Código interno creado por la empresa para identificar y gestionar productos en su inventario.' example: CAMISETA-AZUL-M quantity: type: integer description: 'Cantidad disponible del producto en inventario.' example: 150 control_stock: type: integer description: 'Indica si se controla el stock del producto (1 para sí, 0 para no).' example: 1 is_digital: type: integer description: 'Indica si el producto es digital. Must be at least 0. Must not be greater than 1.' example: 0 cost: type: number description: 'Costo del producto.' example: 12.5 digital_product_url: type: string description: 'URL para la descarga del producto digital.' example: 'https://midominio.com/downloads/ebook123.pdf' video: type: string description: 'URL de un video del producto (por ejemplo, YouTube).' example: catalog/products/camiseta_azul.mp4 price: type: number description: 'Precio de venta del producto.' example: 39.99 weight: type: number description: 'Peso del producto.' example: 1.25 weight_unit: type: string description: 'Unidad de peso del producto.' example: kg length: type: string description: 'Longitud del producto.' example: 30.5 width: type: string description: 'Ancho del producto.' example: 20.0 height: type: string description: 'Altura del producto.' example: 10.0 length_unit: type: string description: 'Unidad de medida de dimensiones.' example: cm sort_order: type: integer description: 'Orden de aparición del producto en listados.' example: 5 is_active: type: string description: 'Indica si el producto está activo (1) o inactivo (0).' example: 1 category_id: type: string description: '' example: null tags: type: array description: '' example: - 4 items: type: integer descriptions: type: array description: 'Listado de descripciones del producto en distintos idiomas.' example: - lang_id: '1' name: 'Camiseta azul' description: 'Camiseta de algodón color azul.' - lang_id: '2' name: 'Blue T-shirt' description: 'Cotton blue T-shirt.' items: type: string variants: type: array description: 'Lista de variantes del producto (por ejemplo, tallas o colores diferentes).' example: - id: '28' sku: CAMISETA-AZUL-M quantity: 30 control_stock: 1 is_digital: 0 cost: 10.75 digital_product_url: null video: catalog/products/camiseta_demo.mp4 price: 29.99 weight: 0.25 weight_unit: kg length: 25 width: 18 height: 2 length_unit: cm sort_order: 2 is_active: 1 items: type: string required: - descriptions delete: summary: 'Eliminar un producto.' operationId: eliminarUnProducto description: . parameters: - in: query name: id description: 'Id del producto.' example: 1 required: true schema: type: integer description: 'Id del producto.' example: 1 - in: header name: ss-siteid description: '' example: 'string required El ID del sitio.' schema: type: string - in: header name: ss-host description: '' example: 'string required El host del sitio.' schema: type: string responses: { } tags: - Productos parameters: - in: path name: product description: 'ID del producto a consultar.' example: 5 required: true schema: type: integer /api/render/v2/products: get: summary: 'Listar todos los productos' operationId: listarTodosLosProductos description: 'Retorna una lista paginada de productos con la posibilidad de aplicar filtros, ordenamientos e incluir relaciones.' parameters: - in: query name: 'filter[shipping]' description: 'Filtro por si el producto requiere envío o no.' example: true required: false schema: type: boolean description: 'Filtro por si el producto requiere envío o no.' example: true - in: query name: 'filter[is_active]' description: 'Filtro por si el producto está activo.' example: true required: false schema: type: boolean description: 'Filtro por si el producto está activo.' example: true - in: query name: 'filter[description]' description: 'Filtro por texto en la descripción del producto.' example: remera required: false schema: type: string description: 'Filtro por texto en la descripción del producto.' example: remera - in: query name: 'filter[category_description]' description: 'Filtro por texto en la descripción de la categoría.' example: ropa required: false schema: type: string description: 'Filtro por texto en la descripción de la categoría.' example: ropa - in: query name: sort description: 'Ordenamiento por campo. Puede usarse con prefijo "-" para ordenar de forma descendente. Valores permitidos: min_price, max_price, created_at, description, -min_price, -max_price, -created_at, -description.' example: '-max_price' required: false schema: type: string description: 'Ordenamiento por campo. Puede usarse con prefijo "-" para ordenar de forma descendente. Valores permitidos: min_price, max_price, created_at, description, -min_price, -max_price, -created_at, -description.' example: '-max_price' - in: query name: include description: 'Relaciones a incluir. Valores permitidos: variants.' example: variants required: false schema: type: string description: 'Relaciones a incluir. Valores permitidos: variants.' example: variants - in: header name: ss-siteid description: '' example: 'string required El ID del sitio.' schema: type: string - in: header name: ss-host description: '' example: 'string required El host del sitio.' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"data\": [\n {\n \"id\": 1,\n \"name\": \"Remera Azul\",\n \"min_price\": 100,\n \"max_price\": 200,\n \"variants_count\": 3,\n \"productImages\": [...],\n \"tags\": [...],\n \"categories\": [...]\n }\n ],\n \"links\": {...},\n \"meta\": {...}\n}" tags: - Productos /api/render/v2/products/show: get: summary: 'Obtener un producto por ID' operationId: obtenerUnProductoPorID description: 'Retorna la información detallada de un producto específico, incluyendo sus variantes, imágenes, categorías, y etiquetas.' parameters: - in: header name: ss-siteid description: '' example: 'string required El ID del sitio.' schema: type: string - in: header name: ss-host description: '' example: 'string required El host del sitio.' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"id\": 5,\n \"name\": \"Remera Azul\",\n \"description\": \"Remera de algodón color azul\",\n \"min_price\": 100,\n \"max_price\": 200,\n \"variants_count\": 2,\n \"variants\": [\n {\n \"id\": 10,\n \"price\": 150,\n \"sku\": \"REMERA-AZUL-S\",\n \"product_description\": {\n \"name\": \"Remera Azul S\",\n \"description\": \"Remera talle S\"\n }\n }\n ],\n \"productImages\": [...],\n \"tags\": [...],\n \"categories\": [\n {\n \"id\": 2,\n \"category_description\": {\n \"name\": \"Ropa\"\n }\n }\n ]\n }\n}" 404: description: '' content: application/json: schema: type: object example: error: 'Product not found' properties: error: type: string example: 'Product not found' tags: - Productos requestBody: required: true content: application/vnd.api+json: schema: type: object properties: product_slug: type: string description: '' example: ipsam required: - product_slug parameters: - in: path name: product description: 'ID del producto a consultar.' example: 5 required: true schema: type: integer /v2/tags: get: summary: 'Muestra todos los tags' operationId: muestraTodosLosTags description: '' parameters: - in: query name: name description: 'Filtra por nombre del tag.' example: null required: false schema: type: string description: 'Filtra por nombre del tag.' example: null - in: query name: sort description: 'Parametros de ordenamiento.' example: date_added required: false schema: type: string description: 'Parametros de ordenamiento.' example: date_added enum: - tags_id - sort_order - date_added - date_modified - '-tags_id' - '-sort_order' - '-date_added' - '-date_modified' responses: { } tags: - Tags post: summary: 'Store a newly created resource in storage.' operationId: storeANewlyCreatedResourceInStorage description: '' parameters: - in: query name: text_color description: 'string Color de texto.' example: '#FFFFFF' required: true schema: type: string description: 'string Color de texto.' example: '#FFFFFF' - in: query name: bg_color description: 'string Color de texto.' example: '#fff6f0' required: true schema: type: string description: 'string Color de texto.' example: '#fff6f0' - in: query name: status description: 'Color de texto.' example: true required: false schema: type: boolean description: 'Color de texto.' example: true responses: { } tags: - Tags requestBody: required: true content: application/vnd.api+json: schema: type: object properties: sort_order: type: integer description: 'El orden de la etiqueta.' example: 1 text_color: type: string description: 'Color del texto.' example: '#000000' bg_color: type: string description: 'Color de fondo.' example: '#FFFFFF' status: type: boolean description: 'Estado de la etiqueta.' example: false tag_description: type: array description: '' example: - exercitationem items: type: integer required: - text_color - bg_color - tag_description '/v2/tags/{id}': get: summary: 'Display the specified resource.' operationId: displayTheSpecifiedResource description: '' parameters: - in: query name: id description: 'Id del tag.' example: 1 required: true schema: type: integer description: 'Id del tag.' example: 1 responses: { } tags: - Tags put: summary: 'Update the specified resource in storage.' operationId: updateTheSpecifiedResourceInStorage description: '' parameters: - in: query name: id description: 'Id del tag.' example: 1 required: true schema: type: integer description: 'Id del tag.' example: 1 - in: query name: sort_order description: 'Orden de la etiqueta.' example: 1 required: false schema: type: integer description: 'Orden de la etiqueta.' example: 1 - in: query name: text_color description: 'Color de texto.' example: '#FFFFFF' required: false schema: type: string description: 'Color de texto.' example: '#FFFFFF' - in: query name: bg_color description: 'Color de texto.' example: '#fff6f0' required: false schema: type: string description: 'Color de texto.' example: '#fff6f0' - in: query name: status description: 'Color de texto.' example: true required: false schema: type: boolean description: 'Color de texto.' example: true responses: { } tags: - Tags requestBody: required: true content: application/vnd.api+json: schema: type: object properties: sort_order: type: integer description: 'El orden de la etiqueta.' example: 1 text_color: type: string description: 'Color del texto.' example: '#000000' bg_color: type: string description: 'Color de fondo.' example: '#FFFFFF' status: type: boolean description: 'Estado de la etiqueta.' example: false tag_description: type: array description: '' example: - unde items: type: integer required: - text_color - bg_color - tag_description delete: summary: 'Remove the specified resource from storage.' operationId: removeTheSpecifiedResourceFromStorage description: '' parameters: - in: query name: id description: 'Id del tag.' example: 1 required: true schema: type: integer description: 'Id del tag.' example: 1 responses: { } tags: - Tags parameters: - in: path name: id description: 'The ID of the tag.' example: aut required: true schema: type: string '/v2/tags/{id}/order': post: summary: 'Order Tags.' operationId: orderTags description: '' parameters: [] responses: { } tags: - Tags requestBody: required: true content: application/vnd.api+json: schema: type: object properties: sort_order: type: integer description: 'El orden de la etiqueta.' example: 1 order: type: integer description: 'Nuevo orden' example: 13 required: - sort_order - order parameters: - in: path name: id description: 'The ID of the tag.' example: sint required: true schema: type: string tags: - name: Categories description: '' - name: Cupones description: '' - name: Currencies description: '' - name: Customers description: '' - name: Endpoints description: '' - name: 'Option Values' description: '' - name: Options description: '' - name: Productos description: '' - name: Tags description: '' components: securitySchemes: default: type: http scheme: bearer description: 'El token de acceso se obtiene generandolo desde el panel de administracion de SitioSimple.' security: - default: []