示例#1
0
def serialize_order(order):
    order = serialize_model(order)
    order_items = OrderItem.get_by_order(order['id'])
    if not order_items:
        raise PoseidonError('Invalid Order')
    order['items'] = map(serialize_model, order_items)
    return order
示例#2
0
def create_order(user_id):
    cart_items = CartItem.get_by_user(user_id)
    if not cart_items:
        raise PoseidonError('Invalid Cart')
    order_price = sum([i.price * i.quantity for i in cart_items])
    order = Order.new(user_id, order_price)

    for cart_item in cart_items:
        sku_id = cart_item.sku_id
        sku = Sku.get(sku_id)
        # one match one
        product_id = sku_id
        product = Product.get(product_id)
        if not sku:
            raise PoseidonError('Invalid sku')
        item_price = cart_item.price * cart_item.quantity
        OrderItem.new(order_id=order.id,
                      user_id=user_id,
                      item_name=product.name,
                      item_quantity=cart_item.quantity,
                      item_price=item_price)
    CartItem.mremove(user_id, [item.id for item in cart_items])