Init Django-SHOP
This commit is contained in:
31
weirdlittleempire/serializers.py
Normal file
31
weirdlittleempire/serializers.py
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
from shop.models.cart import CartModel
|
||||
from shop.serializers.defaults.catalog import AddToCartSerializer
|
||||
|
||||
|
||||
class AddSmartPhoneToCartSerializer(AddToCartSerializer):
|
||||
"""
|
||||
Modified AddToCartSerializer which handles SmartPhones
|
||||
"""
|
||||
|
||||
def get_instance(self, context, data, extra_args):
|
||||
product = context['product']
|
||||
request = context['request']
|
||||
try:
|
||||
cart = CartModel.objects.get_from_request(request)
|
||||
except CartModel.DoesNotExist:
|
||||
cart = None
|
||||
try:
|
||||
variant = product.get_product_variant(
|
||||
product_code=data['product_code'])
|
||||
except (TypeError, KeyError, product.DoesNotExist):
|
||||
variant = product.variants.first()
|
||||
instance = {
|
||||
'product': product.id,
|
||||
'product_code': variant.product_code,
|
||||
'unit_price': variant.unit_price,
|
||||
'is_in_cart': bool(product.is_in_cart(cart, product_code=variant.product_code)),
|
||||
'extra': {'storage': variant.storage},
|
||||
'availability': variant.get_availability(request),
|
||||
}
|
||||
return instance
|
||||
Reference in New Issue
Block a user