diff --git a/api/setup/analyzeMenuUrl.cfm b/api/setup/analyzeMenuUrl.cfm index d9d3857..eaa0f1e 100644 --- a/api/setup/analyzeMenuUrl.cfm +++ b/api/setup/analyzeMenuUrl.cfm @@ -1796,6 +1796,168 @@ + + + + + + + + ]*type\s*=\s*["'']application/ld\+json["''][^>]*>([\s\S]*?)', pageHtml)> + + + + + + ]*>([\s\S]*?)', '\1')> + + + + + + + + + + + + + + + + + + + + + + + + + + + ", "all")> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", "all")> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #serializeJSON(response)# + + + + + + + + + + + + + + diff --git a/portal/setup-wizard.html b/portal/setup-wizard.html index 2c69a76..a091072 100644 --- a/portal/setup-wizard.html +++ b/portal/setup-wizard.html @@ -851,7 +851,7 @@ Import Menu -

Works with most restaurant websites, DoorDash, Yelp, Toast, Square, and more

+

Works with most restaurant websites, Uber Eats, DoorDash, Grubhub, Toast, Square, and more

@@ -1356,6 +1356,31 @@ return; } + // Uber Eats URLs can't be scraped server-side — prompt user to save page + if (url.includes('ubereats.com/store') || url.includes('ubereats.com/store/')) { + document.getElementById('uploadSection').style.display = 'none'; + addMessage('ai', ` +

Uber Eats pages can't be crawled directly (bot protection), but we can import from a saved page.

+
    +
  1. Open the Uber Eats link in Chrome: ${url}
  2. +
  3. Wait for the menu to fully load (scroll down to load all items)
  4. +
  5. Press Ctrl+S to save the page as HTML
  6. +
  7. Upload the saved .html file below
  8. +
+
+ + + +
+ `); + return; + } + // Hide upload section, show conversation document.getElementById('uploadSection').style.display = 'none'; @@ -2272,12 +2297,8 @@ hoursSchedule: hoursSchedule // Send the structured schedule instead of the raw hours string }; - // Move to header image step - skip if no auto-detected header (URL imports) - if (config.headerImageFile) { - showHeaderImageStep(); - } else { - showCategoriesStep(); - } + // Always show header image step so user can upload one + showHeaderImageStep(); } // Header Image step - between business info and categories