OrderedGood


Ítem solicitado en una Order. Es un snapshot de un BranchGood tomado al crear la orden: conserva nombre, descripción, imágenes, SKU y precios del momento, para que cambios posteriores en el catálogo no alteren la orden.

Montos

Todos los importes son *_e2 (céntimos). base_price_e2 es el precio del ítem sin extras ni impuestos; total_price_e2 incluye extras (propiedades), impuestos y quantity. Los accesores *_unit_price_e2 dan el desglose por unidad. provider_fee_e2 es lo que corresponde al repartidor por este ítem; company_assumption_e2 la parte que asume la plataforma; original_total_e2 el total antes de una promoción (promo_id).

Estructura de Datos

Atributo Tipo Descripción
id int
name string Nombre del producto (snapshot).
short_details string Descripción corta (snapshot).
details string Descripción larga (snapshot).
picture_urls string URLs de las imágenes del producto (snapshot).
base_price_e2 int Precio del ítem sin extras ni impuestos, por la cantidad (céntimos).
total_price_e2 int Precio final del ítem con extras, impuestos y cantidad (céntimos).
notes string\|null Notas del cliente para este ítem.
good_id int\|null Producto de catálogo del que proviene el ítem; null si ya no existe.
order_id int Orden a la que pertenece el ítem.
client_id int\|null Cliente de la orden.
company_id int Compañía de la orden (oculto en la respuesta).
good_stock int\|null Existencias del producto en el momento del pedido (snapshot).
provider_fee_e2 int Parte del ítem que corresponde al repartidor (céntimos).
sku string\|null SKU del producto (snapshot).
branch_id int\|null Comercio de la orden.
good_rating_id int\|null Calificación del producto asociada a este ítem.
deleted_at datetime\|null Fecha de borrado lógico del ítem.
quantity int Cantidad pedida.
units int\|null Unidades por paquete, si el producto se vende por bulto.
original_total_e2 int\|null Total del ítem antes de aplicar la promoción (céntimos).
promo_id int\|null Cupón/promoción aplicado al ítem.
base_unit_price_before_taxes_e2 int Precio unitario base sin impuestos (céntimos).
company_assumption_e2 int\|null Parte del precio que asume la plataforma (céntimos).
allLogs ApiLog> Registros de auditoría de la API, incluidos los internos.
amount_for_promo_e2 int Importe del ítem elegible para la promoción (céntimos).
base_price_e2_for_branches int Precio base del ítem tal como lo ve el comercio (céntimos).
base_unit_price_before_taxes array Desglose del precio unitario base sin impuestos.
base_unit_price_e2 int Precio unitario base con impuestos (céntimos).
branch Branch\|null Comercio de la orden.
branchGood BranchGood\|null Producto de sucursal del que se tomó el snapshot.
client Client\|null Cliente de la orden.
company Company Compañía de la orden.
extras_unit_price_e2 int Precio unitario de los extras (propiedades) del ítem (céntimos).
quantity_real float Cantidad efectiva considerando units (para productos por bulto).
good Good\|null Producto de catálogo del que proviene el ítem.
logs ApiLog> Registros de auditoría de la API visibles.
order Order Orden a la que pertenece el ítem.
orderProviderService OrderProviderService\|null Servicio de asignación asociado, si el ítem lo atiende un repartidor.
promo Coupon\|null Cupón/promoción aplicado al ítem.
proofOfDelivery ProofOfDelivery\|null Prueba de entrega de este ítem, si aplica.
properties OrderedGoodProperty> Propiedades/variantes elegidas para el ítem.
rating GoodRating\|null Calificación que el cliente dejó a este producto.
total_unit_price_e2 int Precio unitario final con extras e impuestos (céntimos).
{
    "id": 1742,
    "name": "Cafe Dalgona",
    "short_details": "n/a",
    "details": "El café dalgona es un bebida que se hace batiendo proporciones iguales de café instantáneo en polvo, azúcar y agua caliente hasta que se forma una crema o espuma.",
    "picture_urls": [
        "https://dondemand-api-v3.manzanares.com.ve/storage/companies/69/good/good_110_0_1588262412.jpg",
        "https://dondemand-api-v3.manzanares.com.ve/storage/companies/69/good/good_110_1_1588262674.jpg"
    ],
    "base_price_e2": 2000,
    "total_price_e2": 2000,
    "notes": null,
    "good_id": 110,
    "order_id": 1529,
    "client_id": 39,
    "good_stock": null,
    "provider_fee_e2": 0,
    "sku": "12123",
    "branch_id": 22,
    "good_rating_id": null,
    "deleted_at": null,
    "quantity": 1,
    "units": 1,
    "original_total_e2": 2000,
    "promo_id": null,
    "base_unit_price_before_taxes_e2": 2000,
    "company_assumption_e2": null,
    "quantity_real": 1,
    "base_unit_price_before_taxes": {
        "amount_e2": 2000,
        "currency_iso": "USD",
        "formatted_iso": "USD 20.00",
        "formatted": "20.00$"
    },
    "base_price_e2_for_branches": 2000,
    "properties": []
}

Endpoints

Insertar OrderedGood

Insertar OrderedGood de Order

Añadir un ítem a una orden

Agrega un OrderedGood a la orden a partir de un producto de la sucursal (good_id, quantity, propiedades, notes); se toma un snapshot de precio y datos.

Método URI Cabeceras
POST /companies/{companyId}/orders/{orderId}/ordered-goods Authorization
{
    "good_id": "required|integer|exists:goods,id",
    "quantity": "required|integer|min:1",
    "units": "nullable|numeric|min:0.000001",
    "notes": "string|max:255",
    "properties": [
        {
            "property_id": "required|integer",
            "value": "required|string"
        }
    ]
}

Listar OrderedGood

Listar OrderedGood de Order

Listar los ítems de una orden

Devuelve los OrderedGood de la orden indicada.

Método URI Cabeceras
GET /companies/{companyId}/orders/{orderId}/ordered-goods Authorization

Actualizar OrderedGood

Actualizar OrderedGood de Order

Modificar un ítem de una orden

Cambia la cantidad, las notas o las propiedades del OrderedGood y recalcula los montos de la orden.

Método URI Cabeceras
PATCH /companies/{companyId}/orders/{orderId}/ordered-goods/{orderedGoodId} Authorization
{
    "quantity": "required|integer|min:1",
    "units": "nullable|numeric|min:0.000001",
    "notes": "string|max:255"
}

Eliminar OrderedGood

Eliminar OrderedGood de Order

Quitar un ítem de una orden

Elimina (soft delete) el OrderedGood y recalcula los montos de la orden.

Método URI Cabeceras
DELETE /companies/{companyId}/orders/{orderId}/ordered-goods/{orderedGoodId} Authorization

Acciones de OrderedGood

Historial de ítems de una orden

Devuelve los OrderedGood de la orden incluidos los eliminados, para ver cómo cambió el pedido.

Método URI Cabeceras
GET /companies/{companyId}/orders/{orderId}/ordered-goods/history Authorization

Relaciones