コード例 #1
0
ファイル: views.py プロジェクト: LEESM/beaucrux
def cart_update(request):
    if request.method == "POST":
        #POST 값 받아오기
        item_id_list = request.POST.getlist('item_id')
        option_id_list = request.POST.getlist('option_id')
        quantity_list = request.POST.getlist('quantity')
        buy_now_text = request.POST.get('buy_now')
        #있는거 번호 체크
        num_list = []
        for i, item in enumerate(quantity_list):
            if item != '0':
                num_list.append(i)
        #로그인여부 체크
        if not request.user.is_authenticated():
            #세션 키 이름으로 카트 존재하는지 확인
            if not request.session.session_key:
                request.session.create()
            cart_exist_check = Cart.objects.filter(
                cart_id=request.session.session_key).order_by('cart_id')
            if (cart_exist_check):
                #있으면 거기다 추가
                new_cart_id = cart_exist_check[0].cart_id
            else:
                #익명유저다 그러면
                new_cart_id = request.session.session_key
            for i in num_list:
                new_cart = Cart(
                    cart_id=new_cart_id,
                    item=Item.objects.get(item_id=item_id_list[i]),
                    item_option=ItemOption.objects.get(
                        option_id=option_id_list[i]),
                    quantity=quantity_list[i],
                )
                new_cart.save()
        else:
            #카트 있는지 체크
            cart_exist_check = Cart.objects.filter(
                user=request.user, order_flag=False).order_by('cart_id')
            if (cart_exist_check):
                #카트 있으면 있는거에 집어넣기
                new_cart_id = cart_exist_check[0].cart_id
            else:
                #카트 없으면 카트 아이디 만들고 집어넣기
                new_cart_id = 'cart' + datetime.datetime.now().strftime(
                    "%Y%m%d%H%M%S") + str(request.user)
            for i in num_list:
                new_cart = Cart(
                    cart_id=new_cart_id,
                    user=request.user,
                    item=Item.objects.get(item_id=item_id_list[i]),
                    item_option=ItemOption.objects.get(
                        option_id=option_id_list[i]),
                    quantity=quantity_list[i],
                )
                new_cart.save()
        if buy_now_text == 'buy_now':
            return redirect('order_info')
    return HttpResponseRedirect(reverse("cart"))
コード例 #2
0
ファイル: views.py プロジェクト: LEESM/shopping
def cart_update(request):
    if request.method == "POST":
        #POST 값 받아오기
        item_id_list = request.POST.getlist('item_id')
        option_id_list = request.POST.getlist('option_id')
        quantity_list = request.POST.getlist('quantity')
        #있는거 번호 체크
        num_list = []
        for i, item in enumerate(quantity_list):
            if item != '0':
                num_list.append(i)
        #카트 있는지 체크
        cart_exist_check = Cart.objects.filter(
            user=request.user).order_by('cart_id')
        if (cart_exist_check):
            #카트 있으면 있는거에 집어넣기
            new_cart_id = cart_exist_check[0].cart_id
        else:
            #카트 없으면 카트 아이디 만들고 집어넣기
            new_cart_id = 'cart' + datetime.datetime.now().strftime(
                "%Y%m%d%H%M%S") + str(request.user)
        for i in num_list:
            new_cart = Cart(
                cart_id=new_cart_id,
                user=request.user,
                item=Item.objects.get(item_id=item_id_list[i]),
                item_option=ItemOption.objects.get(
                    option_id=option_id_list[i]),
                quantity=quantity_list[i],
            )
            new_cart.save()
    return HttpResponseRedirect(reverse("cart"))
コード例 #3
0
def get_users_cart_page(request):
    """
    Gets the user's active cart based on the given user_id,
    if 'is_sent' is 'true', give all sent carts
    otherwise give the only existing active cart
    """
    try:
        user_id = request.GET.get('user_email')
        if is_sent(request.GET.get('is_sent')):
            carts = Cart().users_sent_carts(user_id)
            carts_dict = {'carts': models_to_json(carts)}  # serialize carts
            return JsonResponse(carts_dict)
        else:
            cart = Cart().users_active_cart(user_id)
            return JsonResponse({'carts': [model_to_json(cart)]})
    except ObjectDoesNotExist:  # something went wrong (invalid user/no cart)
        return JsonResponse({'NoCart': 'Closed'})
コード例 #4
0
def decline_cart_page(request):
    """Decline a cart which has been sent by a user"""
    validate(instance=request.body, schema=cart_schema)
    body = json.loads(request.body)
    try:
        cart = Cart().decline_cart(cart_id=body['_id'])
        return JsonResponse(model_to_json(cart))
    except ValueError as error:
        return HttpResponseBadRequest(str(error))
コード例 #5
0
ファイル: utils.py プロジェクト: wooshe/Shop
def getCart(request):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)
        cart.sk = str(request.session.session_key)
        cart.save()
    except:
        cart = Cart()
        cart.sk = str(request.session.session_key)
        cart.save()
        request.session['cart_id'] = cart.id
    return cart
コード例 #6
0
def checkout(request):
    if request.method == 'POST':
        dataDictionary = json.loads(request.body)
        # print dataDictionary

        mallId = dataDictionary['mallId']
        userId = dataDictionary['userId']
        cart = dataDictionary['cart']

        user = User.objects.get(id=userId)
        mall = Mall.objects.get(id=mallId)
        order = Order(user=user, mall=mall)

        generateUniqueTransactionId(order)

        mall = Mall.objects.get(id=mallId)

        items = Item.objects.filter(mall_id=mall.id)
        itemList = []
        for item in items:
            dic = {
                "itemId": item.id,
                "itemName": item.itemName,
                "description": item.description,
                "price": item.price,
                "unit": item.unit,
                "barcode": item.barcode
            }
            itemList.append(dic)

        amountToPay = 0
        for cartItem in cart:
            item = Item.objects.get(id=cartItem['itemId'])
            cartObject = Cart(item=item,
                              quantity=cartItem['quantity'],
                              order=order)
            cartObject.save()
            amountToPay += item.price * cartItem['quantity']

        args = {
            "success": True,
            "transactionId": order.transactionId,
            "amountToPay": amountToPay,
            "message": "Order created sussessfully"
        }
        return HttpResponse(json.dumps(args), content_type="application/json")
    else:
        status = {"status": False, "message": "Send Post request"}
        return HttpResponse(json.dumps(status),
                            content_type="application/json")
コード例 #7
0
def add_to_cart(request):
    itemId = request.GET.get('itemId')
    carts = Cart.objects.filter(item_id=itemId).filter(user=request.user)
    if carts.exists():
        cart_obj = carts.first()
        cart_obj.num = cart_obj.num + 1
    else:
        cart_obj = Cart()
        cart_obj.item_id = itemId
        cart_obj.user = request.user
    cart_obj.save()
    data = {
        'status': 200,
        'msg': "An item has been added to cart successfully!",
        'num': cart_obj.num,
    }
    return JsonResponse(data=data)