implement Uber webhook and delivery quote controllers and update docker-compose service names
This commit is contained in:
parent
3408b893cb
commit
db8ab22069
@ -37,7 +37,7 @@ class UberDeliveryController(http.Controller):
|
|||||||
|
|
||||||
@http.route('/shop/uber/quote', type='json', auth='public', website=True, csrf=False)
|
@http.route('/shop/uber/quote', type='json', auth='public', website=True, csrf=False)
|
||||||
def uber_quote(self, address_data, **post):
|
def uber_quote(self, address_data, **post):
|
||||||
"""Get Uber quote for a website address"""
|
"""Get Uber quote for a website address with cleaned address formatting"""
|
||||||
order = request.website.sale_get_order()
|
order = request.website.sale_get_order()
|
||||||
if not order:
|
if not order:
|
||||||
return {'success': False, 'error': 'No active order'}
|
return {'success': False, 'error': 'No active order'}
|
||||||
@ -47,15 +47,28 @@ class UberDeliveryController(http.Controller):
|
|||||||
return {'success': False, 'error': 'Uber not configured'}
|
return {'success': False, 'error': 'Uber not configured'}
|
||||||
|
|
||||||
company = request.website.company_id
|
company = request.website.company_id
|
||||||
pickup_address = f"{company.street}, {company.city}, {company.zip}, {company.country_id.name}"
|
# Build clean pickup address
|
||||||
|
pickup_parts = [company.street, company.city, company.state_id.name, company.zip, company.country_id.name]
|
||||||
|
pickup_address = ", ".join([p for p in pickup_parts if p]).strip()
|
||||||
|
|
||||||
# User entered address - building comprehensive string for Uber Direct
|
# User entered address - building comprehensive string for Uber Direct
|
||||||
street = address_data.get('street', '')
|
street = address_data.get('street', '').strip()
|
||||||
street2 = address_data.get('street2', '')
|
street2 = address_data.get('street2', '').strip()
|
||||||
full_street = f"{street}, {street2}" if street2 else street
|
full_street = f"{street}, {street2}" if street2 else street
|
||||||
|
|
||||||
dropoff_address = f"{full_street}, {address_data.get('city', '')}, {address_data.get('state', '')}, {address_data.get('zip', '')}, {address_data.get('country', 'Canada')}"
|
# Clean state name (Odoo often adds '(CA)' or codes, which can confuse Uber)
|
||||||
|
state_name = address_data.get('state', '').split('(')[0].strip()
|
||||||
|
|
||||||
|
dropoff_parts = [
|
||||||
|
full_street,
|
||||||
|
address_data.get('city', '').strip(),
|
||||||
|
state_name,
|
||||||
|
address_data.get('zip', '').strip(),
|
||||||
|
address_data.get('country', 'Canada').strip()
|
||||||
|
]
|
||||||
|
dropoff_address = ", ".join([p for p in dropoff_parts if p]).strip()
|
||||||
|
|
||||||
|
_logger.info("Uber Quote Request - Pickup: %s | Dropoff: %s", pickup_address, dropoff_address)
|
||||||
|
|
||||||
result = config.get_uber_quote(pickup_address, dropoff_address)
|
result = config.get_uber_quote(pickup_address, dropoff_address)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user