BiryaniHubflask / cartpage.py
geethareddy's picture
Update cartpage.py
fd5c6b1 verified
# views/cart_page.py
from flask import render_template, session, redirect, url_for
import salesforce # Make sure you have your Salesforce connection here
def cart_page():
email = session.get('user_email')
if not email:
return redirect(url_for("login"))
try:
# Fetch cart items with Category and Section
result = salesforce.sf.query(f"""
SELECT Name, Price__c, Quantity__c, Add_Ons__c, Add_Ons_Price__c, Image1__c, Instructions__c, Category__c, Section__c
FROM Cart_Item__c
WHERE Customer_Email__c = '{email}'
""")
cart_items = result.get("records", [])
subtotal = sum(item['Price__c'] for item in cart_items)
# Fetch reward points
customer_result = salesforce.sf.query(f"""
SELECT Reward_Points__c
FROM Customer_Login__c
WHERE Email__c = '{email}'
""")
reward_points = customer_result['records'][0].get('Reward_Points__c', 0) if customer_result['records'] else 0
# Fetch coupons for the user
coupon_result = salesforce.sf.query(f"""
SELECT Coupon_Code__c FROM Referral_Coupon__c WHERE Referral_Email__c = '{email}'
""")
coupons = []
if coupon_result["records"]:
raw_coupons = coupon_result["records"][0].get("Coupon_Code__c", "")
coupons = raw_coupons.split("\n") if raw_coupons else []
# Initialize suggestions as an empty list
suggestions = []
# If there are items in the cart, fetch suggestions
if cart_items:
first_item = cart_items[0]
item_category = first_item.get('Category__c', 'All') # Default to 'All' if not found
item_section = first_item.get('Section__c', 'Biryanis') # Default to 'Biryanis' if not found
# Define section-to-complementary section mapping
complementary_sections = {
'Breads': ['Curries', 'Biryanis', 'Starters'],
'Biryanis': ['Curries', 'Starters', 'Desserts'],
'Curries': ['Biryanis', 'Breads', 'Starters'],
'Starters': ['Biryanis', 'Curries', 'Desserts'],
'Desserts': ['Biryanis', 'Curries', 'Soft Drinks'],
'Soft Drinks': ['Starters', 'Biryanis', 'Curries']
}
suggested_sections = complementary_sections.get(item_section, [])
try:
for suggested_section in suggested_sections:
if item_category == "All":
query = f"""
SELECT Name, Price__c, Image1__c
FROM Menu_Item__c
WHERE Section__c = '{suggested_section}'
AND (Veg_NonVeg__c = 'Veg' OR Veg_NonVeg__c = 'Non veg')
LIMIT 4
"""
else:
query = f"""
SELECT Name, Price__c, Image1__c
FROM Menu_Item__c
WHERE Section__c = '{suggested_section}'
AND Veg_NonVeg__c = '{item_category}'
LIMIT 4
"""
suggestion_result = salesforce.sf.query(query)
suggestions.extend(suggestion_result.get("records", []))
if len(suggestions) > 4:
suggestions = suggestions[:4]
except Exception as e:
print(f"Error fetching suggestions: {e}")
return render_template(
"cart.html",
cart_items=cart_items,
subtotal=subtotal,
reward_points=reward_points,
customer_email=email,
coupons=coupons,
suggestions=suggestions
)
except Exception as e:
print(f"Error fetching cart items: {e}")
return render_template("cart.html", cart_items=[], subtotal=0, reward_points=0, coupons=[], suggestions=[])