docs: add full documentation for all functions in tienda/views.py
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>
This commit is contained in:
committed by
GitHub
parent
47ea00c822
commit
ed92991872
@@ -0,0 +1,50 @@
|
||||
# `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
|
||||
|
||||
```python
|
||||
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
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"cart_count": 3,
|
||||
"message": "..."
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user