# Productos

## Obtener listado de productos

<mark style="color:blue;">`GET`</mark> `https://{clave}.admintotal.com/api/v2/productos/`

#### Query Parameters

| Name                   | Type    | Description                                                                                                                                                                                        |
| ---------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| excluir                | string  | Nombres de los campos separados por coma de los cuales no se desean en la respuesta                                                                                                                |
| almacenes\_existencias | string  | ID's de almacenes separados por coma de los cuales se sumará la existencia.                                                                                                                        |
| q                      | string  | Filtrar resultados donde la descripción del producto contenga el valor especificado                                                                                                                |
| subsublinea            | integer | Filtrar resultados por ID de subsublinea                                                                                                                                                           |
| sublinea               | integer | Filtrar resultados por ID de sublinea                                                                                                                                                              |
| linea                  | integer | Filtrar resultados por ID de linea                                                                                                                                                                 |
| almacen                | integer | ID del almacén que se usará para precio y existencia, en caso de no especificarse precio será tomado del precio de venta especificado en el catálogo de productos y se omitirá el campo existencia |
| precio\_max            | number  | Filtrar de resultados por precio máximo                                                                                                                                                            |
| precio\_min            | number  | Filtrar de resultados por precio mínimo                                                                                                                                                            |
| codigo                 | string  | Filtrar resultados por código de producto                                                                                                                                                          |
| medio\_distribucion    | integer | <p>Filtrar resultados por medio de distribución, las opciones son:<br><strong>1</strong> - Tienda<br><strong>2</strong> - Web<br><strong>3</strong> - Ambos</p>                                    |
| codigos                | String  | Múltiples códgos de productos separados por coma, por ejemplo: "?codigos=AB001, AB002"                                                                                                             |
| codigo\_origen         | String  | Filtrar resultados por código de origen                                                                                                                                                            |
| clasificacion\_precios | integer | Tiene que ser un id de Clasificacion de cliente.                                                                                                                                                   |

#### Headers

| Name    | Type   | Description            |
| ------- | ------ | ---------------------- |
| Api-key | string | Token de autenticación |

{% tabs %}
{% tab title="200 " %}

```
{
    "count": 12841,
    "next": "https://{clave}.admintotal.com/api/v2/productos/",
    "previous": null,
    "results": [
        {
            "id": 15111,
            "codigo": "PRODUCTO DE EJEMPLO",
            "medio_distribucion": 3,
            "descripcion": "Lorem ipsum dolor...",
            "descripcion_adicional": "",
            "ce_fraccion_arancelaria": "",
            "descripcion_ingles": "",
            "descripcion_ecommerce": "",
            "tipo": 0,
            "tipo_producto_sistema_cardonal": null,
            "composiciones": [],
            "unidad_aduana": "",
            "imagen_url": "",
            "costo_ensamble": 0,
            "costo": 0.0,
            "precio": 160.0,
            "unidad": {
                "id": 13393,
                "factor": "1.000000",
                "seleccionado": true,
                "seleccionado_compra": true,
                "codigo_barras": null,
                "base": "70.0000",
                "altura": "35.0000",
                "profundidad": "60.0000",
                "peso": "200.0000",
                "nombre": "PIEZA"
            },
            "unidades": [
                {
                    "id": 13393,
                    "factor": "1.000000",
                    "seleccionado": true,
                    "seleccionado_compra": true,
                    "codigo_barras": null,
                    "base": "70.0000",
                    "altura": "35.0000",
                    "profundidad": "60.0000",
                    "peso": "200.0000",
                    "nombre": "PIEZA"
                }
            ]
        },
        ...
    ]
}
```

{% endtab %}
{% endtabs %}

## Obtener un producto

<mark style="color:blue;">`GET`</mark> `https://{clave}.admintotal.com/api/v2/productos/:id/`

#### Path Parameters

| Name | Type    | Description    |
| ---- | ------- | -------------- |
| ID   | integer | ID de producto |

#### Query Parameters

| Name    | Type    | Description                                                                                                                                                                                        |
| ------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| almacen | integer | ID del almacén que se usará para precio y existencia, en caso de no especificarse precio será tomado del precio de venta especificado en el catálogo de productos y se omitirá el campo existencia |

#### Headers

| Name    | Type   | Description            |
| ------- | ------ | ---------------------- |
| Api-key | string | Token de autenticación |

{% tabs %}
{% tab title="200 " %}

```
{
    "id": 15111,
    "codigo": "PRODUCTO DE EJEMPLO",
    "medio_distribucion": 3,
    "descripcion": "Lorem ipsum dolor...",
    "descripcion_adicional": "",
    "ce_fraccion_arancelaria": "",
    "descripcion_ingles": "",
    "descripcion_ecommerce": "",
    "tipo": 0,
    "tipo_producto_sistema_cardonal": null,
    "composiciones": [],
    "unidad_aduana": "",
    "imagen_url": "",
    "costo_ensamble": 0,
    "costo": 0.0,
    "precio": 160.0,
    "unidad": {
        "id": 13393,
        "factor": "1.000000",
        "seleccionado": true,
        "seleccionado_compra": true,
        "codigo_barras": null,
        "base": "70.0000",
        "altura": "35.0000",
        "profundidad": "60.0000",
        "peso": "200.0000",
        "nombre": "PIEZA"
    },
    "unidades": [
        {
            "id": 13393,
            "factor": "1.000000",
            "seleccionado": true,
            "seleccionado_compra": true,
            "codigo_barras": null,
            "base": "70.0000",
            "altura": "35.0000",
            "profundidad": "60.0000",
            "peso": "200.0000",
            "nombre": "PIEZA"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Editar ensambles de un producto

<mark style="color:green;">`POST`</mark> `https://{clave}.admintotal.com/api/v2/productos/:id/editar_ensambles/`

#### Path Parameters

| Name | Type    | Description    |
| ---- | ------- | -------------- |
| ID   | integer | ID de producto |

#### Headers

| Name    | Type   | Description            |
| ------- | ------ | ---------------------- |
| Api-key | string | Token de autenticación |

#### Request Body

| Name         | Type    | Description                 |
| ------------ | ------- | --------------------------- |
| um\_nombre   | string  | Nombre de unidad de medida  |
| factor       | number  | Factor, valor por defecto 1 |
| cantidad     | number  | Cantidad del ensamble       |
| um\_id       | integer | ID de unidad de medida      |
| producto\_id | number  | ID de producto              |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Habilitar webhook a múltiples productos

<mark style="color:green;">`POST`</mark> `https://{clave}.admintotal.com/api/v2/productos/habilitar_webhook/`

Endpoint para habilitar la funcionalidad de webhooks a múltiples productos. Normalmente se utiliza cuando se tienen configurados webhooks de notificaciones de cambios de precios y existencias.

#### Headers

| Name    | Type   | Description            |
| ------- | ------ | ---------------------- |
| Api-key | string | Token de autenticación |

#### Request Body

| Name    | Type  | Description                                              |
| ------- | ----- | -------------------------------------------------------- |
| codigos | array | Lista de códigos a los que se desea habilitar el webhook |

{% tabs %}
{% tab title="200 " %}

```
{
    "actualizados": [
        "01",
        "123456",
        "31-750",
        "26-675",
        ...
    ]
}
```

{% endtab %}
{% endtabs %}
