fix: OFT search URL encoding and barcode field

- URL-encode search query so multi-word product names return correct results
- Add code (EAN barcode) to fields returned by both name search and
  barcode lookup — frontend can now auto-populate barcode on OFT apply
- Add sort_by=unique_scans_n to name search for more relevant ordering

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
thekiwismarthome
2026-08-09 22:34:48 +12:00
parent 8ac734f8e4
commit 98eb022573
@@ -4,6 +4,7 @@ import logging
import re
from pathlib import Path
from typing import Any, Dict
from urllib.parse import quote_plus
import voluptuous as vol
from aiohttp import ClientTimeout
@@ -1159,7 +1160,7 @@ async def websocket_off_fetch(
try:
if msg.get("barcode"):
barcode = msg["barcode"]
fields = "product_name,categories_tags,image_front_thumb_url,image_front_url,image_url,price"
fields = "code,product_name,categories_tags,image_front_thumb_url,image_front_url,image_url,price"
url = f"{base_url}/api/v2/product/{barcode}.json?fields={fields}"
async with session.get(url, timeout=ClientTimeout(total=10), headers=headers) as resp:
if not resp.ok:
@@ -1173,10 +1174,11 @@ async def websocket_off_fetch(
else:
query = msg.get("query", "")
page_size = msg.get("page_size", 5)
fields = "product_name,categories_tags,image_front_thumb_url,image_front_url,image_url,price"
fields = "code,product_name,categories_tags,image_front_thumb_url,image_front_url,image_url,price"
url = (
f"{base_url}/api/v2/search"
f"?search_terms={query}&fields={fields}&page_size={page_size}"
f"?search_terms={quote_plus(query)}&fields={fields}"
f"&page_size={page_size}&sort_by=unique_scans_n"
)
async with session.get(url, timeout=ClientTimeout(total=10), headers=headers) as resp:
if not resp.ok: