customerwebsitebackend/orders/serializers.py
vickytechkey ba49657163
All checks were successful
Deploy Beta (NATIVE) / deploy (push) Successful in 19s
integrated seller items
2026-08-14 19:24:24 +05:30

39 lines
1.3 KiB
Python

from rest_framework import serializers
from .models import Cart, CartItem, Order, SellerOrder
from products.serializers import ProductSerializer
class CartItemSerializer(serializers.ModelSerializer):
product = serializers.SerializerMethodField()
product_id = serializers.IntegerField()
subtotal = serializers.SerializerMethodField()
class Meta:
model = CartItem
fields = ['id', 'product', 'product_id', 'quantity', 'price_at_add', 'subtotal']
def get_product(self, obj):
prod = obj.product
if prod:
return ProductSerializer(prod).data
return None
def get_subtotal(self, obj):
return obj.quantity * obj.price_at_add
class CartSerializer(serializers.ModelSerializer):
items = CartItemSerializer(many=True, read_only=True)
total_price = serializers.SerializerMethodField()
class Meta:
model = Cart
fields = ['id', 'items', 'total_price']
def get_total_price(self, obj):
return sum(item.quantity * item.price_at_add for item in obj.items.all())
class OrderSerializer(serializers.ModelSerializer):
username = serializers.CharField(source='user.username', read_only=True)
class Meta:
model = Order
fields = ['id', 'username', 'razorpay_order_id', 'razorpay_payment_id', 'total_amount', 'status', 'shipping_address', 'placed_at']