diff --git a/home/views.py b/home/views.py index ba7d093..b971f0c 100644 --- a/home/views.py +++ b/home/views.py @@ -1778,7 +1778,7 @@ def store_novawow_view(request): items_in_category = Category.objects.get(name=category_name).items.values() return JsonResponse({'success': True, 'items': list(items_in_category)}) - # Si el carrito está en la sesión + # Obtener carrito desde la sesión carrito = request.session.get('carrito', []) total_price = sum(Decimal(item['precio']) for item in carrito) * Decimal('1.21') @@ -1787,14 +1787,16 @@ def store_novawow_view(request): data = json.loads(request.body) character_name = data.get('character') carrito = data.get('carrito') - request.session['carrito'] = carrito if not character_name: return JsonResponse({'success': False, 'message': 'Por favor, selecciona un personaje.'}) - - if category_name: - items_in_category = Category.objects.get(name=category_name).items.values() - return JsonResponse({'success': True, 'items': list(items_in_category)}) + + # ✅ ACTUALIZAR EL CARRITO ANTES DE CALCULAR EL PRECIO + request.session['carrito'] = carrito + request.session.modified = True # Forzar que Django guarde la sesión inmediatamente + + # ✅ CALCULAR EL PRECIO CON EL CARRITO ACTUALIZADO + total_price = sum(Decimal(item['precio']) for item in carrito) * Decimal('1.21') # Verificar si el personaje pertenece al usuario if character_name not in characters: @@ -1821,7 +1823,7 @@ def store_novawow_view(request): 'categories': categories, 'total_price': total_price }) - + def store_novawow_success_view(request): # Procesar el comando SOAP tras el pago exitoso character_name = request.session.get('store_novawow')