Ir al contenido
ERPDocs
llms.txt

Listas de precios

Guardar una promoción

Crea o edita, con su versión, una promoción por cantidad: alcance, medida, beneficio, escalas con su regalo y vigencia.

POST/api/v1/price-lists/save-promotion

Permiso
price-lists.set-prices
Empresa
Opera sobre la empresa activa
Tipo
Escritura: pide Idempotency-Key
Respuesta
JSON

Encabezados

  • Cookietextorequerido

    La cookie de sesión del usuario de la integración (__Secure-erp.session_token). Cuando esté la clave API, va en Authorization: Bearer. Ver Autenticación.

  • X-Expected-Companyuuidrequerido

    La empresa sobre la que operás. Si no coincide con la de la credencial, responde 409. Ver Empresa activa.

  • Idempotency-Keytextorequerido

    Una clave única por intento, de hasta 255 caracteres. Reintentar con la misma clave y los mismos datos devuelve el mismo resultado sin repetir la operación. Ver Idempotencia.

Cuerpo

JSON con Content-Type: application/json.

  • promotionIduuidadmite null
  • versionenteroadmite null

    mínimo 1

  • priceListIduuidrequerido
  • nametextorequerido

    de 1 a 80 caracteres

  • scopeopciónrequerido

    Valores: item items family list

  • familyIduuidadmite null
  • itemslista de objeto

    hasta 200

    Campos de cada elemento (2)
    • itemIduuidrequerido
    • levelopciónadmite null

      Valores: primary_box secondary_box pallet

  • measureopciónrequerido

    Valores: unit package

  • benefitopciónrequerido

    Valores: percent price

  • validFromcualquiera
  • validTocualquiera
  • tierslista de objetorequerido

    hasta 100

    Campos de cada elemento (4)
    • fromQuantitynúmerorequerido

      mayor que 0, máximo 100000000000

    • discountPercentnúmeroadmite null

      mayor que 0, menor que 100

    • priceslista de objeto

      Por defecto: []

      Campos de cada elemento (2)
      • itemIduuidrequerido
      • unitPricenúmerorequerido

        mayor que 0, máximo 100000000000

    • freeQuantitynúmeroadmite null

      mayor que 0, máximo 100000000000

Respuesta

200 con este JSON.

  • iduuidrequerido
  • priceListIduuidrequerido
  • priceListNametextorequerido
  • nametextorequerido
  • scopeopciónrequerido

    Valores: item items family list

  • familyobjetorequeridoadmite null
    Campos (2)
    • iduuidrequerido
    • pathtextorequerido
  • itemslista de objetorequerido
    Campos de cada elemento (7)
    • itemIduuidrequerido
    • codetextorequerido
    • nametextorequerido
    • unitNametextorequerido
    • levelopciónrequeridoadmite null

      Valores: primary_box secondary_box pallet

    • levelUnitsnúmerorequerido
    • countssí o norequerido
  • measureopciónrequerido

    Valores: unit package

  • benefitopciónrequerido

    Valores: percent price

  • validFromfecharequerido
  • validTofecharequeridoadmite null
  • statusopciónrequerido

    Valores: draft active inactive

  • statusReasoncualquierarequerido
  • validityopciónrequerido

    Valores: current scheduled expired

  • versionenterorequerido

    mínimo 1

  • tierslista de objetorequerido
    Campos de cada elemento (4)
    • fromQuantitynúmerorequerido
    • discountPercentcualquierarequerido
    • freeQuantitycualquierarequerido
    • priceslista de objetorequerido
      Campos de cada elemento (2)
      • itemIduuidrequerido
      • unitPricetextorequerido

Errores

Un rechazo responde application/problem+json con un code estable. Los más comunes en esta operación:

401Falta la credencial o venció.
403La credencial no tiene el permiso price-lists.set-prices.
409La empresa activa no es la de X-Expected-Company.
409Otra persona cambió el registro desde que lo leíste (record.stale).
422Datos inválidos o una regla de negocio rota, con el detalle por campo.
503Sistema ocupado: reintentá después de Retry-After segundos.

La lista completa está en Errores.