комит

This commit is contained in:
2025-11-19 22:12:01 +03:00
parent fdd14804a7
commit 755e4fc9d9
5 changed files with 314 additions and 5 deletions

View File

@@ -441,4 +441,47 @@ def api_create_customer(request):
return JsonResponse({
'success': False,
'error': f'Ошибка сервера: {str(e)}'
}, status=500)
}, status=500)
@require_http_methods(["POST"])
def api_create_system_customer(request):
"""
Создать или получить системного анонимного клиента для POS.
Идентификаторы системного клиента:
- email: system@pos.customer
- name: АНОНИМНЫЙ ПОКУПАТЕЛЬ (POS)
- loyalty_tier: 'no_discount'
- notes: 'SYSTEM_CUSTOMER'
Поведение:
- Если клиент уже существует (по уникальному email), новый не создаётся.
- Если не существует — создаётся с указанными полями.
- Возвращает JSON с признаком, был ли создан новый клиент.
Возвращаемый JSON:
{
"success": true,
"created": false, # или true, если впервые создан
"id": 123,
"name": "АНОНИМНЫЙ ПОКУПАТЕЛЬ (POS)",
"email": "system@pos.customer"
}
"""
customer, created = Customer.objects.get_or_create(
email="system@pos.customer",
defaults={
"name": "АНОНИМНЫЙ ПОКУПАТЕЛЬ (POS)",
"loyalty_tier": "no_discount",
"notes": "SYSTEM_CUSTOMER",
},
)
return JsonResponse({
"success": True,
"created": created,
"id": customer.pk,
"name": customer.name,
"email": customer.email,
})