# Target Extraction Notes

- Orders page exposes top segmentation toggles: `Online` and `In-store`.
- Within online history, visible fulfillment markers include pickup/drive-up/shipping labels; carry these into `fulfillment_type`.
- Order list pagination uses `Load more purchases` on `/orders`; repeat until no longer present.
- Per-order entry action is `View purchase`; detail URL patterns observed: `/orders/{order_id}` (Online) and `/orders/stores/{store_order_id}` (In-store).
- Use repeated bottom scroll + load-more/pagination on `/orders` list to expose additional purchases; detail pages sampled did not show additional lazy-load behavior after one bottom scroll.
- Treat item expansion controls as conditional: order pages may show `Show details` / `View details`, while explicit `Show all items` was not consistently present.
- Durable item-line text anchors on detail pages: `Qty`, `$.. unit price`, `Subtotal`, `Tax`, plus fulfillment labels (`Picked up`, `Delivered`, `Purchased` / `Store trip`).
- Invoice controls relationship: Online detail pages can include `View invoice` and `View refund invoice`; In-store detail pages may omit invoice controls while still showing totals blocks.
- Preserve repeated adjustment labels as separate rows.
- Login is effectively a three-step flow: (1) username (email/mobile) + Continue, (2) choose auth method (passkey / code / password), (3) password entry when password method is chosen.
- Prefer entering via `https://www.target.com/orders` (or `/account/orders`) so Target provides login query params; bare `/login` may render a non-interactive "Loading content" shell in automation contexts.
- Target username input is React-controlled; direct JS `.value=` assignment may not stick. Use native typing/keystroke semantics only.
- Shared helper path for native typing / delay / credential cleanup: `../shared/common_input.js`.
- Humanization baseline for Target:
  - randomized delays between interactions (100–400ms baseline)
  - avoid instant sequential navigation
  - check for CAPTCHA, challenge pages, or blank/non-interactive form renders before continuing
- If step-1 error appears with empty effective input (e.g., "Please enter an email or phone number" while credential source is valid), treat it first as an interaction-method issue before declaring credential mapping blocker.
