33.2k views
1 vote
Pls, help me with this!!!

Shopping Cart Module Functional Requirements You are to prototype business logic for an online shopping cart. Eventually, the user will enter information into an HTML form and hit "Submit". This will

1 Answer

3 votes

Answer:

class ShoppingCart:

def __init__(self):

self.products = {}

def add_product(self, product_id, quantity):

if product_id in self.products:

self.products[product_id] += quantity

else:

self.products[product_id] = quantity

def remove_product(self, product_id, quantity=None):

if product_id in self.products:

if quantity is None or self.products[product_id] <= quantity:

del self.products[product_id]

else:

self.products[product_id] -= quantity

def update_quantity(self, product_id, quantity):

if product_id in self.products:

self.products[product_id] = quantity

def view_cart(self):

for product_id, quantity in self.products.items():

# Display product details (name, price, etc.) based on the product_id

print(f"Product ID: {product_id}, Quantity: {quantity}")

def apply_discount(self, discount_amount):

# Apply the given discount amount to the total cost of the items in the cart

pass

def calculate_total(self):

total = 0

for product_id, quantity in self.products.items():

# Calculate the total cost of the products based on their individual prices

# Add any applicable taxes or shipping charges

# Consider any discounts or coupons applied

total += quantity * get_product_price(product_id)

return total

def checkout(self):

# Handle the checkout process, including collecting user information, payment details, etc.

pass

def empty_cart(self):

self.products = {}

# Example usage:

cart = ShoppingCart()

# Add products to the cart

cart.add_product('p1', 2)

cart.add_product('p2', 1)

# Update the quantity of a product

cart.update_quantity('p1', 3)

# View the cart contents

cart.view_cart()

# Remove a product from the cart

cart.remove_product('p2')

# Calculate the total cost

total_cost = cart.calculate_total()

print(f"Total Cost: {total_cost}")

# Proceed to checkout

cart.checkout()

# Empty the cart

cart.empty_cart()

User Bjaksic
by
8.5k points