diff --git a/app/(root)/(screens)/checkout.tsx b/app/(root)/(screens)/checkout.tsx index 1a0905f..c7a9f93 100644 --- a/app/(root)/(screens)/checkout.tsx +++ b/app/(root)/(screens)/checkout.tsx @@ -132,13 +132,19 @@ export default function CheckoutScreen() { const orderNotes = [ notes.trim(), forMember ? `For family: ${forMember.name} (${forMember.relationship})` : "", - useAnyBranchPickup ? "Quick code — redeemable at any Gishen branch" : "", + isGuest + ? "Pharmacist order code — enter in admin to create the order" + : useAnyBranchPickup + ? "Quick code — redeemable at any Gishen branch" + : "", ] .filter(Boolean) .join(" · "); const pickupCode = - effectiveFulfillment === "pickup" ? generatePickupCode() : null; + isGuest || effectiveFulfillment === "pickup" + ? generatePickupCode() + : null; const fee = effectiveFulfillment === "pickup" ? 0 : deliveryFee; const order = addOrder({ @@ -153,7 +159,7 @@ export default function CheckoutScreen() { areaLabel: useAnyBranchPickup ? "Any Gishen branch" : effectiveFulfillment === "pickup" - ? branch?.area ?? areaLabel + ? branch?.name ?? areaLabel : selectedAddress?.area ?? areaLabel, addressId: effectiveFulfillment === "delivery" ? selectedAddress?.id ?? null : null, @@ -166,10 +172,13 @@ export default function CheckoutScreen() { notes: orderNotes, riderAssigned: false, pickupCode, - anyBranch: useAnyBranchPickup, + anyBranch: useAnyBranchPickup || isGuest, isGuestOrder: isGuest, - status: - useAnyBranchPickup || payment === "pay_at_branch" ? "confirmed" : undefined, + status: isGuest + ? "requested" + : useAnyBranchPickup || payment === "pay_at_branch" + ? "confirmed" + : undefined, }); if (forMemberId) setActiveMember(forMemberId); @@ -184,15 +193,26 @@ export default function CheckoutScreen() { pushNotification({ kind: "order", - title: pickupCode ? `Pickup code ${pickupCode}` : "Order placed", - body: pickupCode - ? useAnyBranchPickup - ? `Show ${pickupCode} at any Gishen branch counter to collect your order.` - : `Show ${pickupCode} at ${branch?.name ?? "your branch"} to collect.` - : `Your ${order.fulfillment} order is confirmed.`, - href: routes.orderDetail(order.id), + title: isGuest + ? `Pharmacist code ${pickupCode}` + : pickupCode + ? `Pickup code ${pickupCode}` + : "Order placed", + body: isGuest + ? `Share ${pickupCode} so a pharmacist can create your order in admin.` + : pickupCode + ? useAnyBranchPickup + ? `Show ${pickupCode} at any Gishen branch counter to collect your order.` + : `Show ${pickupCode} at ${branch?.name ?? "your branch"} to collect.` + : `Your ${order.fulfillment} order is confirmed.`, + href: isGuest && pickupCode ? routes.orderCode(order.id) : routes.orderDetail(order.id), }); + if (isGuest && pickupCode) { + router.replace(routes.orderCode(order.id) as never); + return; + } + Alert.alert( pickupCode ? "Quick pickup code ready" : "Order placed", pickupCode @@ -310,10 +330,10 @@ export default function CheckoutScreen() { {isGuest ? ( - Guest quick code + Pharmacist order code - As a guest you get a short pickup code (e.g. GSH-AB12). Show it at any - Gishen branch counter — no account needed to fulfill. + You’ll get a GSH-XXXX code to copy, share, or screenshot. A pharmacist + enters it on the admin page to create your order — then you pay at the branch. ) : null} @@ -522,7 +542,7 @@ export default function CheckoutScreen() { {formatETB(afterDiscount + deliveryFee)}