code: def create(self, request):
          
          variant_id = request.data.get("variant_id", None)
  
          if variant_id is not None:
              variant = ProductVariant.objects.get(id=variant_id)
  
              quantity = int(request.data.get("quantity", 1))
              items, bid = utils.get_basket_items(request)
  
              # Check if the variant is already in the basket
              in_basket = False
              for item in items:
                  if item.variant.id == variant.id:
                      item.increase_quantity(quantity)
                      in_basket = True
                      break
              if not in_basket:
                  item = BasketItem(variant=variant, quantity=quantity, basket_id=bid)
                  item.save()
  
              serializer = BasketItemSerializer(self.get_queryset(request), many=True)
              response = Response(data=serializer.data,
                                  status=status.HTTP_201_CREATED)
  
          else:
              response = Response(
                  {"message": "Missing 'variant_id'"},
                  status=status.HTTP_400_BAD_REQUEST)
  
          return response
docs: Add an item to the basket