> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Importar pedidos

> Importe o actualice pedidos de transacciones y sus líneas de producto en Kameleoon para impulsar las recomendaciones de producto y las analíticas.

Este endpoint permite importar una lista de pedidos de transacciones en su cuenta de Kameleoon. También puede usar este endpoint para actualizar los pedidos y sus propiedades si ya existen en nuestra base de datos. Los datos deben enviarse como una [cadena JSON en el cuerpo de la solicitud](#ejemplo-de-solicitud-json).

## Solicitud HTTP

```
POST https://api.products.kameleoon.com/sync/orders
```

## Lista de parámetros de consulta

| Parámetro     | Tipo   | Obligatorio | Descripción                                                                                                                                                                                            |
| ------------- | ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `shop_id`     | String | True        | Su Store Key. Puede encontrarla en **Recommendations** > **Settings** > **Store settings** en la aplicación Kameleoon. También puede contactar con su Customer Success Manager para obtener la clave.  |
| `shop_secret` | String | True        | Su Secret Key. Puede encontrarla en **Recommendations** > **Settings** > **Store settings** en la aplicación Kameleoon. También puede contactar con su Customer Success Manager para obtener la clave. |
| `orders`      | Array  | True        | Lista de pedidos. Encuentre en [esta tabla](#lista-de-parámetros-para-el-objeto-orders) los parámetros requeridos para `orders`.                                                                       |

## Lista de parámetros para el objeto `orders`

| Parámetro                | Tipo    | Obligatorio | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------ | ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id`                     | String  | True        | ID del pedido                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `external_id`            | String  | True        | Es un identificador único asociado a un usuario en su sistema o CRM. **(Para garantizar la correspondencia precisa con el `VisitorCode` de Kameleoon, el ID debe almacenarse primero como un custom data de Kameleoon. Al configurar este custom data, asegúrese de activar la opción `Use this custom data as a unique identifier for cross-device matching` para garantizar que el ID se utiliza para vincular las actividades del usuario en ambos sistemas.)** |
| `status`                 | String  | True        | Estado del pedido (por ejemplo, Processing, Out for delivery, Delivered)                                                                                                                                                                                                                                                                                                                                                                                           |
| `channel`                | String  | True        | Medio utilizado para el pedido (por ejemplo, Website, App, In-store)                                                                                                                                                                                                                                                                                                                                                                                               |
| `date`                   | Integer | True        | Marca de tiempo Unix en segundos del momento en que se realizó o actualizó el pedido                                                                                                                                                                                                                                                                                                                                                                               |
| `offline`                | Boolean | False       | Marca los pedidos como offline. Por defecto está establecido en `false`                                                                                                                                                                                                                                                                                                                                                                                            |
| `location_id`            | String  | True        | ID de la ubicación (ciudad) del usuario                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `promocode`              | String  | False       | Código promocional usado en el pedido                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `delivery_type`          | String  | False       | Tipo de entrega (por ejemplo, Courier, Pickup in-store)                                                                                                                                                                                                                                                                                                                                                                                                            |
| `delivery_address`       | String  | False       | Dirección de destino para CRM                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `delivery_date`          | Date    | False       | Fecha de entrega prevista. Formato: "YYYY-MM-DD"                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `delivery_time`          | Time    | False       | Hora de entrega prevista. Formato: "HH:MM"                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `payment_type`           | String  | False       | Tipo de pago (por ejemplo, Cash, Card, Wire)                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `tax_free`               | Boolean | False       | Indica si el artículo está libre de impuestos                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `bank_issuer`            | String  | False       | Banco emisor                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `bank_pos_processor`     | String  | False       | Indica qué sistema/terminal de punto de venta (POS) se utilizó en el momento del pago                                                                                                                                                                                                                                                                                                                                                                              |
| `bank_loyalty_program`   | String  | False       | Programa de fidelidad bancario                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `bank_total_installment` | Integer | False       | Cuotas totales que deben pagarse a través del banco                                                                                                                                                                                                                                                                                                                                                                                                                |
| `payment_card_provider`  | String  | False       | Proveedor de la tarjeta de pago                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `gift_package`           | Boolean | False       | Indica si el artículo se entregará en un paquete de regalo                                                                                                                                                                                                                                                                                                                                                                                                         |
| `value`                  | Object  | True        | Total general del pedido. Encuentre el parámetro requerido para `value` en [esta tabla](#lista-de-parámetros-para-el-objeto-value).                                                                                                                                                                                                                                                                                                                                |
| `payment_structure`      | Object  | True        | Un desglose del pago (por ejemplo, pagos en efectivo, descuentos, gastos de envío). Encuentre los parámetros requeridos para `payment_structure` en [esta tabla](#lista-de-parámetros-para-el-objeto-payment_structure).                                                                                                                                                                                                                                           |
| `items`                  | Object  | True        | Todo lo que se incluye en el pedido. Encuentre los parámetros requeridos para `items` en [esta tabla](#lista-de-parámetros-para-el-objeto-items).                                                                                                                                                                                                                                                                                                                  |

## Lista de parámetros para el objeto `value`

| Parámetro | Tipo    | Obligatorio | Descripción      |
| --------- | ------- | ----------- | ---------------- |
| `Total`   | Numeric | True        | Total del pedido |

## Lista de parámetros para el objeto `payment_structure`

| Parámetro  | Tipo    | Obligatorio | Descripción                                                      |
| ---------- | ------- | ----------- | ---------------------------------------------------------------- |
| `cash`     | Numeric | False       | Indica qué parte del total del pedido se pagó en efectivo        |
| `bonuses`  | Numeric | False       | Indica qué parte del total del pedido se pagó con bonificaciones |
| `delivery` | Numeric | False       | Indica el coste de la entrega del pedido                         |
| `discount` | Numeric | False       | Indica el valor descontado del pedido                            |

<Note>
  Asegúrese de que `value.total == payment_structure.cash + payment_structure.bonuses + payment_structure.delivery - payment_structure.discount`
</Note>

## Lista de parámetros para el objeto `items`

| Parámetro          | Tipo    | Obligatorio | Descripción                                                                                                 |
| ------------------ | ------- | ----------- | ----------------------------------------------------------------------------------------------------------- |
| `id`               | String  | True        | ID del producto comprado                                                                                    |
| `price`            | Numeric | True        | Precio de una unidad del producto                                                                           |
| `quantity`         | Integer | True        | Cantidad total de los productos elegidos                                                                    |
| `status`           | String  | True        | Estado del artículo; solo puede ser: `created`, `invoiced`, `shipped`, `delivered`, `cancelled`, `refunded` |
| `original_price`   | Numeric | False       | Precio original del producto                                                                                |
| `discount_product` | Numeric | False       | Precio del producto con descuento                                                                           |
| `discount_bonuses` | Numeric | False       | Bonificaciones de descuento del producto                                                                    |
| `delivery_company` | String  | False       | Servicio postal que entregó el artículo                                                                     |
| `barcode`          | String  | False       | Código de barras del producto                                                                               |
| `line_id`          | String  | False       | ID único para la posición de este producto (línea de pedido) en el sistema de pedidos de su tienda.         |
| `cancel_reason`    | String  | False       | Motivo de la cancelación                                                                                    |

<Note>
  El objeto `items` es obligatorio cuando se crea un pedido. Puede enviarlo como un array vacío cuando actualice el estado de un pedido.
</Note>

## Ejemplo de solicitud JSON

```json theme={null}

{
  "shop_id": "DvLWN2ZTMZ",
  "shop_secret": "EIxTuot8sj",
  "orders": [
    {
      "id": "yKsvZbWpCL",
      "external_id":"jhfakfkadak",
      "status": "Processing",
      "channel": "In-store",
      "date": 1602338740,
      "offline": false,
      "location_id": "7701123",
      "promocode": "vxawxSi9Uy",
      "delivery_type": "courier",
      "delivery_address": "111 Peter Street, Toronto, ON, M5V 2H1",
      "delivery_date": "2021-12-21",
      "delivery_time": "15:00",
      "tax_free": false,
      "bank_issuer": "Scotiabank",
      "bank_pos_processor": "Clover",
      "bank_loyalty_program": "PC Optimum",
      "bank_total_installment": 0,
      "payment_card_provider": "Visa"
      "gift_package":true,
      "value": {
        "total": 200.13,
      },
      "payment_structure": {
        "cash": 190,
        "bonuses": 15,
        "delivery": 20,
        "discount": 24.87
      },
      "items": [
        {
          "id": "ITEM-ID-1",
          "price": 205,
          "quantity": 1,
          "status": "created",
          "original_price": 230,
          "discount_product": 30,
          "discount_bonuses": 20,
          "delivery_company": "Canada Post",
          "barcode_id": "195204003541",
          "line_id": "195204003541-22323443-123434",
          "cancel_reason": "none",
        },
}
        ...
      ]
    },
    ...
  ]
}
```

## Cancelar un pedido

Dado que el endpoint Import orders se utiliza tanto para crear como para actualizar pedidos, puede usarlo para registrar un pedido cancelado.

Para registrar un pedido cancelado, proporcione lo siguiente:

### Parámetros de consulta

| Parámetro     | Tipo   | Obligatorio | Descripción                                                                                                                                                                                            |
| ------------- | ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `shop_id`     | String | True        | Su Store Key. Puede encontrarla en **Recommendations** > **Settings** > **Store settings** en la aplicación Kameleoon. También puede contactar con su Customer Success Manager para obtener la clave.  |
| `shop_secret` | String | True        | Su Secret Key. Puede encontrarla en **Recommendations** > **Settings** > **Store settings** en la aplicación Kameleoon. También puede contactar con su Customer Success Manager para obtener la clave. |
| `orders`      | Array  | True        | Lista de pedidos. Proporcione los pedidos que desea registrar como cancelados.                                                                                                                         |

### Parámetros del objeto `orders`

| Parámetro | Tipo   | Obligatorio | Descripción                                    |
| --------- | ------ | ----------- | ---------------------------------------------- |
| `id`      | String | True        | ID del pedido                                  |
| `status`  | String | True        | Estado del pedido (establecido en `cancelled`) |

### Ejemplo de solicitud JSON de cancelación

```json theme={null}
{
  "shop_id": "DvLWN2ZTMZ",
  "shop_secret": "EIxTuot8sj",
  "orders": [
    {
      "id": "yKsvZbWpCL",
      "status": "Cancelled"
    },
    ...
  ]
}
```
