---
title: "Update cart item"
method: PATCH
path: "/ordering/customers/{externalCustomerId}/websites/{domain}/cart/items/{cartItemId}"
tags: ["Ordering API"]
---

# Update cart item

`PATCH /ordering/customers/{externalCustomerId}/websites/{domain}/cart/items/{cartItemId}`

## Request

- Base URL: `https://api.service.getjusto.com/v3`
- URL: `https://api.service.getjusto.com/v3/ordering/customers/{externalCustomerId}/websites/{domain}/cart/items/{cartItemId}`
- Auth: HTTP bearer

Actualiza cantidad, modificadores o comentario de un item del carrito. Si cambian comentario o modificadores, el cartItemId puede cambiar; usa el item retornado en la respuesta.

## Path parameters

- `externalCustomerId` string, required
- `domain` string, required
- `cartItemId` string, required

## Request body

- OrderingCartItemInput: Item a agregar o actualizar en el carrito.
  - `productId` string: ID del producto.
  - `amount` number: Cantidad del producto. Debe ser mayor a 0.
  - `modifiers` OrderingCartModifierSelection[]: Modificadores seleccionados.
    - `modifierId` string: ID del modificador.
    - `optionsIds` string[]: IDs de opciones seleccionadas. Repite un ID si la opción permite más de una unidad.
  - `comment` string, nullable: Comentario del item.

## Response `200`

Update cart item

- object
  - `success` boolean, required
  - `data` OrderingCartItemMutation, required: Resultado de una mutación de item de carrito. Usa el item y state retornados como fuente de verdad; el cartItemId puede cambiar al editar comentario o modificadores.
    - `item` OrderingCartItem: Item del carrito.
      - `_id` string: ID del item del carrito.
      - `productId` string: ID del producto.
      - `menuId` string, nullable: ID del menú.
      - `amount` number: Cantidad del producto.
      - `quantity` number: Cantidad del producto en flujos v2.
      - `comment` string, nullable: Comentario del item.
      - `modifiers` object[]: Modificadores seleccionados.
      - `product` object: Producto asociado al item.
      - `unitPrice` number: Precio unitario.
      - `totalPrice` number: Precio total del item.
    - `state` OrderingCartState: OrderPreferences extendido con billing, propina, cashAmount, orderParams y opciones dinámicas.
      - `_id` string: ID de las preferencias.
      - `placeId` string, nullable: Place ID aplicado desde la dirección seleccionada del customer.
      - `menuId` string, nullable: ID del menú seleccionado o resuelto.
      - `channel` string, nullable: Canal calculado.
      - `deliveryType` 'delivery' | 'go' | 'serve', nullable: Tipo de entrega.
      - `tableName` string, nullable: Mesa o identificador de consumo en local.
      - `time` string, nullable: Hora seleccionada.
      - `deliverAt` string, nullable: Fecha/hora calculada de entrega.
      - `timeLabel` string, nullable: Texto visible de la hora seleccionada.
      - `itsStoreOpenAtTime` boolean, nullable: Indica si el local abre para la hora elegida.
      - `paymentType` string, nullable: Medio de pago seleccionado.
      - `paymentTypeIsIntegration` boolean, nullable: Indica si el pago es integración.
      - `cardId` string, nullable: ID de tarjeta seleccionada.
      - `selectedPaymentMethodKey` string, nullable: Key del medio de pago seleccionado.
      - `otherPaymentType` string, nullable: Subtipo de pago.
      - `couponCode` string, nullable: Cupón aplicado.
      - `loyaltyProgram` object, nullable: Configuración loyalty.
      - `externalLoyaltyProgram` object, nullable: Configuración loyalty externa.
      - `useExternalLoyalty` boolean, nullable: Indica si usa loyalty externa.
      - `websiteCoinsToSpend` number, nullable: Coins del website a usar.
      - `externalLoyaltyCoinsToSpend` number, nullable: Coins externas a usar.
      - `justoCoinsToSpend` number, nullable: Justo Coins a usar.
      - `tipAmount` number, nullable: Monto de propina seleccionado.
      - `tipPercentage` number, nullable: Porcentaje de propina seleccionado.
      - `bagsRequired` number, nullable: Bolsas requeridas.
      - `storeId` string, nullable: ID del local seleccionado.
      - `sessionEmail` string, nullable: Email de sesión.
      - `sessionEmailHasAccount` boolean, nullable: Indica si el email tiene cuenta.
      - `sessionPhone` string, nullable: Teléfono de sesión.
      - `isOutOfBounds` boolean, nullable: Indica si la dirección está fuera de cobertura.
      - `currentReducedDemandMessage` string, nullable: Mensaje actual de demanda reducida.
      - `address` OrderingOrderPreferencesAddress: Dirección seleccionada calculada por OrderPreferences.
        - `_id` string: ID interno de dirección.
        - `streetAddress` string, nullable: Dirección principal.
        - `extendedAddress` string, nullable: Departamento, oficina u otra línea secundaria.
        - `locality` string, nullable: Comuna o localidad.
        - `countryName` string, nullable: País.
        - `placeId` string, nullable: Place ID seleccionado.
        - `location` OrderingLocation: Coordenadas geográficas.
          - `lat` number: Latitud.
          - `lng` number: Longitud.
      - `store` OrderingOrderPreferencesStore: Local calculado por OrderPreferences.
        - `_id` string: ID del local.
        - `acceptDelivery` boolean, nullable: Indica si acepta delivery.
        - `acceptGo` boolean, nullable: Indica si acepta retiro.
        - `acceptServe` boolean, nullable: Indica si acepta consumo en local.
        - `name` string, nullable: Nombre del local.
        - `minimumAnticipationDays` number, nullable: Días mínimos de anticipación.
        - `currentExtraDeliveryCost` number, nullable: Costo extra actual de delivery.
        - `hideTip` boolean, nullable: Indica si oculta propina.
        - `forceHideDeliveryTip` boolean, nullable: Indica si fuerza ocultar propina delivery.
        - `defaultsManagedDelivery` boolean, nullable: Usa delivery gestionado por defecto.
        - `availableScheduleDaysOptions` object[]: Opciones de agenda.
          - `label` string: Texto visible.
          - `value` string: Valor que debe enviarse en preferencias.
        - `extendedAddress` string, nullable: Dirección extendida del local.
        - `streetAddress` string, nullable: Dirección principal del local.
        - `location` OrderingLocation: Coordenadas geográficas.
          - `lat` number: Latitud.
          - `lng` number: Longitud.
        - `itsOpenNow` boolean, nullable: Indica si el local está abierto ahora.
        - `itsOpenAtTime` boolean, nullable: Indica si el local está abierto para la hora elegida.
        - `disableNowOrders` boolean, nullable: Indica si no acepta pedidos inmediatos.
        - `availablePaymentMethods` OrderingOrderPreferencesPaymentMethod[]: Medios de pago disponibles.
          - `paymentMethodKey` string: Key que debe enviarse como paymentType.
          - `label` string: Nombre visible.
          - `canDeliver` boolean, nullable: Indica si permite delivery.
          - `isIntegration` boolean, nullable: Indica si depende de una integración externa.
          - `allowedDeliveryTypes` string[]: Tipos de entrega permitidos.
          - `requiresRoundTrip` boolean, nullable: Indica si requiere viaje ida y vuelta.
          - `isAvailableInV3` boolean, nullable: Indica si está disponible en checkout v3.
          - `otherPaymentType` string, nullable: Subtipo de pago asociado.
          - `paymentType` string, nullable: Tipo de pago base.
          - `extraPaymentInformation` object, nullable: Metadata adicional del medio de pago.
        - `savedUserCards` OrderingOrderPreferencesSavedCard[]: Tarjetas guardadas.
          - `_id` string: ID de tarjeta.
          - `brandId` string, nullable: ID de marca.
          - `brandName` string, nullable: Nombre de marca.
          - `label` string, nullable: Texto visible.
          - `last4` string, nullable: Últimos 4 dígitos.
          - `paymentMethodKey` string, nullable: Payment method key asociado.
          - `paymentType` string, nullable: Tipo de pago.
          - `cardBin` string, nullable: BIN de la tarjeta.
      - `cart` OrderingOrderPreferencesCart: Carrito calculado por OrderPreferences.
        - `deliveryFee` number, nullable: Costo de delivery.
        - `deliveryFeeWithoutDiscount` number, nullable: Costo de delivery antes de descuentos.
        - `freeDeliveryProgress` object: Progreso hacia delivery gratis.
          - `source` string, nullable: Origen de la regla.
          - `threshold` number, nullable: Monto requerido.
          - `currentItemsPrice` number, nullable: Monto actual de productos.
          - `missingAmount` number, nullable: Monto faltante.
          - `isFree` boolean, nullable: Indica si ya aplica delivery gratis.
          - `searchedUntil` string, nullable: Fecha/hora hasta la que se buscó cobertura.
        - `serviceFee` number, nullable: Cargo de servicio.
        - `amountToPay` number, nullable: Monto a pagar.
        - `totalPrice` number, nullable: Total.
        - `calculatedTipAmount` number, nullable: Propina sugerida calculada.
        - `benefits` object[]: Beneficios aplicados.
          - `benefitPromotionId` string, nullable: ID de promoción.
          - `type` string, nullable: Tipo de beneficio.
          - `label` string, nullable: Texto visible.
          - `totalDiscount` number, nullable: Descuento total.
          - `productIds` string[]: Productos afectados.
        - `couponStatus` OrderingOrderPreferencesCouponStatus: Estado del cupón calculado por OrderPreferences.
          - `code` string, nullable: Código aplicado.
          - `description` string, nullable: Descripción.
          - `couponId` string, nullable: ID del cupón.
          - `discountOnDeliveryFee` number, nullable: Descuento en delivery.
          - `discountOnFullPrice` number, nullable: Descuento total.
          - `discountOnItems` number, nullable: Descuento en productos.
          - `errorMessage` string, nullable: Mensaje de error.
          - `errorType` string, nullable: Tipo de error.
          - `errorActionHint` string, nullable: Sugerencia de acción.
          - `errorActionLinks` object[]: Links de acción.
            - `label` string, nullable: Texto visible.
            - `url` string, nullable: URL de acción.
          - `allErrors` object[]: Todos los errores del cupón.
            - `message` string, nullable: Mensaje.
            - `errorType` string, nullable: Tipo de error.
            - `actionHint` string, nullable: Sugerencia de acción.
            - `actionLinks` object[]: Acciones sugeridas.
              - …
            - `minimumOrderPrice` number, nullable: Monto mínimo requerido.
            - `currentItemsPrice` number, nullable: Monto actual de productos.
          - `name` string, nullable: Nombre del cupón.
          - `minimumOrderPrice` number, nullable: Monto mínimo requerido.
          - `currentItemsPrice` number, nullable: Monto actual de productos.
          - `requiresPaymentTypes` string[]: Tipos de pago requeridos.
          - `requiredBINs` string[]: BINs requeridos.
          - `requiredPaymentMethodCodes` string[]: Medios de pago requeridos.
        - `itemsPrice` number, nullable: Precio de productos.
        - `itemsPriceWithoutDiscount` number, nullable: Precio de productos antes de descuentos.
        - `totalLoyaltyDiscount` number, nullable: Descuento total de loyalty.
        - `itemsPriceWithoutLoyaltyDiscount` number, nullable: Precio sin descuento loyalty.
        - `itemsPriceWithOnlyItemsDiscount` number, nullable: Precio con descuentos de items.
        - `hasDynamicDeliveryFee` boolean, nullable: Indica si el delivery fee es dinámico.
        - `bagAmount` number, nullable: Monto por bolsas.
        - `calculatedBagsRequired` number, nullable: Bolsas calculadas.
        - `maxBagsAllowed` number, nullable: Máximo de bolsas permitidas.
        - `items` OrderingOrderPreferencesCartItem[]: Items del carrito.
          - `_id` string: ID del item.
          - `amount` number: Cantidad.
          - `totalPrice` number, nullable: Precio total.
          - `productId` string: ID del producto.
          - `isOutOfStock` boolean, nullable: Indica si está sin stock.
          - `unitPrice` number, nullable: Precio unitario.
          - `unitPriceWithoutDiscount` number, nullable: Precio unitario antes de descuentos.
          - `comment` string, nullable: Comentario del item.
          - `outOfStockMessage` string, nullable: Mensaje de falta de stock.
          - `modifiers` object[]: Modificadores seleccionados.
          - `descriptionItems` object[]: Descripción de selecciones.
          - `product` object, nullable: Producto del item de carrito.
            - `_id` string: ID de producto.
            - `name` string, nullable: Nombre del producto.
            - `images` OrderingImage[]: Imágenes del producto.
              - …
            - `modifiers` object[]: Modificadores del producto.
              - …
      - `website` OrderingOrderPreferencesWebsite: Website calculado por OrderPreferences.
        - `_id` string: ID del website.
        - `allowsJustoCoins` boolean, nullable: Indica si permite Justo Coins.
        - `allowsWebsiteCoins` boolean, nullable: Indica si permite coins del website.
        - `showStoreName` boolean, nullable: Indica si se muestra el nombre del local.
      - `billing` OrderingBilling: Datos dinámicos de facturación guardados para el checkout. La estructura depende del billing schema del website.
      - `tip` object, nullable: Propina seleccionada.
      - `cashAmount` number, nullable: Monto declarado para efectivo.
      - `gift` object, nullable: Información de regalo.
      - `orderParams` object, nullable: Parámetros adicionales del pedido.
      - `termSignatures` OrderingTermSignature[], nullable: Firmas de términos guardadas para flujos avanzados. En el flujo estándar, el integrador debe pedir aceptación de los términos antes de iniciar la compra.
        - `termType` string: Tipo de término legal.
        - `version` string: Versión vigente firmada.
      - `meta` object, nullable: Metadata adicional.
      - `sessionBirthday` string, nullable: Fecha de nacimiento de sesión en formato DD-MM-AAAA.
      - `options` OrderingCartOptions: Opciones dinámicas calculadas por Ordering API para completar el checkout.
        - `billing` object: Configuración dinámica de facturación del website.
          - `value` OrderingBilling: Datos dinámicos de facturación guardados para el checkout. La estructura depende del billing schema del website.
          - `schema` object[]: Schema dinámico de campos de facturación.
          - `required` boolean: Indica si la facturación es obligatoria para este website.
          - `countryCode` string, nullable: Código de país del website.
        - `terms` OrderingTermsOption: Configuración de términos legales para Ordering API.
          - `mode` 'auto': Modo técnico de manejo de términos.
          - `hidden` boolean: Indica que Ordering API no muestra un checkbox propio.
          - `checked` boolean: Indica que Ordering API continúa el flujo asumiendo que el integrador ya obtuvo la aceptación del usuario.
          - `signatures` OrderingTermSignature[]: Versiones vigentes que aplican al checkout técnico.
            - `termType` string: Tipo de término legal.
            - `version` string: Versión vigente firmada.
          - `terms` object[]: Términos publicados del website que aplican al checkout.
            - `termType` string: Tipo de término legal.
            - `version` string: Versión vigente.
            - `optional` boolean: Indica si el término es opcional.
            - `title` string, nullable: Título del documento legal.
            - `checkboxLabel` object, nullable: Texto usado por el checkout web.

## Other responses

- `400`: Invalid request
- `401`: Invalid bearer token
- `404`: Resource not found

## Changes

- **2026-06-02** `21cf8d7bd279`: 1 breaking, 7 warning, 1 info
  - the `data/state` response's property type changed from `object` to no type for status `200`
  - removed the request property `menuId`
  - removed the optional property `data/state/address` from the response with the `200` status
  - removed the optional property `data/state/availablePaymentMethods` from the response with the `200` status
  - …5 more
- **2026-06-02** `b212955c2a75`: 3 warning, 2 info
  - removed the optional property `data/state/address/oneOf[#/components/schemas/OrderingAddress]/_id` from the response with the `200` status
  - removed the optional property `data/state/address/oneOf[#/components/schemas/OrderingAddress]/deviceId` from the response with the `200` status
  - removed the optional property `data/state/address/oneOf[#/components/schemas/OrderingAddress]/userId` from the response with the `200` status
  - added the optional property `data/state/address/oneOf[#/components/schemas/OrderingAddress]/cityId` to the response with the `200` status
  - …1 more
- **2026-06-02** `e1eeb6ce83d7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getjusto/apis/justo-api/changes/ordering/customers/:externalCustomerId/websites/:domain/cart/items/:cartItemId/patch.md)

---

[API](https://skmtc.dev/getjusto/apis/justo-api.md) - [All operations](https://skmtc.dev/getjusto/apis/justo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getjusto/apis/justo-api/revisions/c810bd8246fd?raw)
