ed92991872
Agent-Logs-Url: https://github.com/dsaub/proyecto-final/sessions/49df17c8-213a-4e23-adfe-465a0104f6a3 Co-authored-by: dsaub <54474838+dsaub@users.noreply.github.com>
1.6 KiB
1.6 KiB
add_to_cart
Archivo: tienda/views.py
URL: /tienda/carrito/agregar/<product_id>/
Tipo: Vista pública
Descripción
Agrega un producto al carrito del usuario (autenticado o anónimo). Antes de añadir, cancela cualquier reserva de stock activa para que el inventario se recalcule limpiamente.
- Si el producto ya existe en el carrito, incrementa la cantidad.
- Valida que la cantidad resultante no supere el stock disponible.
- Si la petición incluye la cabecera
X-Requested-With: XMLHttpRequest, devuelve una respuesta JSON en lugar de redirigir.
Firma
def add_to_cart(request: HttpRequest, product_id: int):
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
request |
HttpRequest |
Petición HTTP de Django. |
product_id |
int |
ID del producto a agregar. |
Parámetros POST
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
quantity |
int |
1 |
Cantidad a agregar. |
Redirecciones
| Caso | Destino |
|---|---|
| Éxito (no AJAX) | view_cart |
| Stock insuficiente / cantidad inválida | producto (detalle del producto) |
| Producto no encontrado | index |
Respuesta AJAX
{
"success": true,
"cart_count": 3,
"message": "..."
}