Checkout support and search tile metadata #2

Merged
HoroTW merged 4 commits from hakalya/checkout-support into main 2026-10-12 13:32:46 +00:00 AGit
Collaborator

Integrates checkout tools and exposes search tile subtitle (e.g. Hochweiß • 90g/m²), with no additional provider search calls. Parent rechecked the parser against a DE live-response capture: 30/30 original products preserved. 362 tests plus typecheck/lint/build passed. Checkout write protocol remains partly unverified: card live test required interactive redirect and was cancelled; the buyer completed the actual purchase in the app. Metadata fixture excludes account/analytics data.

Integrates checkout tools and exposes search tile subtitle (e.g. Hochweiß • 90g/m²), with no additional provider search calls. Parent rechecked the parser against a DE live-response capture: 30/30 original products preserved. 362 tests plus typecheck/lint/build passed. Checkout write protocol remains partly unverified: card live test required interactive redirect and was cancelled; the buyer completed the actual purchase in the app. Metadata fixture excludes account/analytics data.
Adds purchase completion as three tools:
- picnic_checkout_preview: read-only, issues a single-use confirmation token
  bound to cart contents, totals, delivery slot and payment option
- picnic_checkout_place_order: start -> initiate_payment -> confirm, each
  request sent at most once with a timeout, never retried; an unanswered or
  failed step after payment may have begun is reported as outcome_unknown
  with the ids needed to reconcile
- picnic_checkout_reconcile: read-only check of order status, deliveries, cart

The request sequence follows the Picnic Android app 1.249.0 and the public
clients (MRVDH/picnic-api 4.10.0, MRVDH/picnic-web, simonmartyr/picnic-api).
It has not been run against a live account; docs/CHECKOUT.md records
provenance, limits and what remains unverified. Test fixtures are mocks.

picnic-api stays at 4.6.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Require payment identity and confirmation evidence before checkout success
Some checks failed
PR Check / Verify PR (pull_request) Has been cancelled
dd5d719e4e
Picnic prints an attribute line above the product name on a search tile,
for example "Hochweiß • 90g/m²" on copy paper. It is rendered text in
the tile layout of /pages/search-page-results, not a field of the
sellingUnit object, and picnic-api's catalog.search drops it by keeping
only $..sellingUnit.

picnic_search now reads that page itself, with the same single request,
and returns the line as `subtitle` for products that have one. No
request is added and nothing is looked up per product.

The tile shape is taken from MRVDH/picnic-web 8abaedd. It has not yet
been compared with a raw response for a German account.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Check the tile subtitle parser against a real search response
Some checks failed
PR Check / Verify PR (pull_request) Has been cancelled
Release / Release (push) Has been cancelled
b19933d420
A raw /pages/search-page-results response for "papier" on a German
account confirms where the line comes from: one text node per attribute
in the row above the name, inside the tile layout. The sellingUnit
object has no counterpart, its decorators are empty.

The dot between two attributes is an icon (dotDivider), not text, so the
subtitle came out as "Hochweiß 90g/m²". It is now rendered as "•".

The test fixture is rebuilt from the real tile: row order, name row and
chevron as sent. The response itself is not part of the repository.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HoroTW changed title from Add checkout preview, purchase completion and reconciliation (live checkout unverified) to Checkout support and search tile metadata 2026-10-12 13:32:45 +00:00
HoroTW merged commit b19933d420 into main 2026-10-12 13:32:46 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
HoroTW/mcp-picnic!2
No description provided.