sorting-groceries

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Sorting Groceries by Aisle

按过道排序购物清单

Sort a user's grocery list by aisle order so they can walk the store in one efficient pass, no backtracking.
按过道顺序对用户的购物清单排序,让用户可以一次性高效逛完超市,无需走回头路。

When Triggered

触发场景

Activate when user:
  • Uploads photos of grocery store aisle signs or markers
  • Provides a grocery/shopping list alongside store layout info
  • Asks to sort, organize, or optimize a shopping list by aisle
  • Mentions aisle numbers, store maps, or shopping routes
当用户出现以下行为时触发:
  • 上传超市过道标识或标记的照片
  • 提供购物清单以及门店布局信息
  • 要求按过道排序、整理或优化购物清单
  • 提到过道编号、门店地图或购物路线

Inputs

所需输入

Two inputs are needed. Prompt for whichever is missing:
  1. Aisle sign images — Photos of aisle markers, hanging signs, or endcap labels. Each typically shows an aisle number and category keywords (e.g., "Aisle 5: Coffee, Tea, Cocoa").
  2. Grocery list — Text, pasted note, or photo of a handwritten list. Any format.
共需要两项输入,缺失任意一项时请提示用户提供:
  1. 过道标识图片 — 过道标记、悬挂标识或端架标签的照片。每张照片通常会显示过道编号和分类关键词(例如:"Aisle 5: Coffee, Tea, Cocoa")。
  2. 购物清单 — 文本、粘贴的笔记或手写清单的照片,支持任意格式。

Core Workflow

核心工作流程

Step 1: Build the Aisle Map

步骤1:构建过道地图

Read each uploaded aisle sign image. Extract:
  • Aisle number (or label like "A5", "Aisle 12")
  • Category descriptions exactly as printed (e.g., "Pasta, Sauces, Canned Vegetables")
Compile into a structured map:
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
Aisle 3: Pasta, Sauces, Canned Goods
...
If an image is blurry or partially unreadable, note what was legible and flag uncertainty.
读取每张上传的过道标识图片,提取以下信息:
  • 过道编号(或类似"A5"、"Aisle 12"的标签)
  • 分类描述,与印刷内容完全一致(例如:"Pasta, Sauces, Canned Vegetables")
整理为结构化地图:
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
Aisle 3: Pasta, Sauces, Canned Goods
...
如果图片模糊或部分无法读取,请记录可辨认的内容并标注不确定性。

Step 2: Identify Perimeter Zones

步骤2:识别周边区域

Grocery stores have perimeter sections without numbered aisles. Infer these from context or common knowledge when not covered by the uploaded signs:
ZoneTypical items
ProduceFresh fruits, vegetables, herbs, salad mixes
DeliSliced meats, prepared foods, rotisserie chicken
BakeryFresh bread, cakes, pastries (distinct from packaged bread aisle)
DairyMilk, cheese, yogurt, butter, eggs
Meat & SeafoodFresh/frozen meat, poultry, fish
FrozenFrozen meals, ice cream, frozen vegetables
Position perimeter zones in typical store flow: Produce → Deli/Bakery → Meat/Seafood → Dairy → Frozen (usually along the store's outer walls, counterclockwise from entrance).
If the user's aisle photos already include these sections, use the actual signage instead of defaults.
超市存在没有编号过道的周边区域。如果上传的标识未覆盖这些区域,可根据上下文或常识推断:
区域典型商品
生鲜区新鲜水果、蔬菜、香草、沙拉菜
熟食区切片肉类、预制食品、烤鸡
烘焙区新鲜面包、蛋糕、糕点(与包装面包过道区分)
乳制品区牛奶、奶酪、酸奶、黄油、鸡蛋
肉禽海鲜区新鲜/冷冻肉类、家禽、鱼类
冷冻食品区冷冻餐、冰淇淋、冷冻蔬菜
按照典型的超市动线排列周边区域:生鲜区 → 熟食/烘焙区 → 肉禽海鲜区 → 乳制品区 → 冷冻食品区(通常沿超市外墙分布,从入口开始逆时针排列)。
如果用户上传的过道照片已经包含这些区域,请使用实际标识内容而非默认值。

Step 3: Parse the Grocery List

步骤3:解析购物清单

Extract every item from the user's list. Normalize:
  • "2 lbs chicken breast" → item: chicken breast, quantity: 2 lbs
  • "eggs" → item: eggs, quantity: (unspecified)
  • "parm" → item: parmesan cheese
Preserve the user's original wording alongside any normalized form.
从用户清单中提取所有商品,进行标准化处理:
  • "2磅鸡胸肉" → 商品:鸡胸肉,数量:2磅
  • "鸡蛋" → 商品:鸡蛋,数量:(未指定)
  • "帕玛森" → 商品:帕玛森奶酪
保留用户的原始表述以及对应的标准化形式。

Step 4: Match Items to Aisles

步骤4:将商品匹配到对应过道

For each grocery item, find the best aisle match:
  1. Direct keyword match — Item name appears in or closely matches an aisle's category text (e.g., "pasta" → "Aisle 3: Pasta, Sauces")
  2. Category inference — Item belongs to a category listed on a sign (e.g., "marinara" → "Aisle 3: Sauces")
  3. Perimeter zone match — Item is a fresh/perishable product that lives on the store perimeter (e.g., "bananas" → Produce)
  4. Best guess with note — Item could plausibly be in multiple aisles. Assign the most likely one and add a note (e.g., "honey — Aisle 4: Baking, but may also be in Aisle 7: Condiments")
为每件购物商品匹配最合适的过道:
  1. 关键词直接匹配 — 商品名称出现在过道分类文本中或与之高度匹配(例如:"意面" → "3号过道:意面、酱料")
  2. 分类推断 — 商品属于标识上列出的某个分类(例如:" marinara番茄酱" → "3号过道:酱料")
  3. 周边区域匹配 — 商品属于位于超市周边区域的生鲜/易腐产品(例如:"香蕉" → 生鲜区)
  4. 合理猜测并标注 — 商品可能位于多个过道时,分配最可能的过道并添加备注(例如:"蜂蜜 — 4号过道:烘焙用品,也可能位于7号过道:调味品")

Step 5: Output the Sorted List

步骤5:输出排序后的清单

Present the final list grouped by aisle in store-walk order:
🛒 Sorted Shopping List — [Store Name if known]

PRODUCE
  □ bananas
  □ baby spinach
  □ 3 avocados

AISLE 1 — Bread, Bakery Items, Tortillas
  □ whole wheat bread
  □ flour tortillas

AISLE 2 — Cereal, Breakfast, Granola Bars
  □ oatmeal
  □ granola bars

AISLE 3 — Pasta, Sauces, Canned Goods
  □ spaghetti
  □ marinara sauce
  □ canned black beans

...

DAIRY
  □ 2% milk
  □ shredded mozzarella
  □ eggs (1 dozen)

⚠️ COULDN'T PLACE
  □ birthday candles — not enough aisle info to determine location
按照逛店动线顺序,按过道分组展示最终清单:
🛒 Sorted Shopping List — [Store Name if known]

PRODUCE
  □ bananas
  □ baby spinach
  □ 3 avocados

AISLE 1 — Bread, Bakery Items, Tortillas
  □ whole wheat bread
  □ flour tortillas

AISLE 2 — Cereal, Breakfast, Granola Bars
  □ oatmeal
  □ granola bars

AISLE 3 — Pasta, Sauces, Canned Goods
  □ spaghetti
  □ marinara sauce
  □ canned black beans

...

DAIRY
  □ 2% milk
  □ shredded mozzarella
  □ eggs (1 dozen)

⚠️ COULDN'T PLACE
  □ birthday candles — not enough aisle info to determine location

Output Formatting Rules

输出格式规则

  • Use checkbox format (
    ) so the list is easy to use on a phone
  • Include the aisle's category description next to the aisle number for quick reference
  • Keep the user's quantities and notes attached to each item
  • Perimeter zones go in logical store-walk order (Produce first, Frozen/Dairy last)
  • Numbered aisles go in ascending order between the perimeter zones
  • Unmatched items go at the end under a clear "couldn't place" heading
  • 使用复选框格式(
    ),方便用户在手机上使用
  • 在过道编号旁附上过道分类描述,方便快速查阅
  • 保留每件商品对应的用户备注和数量信息
  • 周边区域按合理的逛店动线排序(生鲜区在前,冷冻/乳制品区在后)
  • 编号过道按升序排列在周边区域之间
  • 无法匹配的商品放在末尾,归类到明确的"无法定位"标题下

Multi-Aisle Items

多过道陈列商品

Some items legitimately live in multiple locations. When this occurs:
  • Place the item in the most common aisle for that store's layout
  • Add a parenthetical note: "(also check Aisle 7)"
  • Common examples: honey (baking vs condiments), tortilla chips (snacks vs Hispanic foods), butter (dairy vs baking)
部分商品确实会在多个位置陈列,遇到这种情况时:
  • 将商品放在该门店布局中最常见的过道
  • 添加括号备注:"(也可查看7号过道)"
  • 常见示例:蜂蜜(烘焙区/调味品区)、玉米片(零食区/拉美食品区)、黄油(乳制品区/烘焙区)

Handling Ambiguity

歧义处理

  • Blurry/unreadable signs: Note which aisles had unclear text. Ask user to confirm if critical items might be affected.
  • Store-brand categories: Some stores use unusual groupings ("International Foods" might contain pasta in one store). Trust the sign text over assumptions.
  • Missing aisles: If user uploaded signs for aisles 1-5 and 8-12 but not 6-7, note the gap. Items that don't match any uploaded aisle go to "couldn't place" rather than being guessed into missing aisles.
  • 模糊/无法读取的标识:记录哪些过道的文本不清晰,如果可能影响重要商品的匹配,请提示用户确认。
  • 门店自有分类:部分超市会使用特殊的分类方式("国际食品"区在某家超市可能包含意面),请优先以标识文本为准,而非默认假设。
  • 缺失过道信息:如果用户上传了1-5号和8-12号过道的标识,但缺少6-7号过道的信息,请记录该缺口。无法匹配到已上传过道的商品将归入"无法定位"分类,而非猜测其属于缺失的过道。

Store Layout Reuse

门店布局复用

If the user mentions they shop at this store regularly:
  • Present the aisle map as a clean reference they can save
  • Suggest they can reuse it in future conversations by pasting just the map text instead of re-uploading photos
  • Format the reusable map clearly:
📍 [Store Name] Aisle Map
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
...
Produce | Deli/Bakery | Meat & Seafood | Dairy | Frozen
如果用户提到他们经常光顾该门店:
  • 整理出清晰的过道地图供用户保存参考
  • 建议用户后续对话时只需粘贴地图文本即可复用,无需重新上传照片
  • 清晰格式化可复用的地图:
📍 [Store Name] Aisle Map
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
...
Produce | Deli/Bakery | Meat & Seafood | Dairy | Frozen