Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -466,14 +466,14 @@ def update_quantity():
|
|
466 |
def checkout():
|
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"""
|
@@ -504,12 +504,34 @@ def checkout():
|
|
504 |
else:
|
505 |
return jsonify({"success": False, "message": "Insufficient reward points to apply."})
|
506 |
|
507 |
-
# Apply coupon discount
|
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,
|
@@ -522,7 +544,7 @@ def checkout():
|
|
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 |
|
@@ -532,7 +554,6 @@ def checkout():
|
|
532 |
return jsonify({"success": False, "error": str(e)})
|
533 |
|
534 |
|
535 |
-
|
536 |
@app.route("/order", methods=["GET"])
|
537 |
def order_summary():
|
538 |
email = session.get('user_email') # Fetch logged-in user's email
|
|
|
466 |
def checkout():
|
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() # Get selected coupon
|
477 |
|
478 |
# Fetch cart items
|
479 |
result = sf.query(f"""
|
|
|
504 |
else:
|
505 |
return jsonify({"success": False, "message": "Insufficient reward points to apply."})
|
506 |
|
507 |
+
# Apply coupon discount and remove used coupon
|
508 |
if selected_coupon:
|
509 |
discount += total_price * 0.15 # Example: 15% discount for coupon
|
510 |
|
511 |
+
# Fetch the user's existing coupons
|
512 |
+
coupon_query = sf.query(f"""
|
513 |
+
SELECT Id, Coupon_Code__c FROM Referral_Coupon__c WHERE Referral_Email__c = '{email}'
|
514 |
+
""")
|
515 |
+
|
516 |
+
if coupon_query["records"]:
|
517 |
+
coupon_record = coupon_query["records"][0]
|
518 |
+
referral_coupon_id = coupon_record["Id"]
|
519 |
+
existing_coupons = coupon_record["Coupon_Code__c"].split("\n") # Convert string to list
|
520 |
+
|
521 |
+
# Remove only the selected coupon
|
522 |
+
updated_coupons = [coupon for coupon in existing_coupons if coupon.strip() != selected_coupon]
|
523 |
+
|
524 |
+
# Convert list back to a string with newlines
|
525 |
+
updated_coupons_str = "\n".join(updated_coupons).strip()
|
526 |
+
|
527 |
+
# Update the Referral_Coupon__c record with the remaining coupons
|
528 |
+
sf.Referral_Coupon__c.update(referral_coupon_id, {
|
529 |
+
"Coupon_Code__c": updated_coupons_str
|
530 |
+
})
|
531 |
+
|
532 |
total_bill = total_price - discount
|
533 |
|
534 |
+
# Store the order details
|
535 |
order_data = {
|
536 |
"Customer_Name__c": user_id,
|
537 |
"Customer_Email__c": email,
|
|
|
544 |
|
545 |
sf.Order__c.create(order_data)
|
546 |
|
547 |
+
# Clear cart after successful order
|
548 |
for item in cart_items:
|
549 |
sf.Cart_Item__c.delete(item["Id"])
|
550 |
|
|
|
554 |
return jsonify({"success": False, "error": str(e)})
|
555 |
|
556 |
|
|
|
557 |
@app.route("/order", methods=["GET"])
|
558 |
def order_summary():
|
559 |
email = session.get('user_email') # Fetch logged-in user's email
|