This commit is contained in:
behruz-dev
2025-09-10 18:18:17 +05:00
parent 608447643e
commit 43fd98d854
2 changed files with 34 additions and 2 deletions

View File

@@ -7,7 +7,7 @@ from rest_framework import serializers
from core.apps.orders.models import Order, OrderItem from core.apps.orders.models import Order, OrderItem
from core.apps.products.models import Product from core.apps.products.models import Product
from core.apps.products.serializers.product import ProductListSerializer from core.apps.products.serializers.product import ProductListSerializer
from core.apps.orders.tasks.order_item import send_orders_to_tg_bot from core.apps.orders.tasks.order_item import send_orders_to_tg_bot, send_message_order_user
class OrderItemCreateSerializer(serializers.Serializer): class OrderItemCreateSerializer(serializers.Serializer):
@@ -59,6 +59,10 @@ class OrderCreateSerializer(serializers.Serializer):
quantity=item.get('quantity'), quantity=item.get('quantity'),
username=order.user.username, username=order.user.username,
) )
send_message_order_user.delay(
chat_id=order.user.tg_id,
order_id=order.id,
)
OrderItem.objects.bulk_create(items) OrderItem.objects.bulk_create(items)
order.total_price = total_price order.total_price = total_price

View File

@@ -1,7 +1,7 @@
import requests import requests
from celery import shared_task from celery import shared_task
from core.apps.orders.models import OrderItem from core.apps.orders.models import OrderItem, Order
from config.env import env from config.env import env
token = env.str("BOT_TOKEN") token = env.str("BOT_TOKEN")
@@ -22,3 +22,31 @@ def send_orders_to_tg_bot(chat_id, product_name, quantity, username):
response = requests.post(url, data=payload) response = requests.post(url, data=payload)
return response.json() return response.json()
@shared_task
def send_message_order_user(chat_id, order_id):
url = f"https://api.telegram.org/bot{token}/sendMessage"
order = Order.objects.get(id=order_id)
result = []
for order_item in order.items.all():
product_name = order_item.product.name
unit = order_item.product.unity.name
quantity = order_item.quantity
price = order_item.price
result.append(f"🔹 {product_name} {unit} ({quantity} x {price:.2f})")
message = (
f'⚡️ Оформлен новый заказ\n\n'
f"Сумма заказа №{order.order_number}: {order.total_price}\n\n"
f"{result}"
)
payload = {
"chat_id": chat_id,
"text": message
}
response = requests.post(url, data=payload)
return response.json()