Рефакторинг моделей заказов и добавление методов оплаты

This commit is contained in:
2025-11-26 13:38:02 +03:00
parent 08e8409a66
commit 0653ec0545
20 changed files with 1720 additions and 873 deletions

View File

@@ -1217,3 +1217,39 @@ def update_product_price_api(request, pk):
'success': False,
'error': f'Ошибка при обновлении цены: {str(e)}'
}, status=500)
def get_payment_methods(request):
"""
API endpoint для получения списка активных способов оплаты.
Используется для динамической загрузки payment methods в JavaScript.
Возвращает JSON:
[
{
"id": 1,
"name": "Наличные курьеру",
"code": "cash_to_courier",
"description": "Оплата наличными при получении заказа"
},
...
]
"""
try:
from orders.models import PaymentMethod
# Получаем все активные способы оплаты, упорядоченные по полю order и названию
payment_methods = PaymentMethod.objects.filter(
is_active=True
).order_by('order', 'name').values('id', 'name', 'code', 'description')
# Преобразуем QuerySet в список
methods_list = list(payment_methods)
return JsonResponse(methods_list, safe=False)
except Exception as e:
logger.error(f'Ошибка при загрузке способов оплаты: {str(e)}')
return JsonResponse({
'error': f'Ошибка при загрузке способов оплаты: {str(e)}'
}, status=500)