nagasurendra commited on
Commit
af1892f
·
verified ·
1 Parent(s): 8f12848

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -18
app.py CHANGED
@@ -130,30 +130,34 @@ def menu():
130
 
131
 
132
 
133
-
134
  @app.route("/cart", methods=["GET"])
135
  def cart():
136
- email = session.get('user_email') # Get logged-in user's email
137
  if not email:
138
- return redirect(url_for("login")) # Redirect to login if not logged in
 
139
  try:
 
140
  result = sf.query(f"""
141
  SELECT Name, Price__c, Quantity__c, Add_Ons__c, Image1__c
142
  FROM Cart_Item__c
143
  WHERE Customer_Email__c = '{email}'
144
  """)
145
  cart_items = result.get("records", [])
 
 
146
  for item in cart_items:
147
- item['Add_Ons__c'] = item.get('Add_Ons__c', "None")
148
 
 
149
  subtotal = sum(item['Quantity__c'] * item['Price__c'] for item in cart_items)
150
  except Exception as e:
151
  print(f"Error fetching cart items: {e}")
152
  cart_items = []
153
  subtotal = 0
154
-
155
- return render_template("cart.html", cart_items=cart_items, subtotal=subtotal)
156
 
 
 
157
 
158
 
159
  @app.route('/cart/add', methods=['POST'])
@@ -162,28 +166,28 @@ def add_to_cart():
162
  item_name = data.get('itemName').strip()
163
  item_price = data.get('itemPrice')
164
  item_image = data.get('itemImage')
165
- addons = data.get('addons', [])
166
- addons_string = ";".join(addons) if addons else "None"
167
-
168
  customer_email = session.get('user_email') # Get logged-in user's email from session
169
 
170
- # Validate the required fields
171
  if not item_name or not item_price:
172
  return jsonify({"success": False, "error": "Item name and price are required."})
173
 
 
 
 
174
  try:
175
- # Add a new item to the cart with the provided details
176
  sf.Cart_Item__c.create({
177
- "Name": item_name, # Item name
178
- "Price__c": item_price, # Item price
179
- "Quantity__c": 1, # Always add as a new entry with quantity 1
180
- "Add_Ons__c": ";".join(addons) if addons and isinstance(addons, list) else "None", # Convert add-ons to a string
181
- "Image1__c": item_image, # Item image
182
- "Customer_Email__c": customer_email, # Associate with the logged-in user
183
  })
184
  return jsonify({"success": True, "message": "Item added to cart successfully."})
185
  except Exception as e:
186
- print(f"Error adding item to cart: {str(e)}") # Log the error for debugging
187
  return jsonify({"success": False, "error": str(e)})
188
 
189
 
 
130
 
131
 
132
 
 
133
  @app.route("/cart", methods=["GET"])
134
  def cart():
135
+ email = session.get('user_email') # Get logged-in user's email
136
  if not email:
137
+ return redirect(url_for("login")) # Redirect to login if not logged in
138
+
139
  try:
140
+ # Query cart items
141
  result = sf.query(f"""
142
  SELECT Name, Price__c, Quantity__c, Add_Ons__c, Image1__c
143
  FROM Cart_Item__c
144
  WHERE Customer_Email__c = '{email}'
145
  """)
146
  cart_items = result.get("records", [])
147
+
148
+ # Process each item and ensure add-ons are displayed properly
149
  for item in cart_items:
150
+ item['Add_Ons__c'] = item.get('Add_Ons__c', "None") # Default to "None" if no add-ons are present
151
 
152
+ # Calculate subtotal
153
  subtotal = sum(item['Quantity__c'] * item['Price__c'] for item in cart_items)
154
  except Exception as e:
155
  print(f"Error fetching cart items: {e}")
156
  cart_items = []
157
  subtotal = 0
 
 
158
 
159
+ # Render the cart page
160
+ return render_template("cart.html", cart_items=cart_items, subtotal=subtotal)
161
 
162
 
163
  @app.route('/cart/add', methods=['POST'])
 
166
  item_name = data.get('itemName').strip()
167
  item_price = data.get('itemPrice')
168
  item_image = data.get('itemImage')
169
+ addons = data.get('addons', []) # Default to an empty list if no add-ons are selected
 
 
170
  customer_email = session.get('user_email') # Get logged-in user's email from session
171
 
 
172
  if not item_name or not item_price:
173
  return jsonify({"success": False, "error": "Item name and price are required."})
174
 
175
+ # Convert the add-ons list to a semicolon-separated string
176
+ addons_string = ";".join(addons) if addons else "None"
177
+
178
  try:
179
+ # Save the item to the cart in Salesforce
180
  sf.Cart_Item__c.create({
181
+ "Name": item_name,
182
+ "Price__c": item_price,
183
+ "Quantity__c": 1,
184
+ "Add_Ons__c": addons_string, # Save add-ons as a string
185
+ "Image1__c": item_image,
186
+ "Customer_Email__c": customer_email,
187
  })
188
  return jsonify({"success": True, "message": "Item added to cart successfully."})
189
  except Exception as e:
190
+ print(f"Error adding item to cart: {str(e)}")
191
  return jsonify({"success": False, "error": str(e)})
192
 
193