nagasurendra commited on
Commit
adfe5ee
·
verified ·
1 Parent(s): eea4e68

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -53
app.py CHANGED
@@ -467,12 +467,15 @@ def checkout():
467
  email = session.get('user_email')
468
  user_id = session.get('user_id')
469
 
470
- # Check if the user is logged in
471
  if not email or not user_id:
472
  return jsonify({"success": False, "message": "User not logged in"})
473
 
474
  try:
475
- # Fetch cart items for the user
 
 
 
 
476
  result = sf.query(f"""
477
  SELECT Id, Name, Price__c, Add_Ons_Price__c, Quantity__c, Add_Ons__c, Instructions__c
478
  FROM Cart_Item__c
@@ -482,73 +485,50 @@ def checkout():
482
  if not cart_items:
483
  return jsonify({"success": False, "message": "Cart is empty"})
484
 
485
- # Calculate the total price of the order
486
  total_price = sum(item['Price__c'] for item in cart_items)
 
487
 
488
- # Format order details including instructions
489
- order_details = []
490
- for item in cart_items:
491
- details = f"{item['Name']} (Qty: {item['Quantity__c']}, Add-Ons: {item['Add_Ons__c'] or 'None'}, Price: ${item['Price__c']})"
492
- if item.get('Instructions__c'): # Include instructions if available
493
- details += f", Instructions: {item['Instructions__c']}"
494
- order_details.append(details)
495
-
496
-
497
- # Fetch the current Reward_Points__c for the user
498
  customer_record = sf.query(f"""
499
  SELECT Id, Reward_Points__c FROM Customer_Login__c
500
  WHERE Email__c = '{email}'
501
  """)
502
  customer = customer_record.get("records", [])[0] if customer_record else None
503
 
504
- if customer:
505
- # Get the checkbox status from the frontend
506
- use_reward_points = request.json.get("useRewardPoints", False)
507
-
508
- if use_reward_points:
509
- # Subtract 500 points if checkbox is selected
510
- if customer['Reward_Points__c'] >= 500:
511
- new_reward_points = customer['Reward_Points__c'] - 500
512
- discount=total_price * 0.10
513
- total_bill=total_price-discount
514
-
515
- else:
516
- return jsonify({"success": False, "message": "Insufficient reward points to apply."})
517
- else:
518
- # Add 10% of the subtotal if checkbox is not selected
519
- reward_points_to_add = total_price * 0.10
520
- new_reward_points = customer['Reward_Points__c'] + reward_points_to_add
521
- discount=0
522
- total_bill=total_price
523
- order_data = {
524
- "Customer_Name__c": user_id,
525
- "Customer_Email__c": email,
526
- "Total_Amount__c": total_price,
527
- "Discount__c": discount,
528
- "Total_Bill__c": total_bill,
529
- "Order_Status__c": "Pending",
530
- "Order_Details__c": "\n".join(order_details) # Store all item details
531
- }
532
-
533
- # Create the order record in Salesforce
534
- order_result = sf.Order__c.create(order_data)
535
-
536
- # Update the Reward_Points__c field in Salesforce
537
- try:
538
  sf.Customer_Login__c.update(customer['Id'], {
539
- "Reward_Points__c": new_reward_points
540
  })
541
- except Exception as update_error:
542
- return jsonify({"success": False, "message": f"Error updating reward points: {str(update_error)}"})
543
 
544
- # Clear the cart after placing the order
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
545
  for item in cart_items:
546
  sf.Cart_Item__c.delete(item["Id"])
547
 
548
  return jsonify({"success": True, "message": "Order placed successfully!"})
549
-
550
  except Exception as e:
551
- print(f"Error during checkout: {str(e)}")
552
  return jsonify({"success": False, "error": str(e)})
553
 
554
 
 
467
  email = session.get('user_email')
468
  user_id = session.get('user_id')
469
 
 
470
  if not email or not user_id:
471
  return jsonify({"success": False, "message": "User not logged in"})
472
 
473
  try:
474
+ data = request.json
475
+ use_reward_points = data.get("useRewardPoints", False)
476
+ selected_coupon = data.get("selectedCoupon", "").strip()
477
+
478
+ # Fetch cart items
479
  result = sf.query(f"""
480
  SELECT Id, Name, Price__c, Add_Ons_Price__c, Quantity__c, Add_Ons__c, Instructions__c
481
  FROM Cart_Item__c
 
485
  if not cart_items:
486
  return jsonify({"success": False, "message": "Cart is empty"})
487
 
 
488
  total_price = sum(item['Price__c'] for item in cart_items)
489
+ discount = 0
490
 
491
+ # Apply reward points if selected
 
 
 
 
 
 
 
 
 
492
  customer_record = sf.query(f"""
493
  SELECT Id, Reward_Points__c FROM Customer_Login__c
494
  WHERE Email__c = '{email}'
495
  """)
496
  customer = customer_record.get("records", [])[0] if customer_record else None
497
 
498
+ if customer and use_reward_points:
499
+ if customer['Reward_Points__c'] >= 500:
500
+ discount += total_price * 0.10 # 10% discount
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
501
  sf.Customer_Login__c.update(customer['Id'], {
502
+ "Reward_Points__c": customer['Reward_Points__c'] - 500
503
  })
504
+ else:
505
+ return jsonify({"success": False, "message": "Insufficient reward points to apply."})
506
 
507
+ # Apply coupon discount (assume 15% discount for now)
508
+ if selected_coupon:
509
+ discount += total_price * 0.15 # Example: 15% discount for coupon
510
+
511
+ total_bill = total_price - discount
512
+
513
+ order_data = {
514
+ "Customer_Name__c": user_id,
515
+ "Customer_Email__c": email,
516
+ "Total_Amount__c": total_price,
517
+ "Discount__c": discount,
518
+ "Total_Bill__c": total_bill,
519
+ "Order_Status__c": "Pending",
520
+ "Order_Details__c": "\n".join(f"{item['Name']} x{item['Quantity__c']}" for item in cart_items)
521
+ }
522
+
523
+ sf.Order__c.create(order_data)
524
+
525
+ # Clear cart
526
  for item in cart_items:
527
  sf.Cart_Item__c.delete(item["Id"])
528
 
529
  return jsonify({"success": True, "message": "Order placed successfully!"})
530
+
531
  except Exception as e:
 
532
  return jsonify({"success": False, "error": str(e)})
533
 
534