Shopping agents quietly overspend in the name of "close enough". This project turns the budget into a hard constraint: if the cart would exceed the budget, the agent stops before any payment call and tells the user exactly what was skipped and by how much.

How it works:

  1. The user states a goal and a budget in plain language (e.g. "set up a home office, budget $200").
  2. The agent selects from a 12-product demo catalog: must-haves are never silently dropped; nice-to-haves are added in order only while they fit, and every skip comes with the exact overage and reason.
  3. A deterministic budget gate validates the cart: over budget → hard stop, no PayPal order is created (paypal: null); within budget → a PayPal Sandbox Orders payload is built and a receipt summary is returned.

The demo video shows all three moments: selection with explained trade-offs ($165 kept of a $200 budget; mouse skipped at +$5 over, headset at +$25 over), a hard stop at $205 with no order created, and the dry-run Sandbox Orders payload for the in-budget cart.

Built with:

  • Python standard library only (no third-party dependencies)
  • PayPal Developer Platform: Sandbox Orders API (POST /v2/checkout/orders) — demonstrated as dry-run payload construction; live sandbox credentials were not available during the build window
  • Product selection: deterministic rule-based selector with explained trade-offs; no external LLM is claimed

Built With

Share this project:

Updates

Submission history