Give the two shopping channels different jobs
A delivery might handle weight and bulk, while an in-person trip handles produce and a last-minute lunch. Write the owner and channel beside each item. For example, mark toilet rolls “online” and tomatoes “shop,” so the person at the shop does not assume an item in a draft cart has already been secured.
Use order status to decide what remains open
Treat a cart as a draft until the order is confirmed. If an item disappears at checkout or the delivery omits it, put that item back on the shared list explicitly. Do not leave the other person to compare a receipt, an old cart, and the cupboards.
After checkout, mark each online item “ordered for Tuesday” rather than simply “done.” An unavailable item, rejected payment, or omitted delivery line can still change dinner. At delivery, mark what arrived and move genuinely missing items to the next shop. This costs less effort than auditing two entire lists afterward.
Agree on a cutoff for switching channels
If the in-person shopper leaves before the delivery arrives, decide which items they may buy as backups. One extra essential can make sense; duplicating a whole cart rarely does. Send a change only when the other person can still use it, and keep the status visible to whoever cooks that evening.