Coupa PO email parser and Payee Central scraper for Amazon site code resolution
Bumps the minor-and-patch group with 3 updates: [@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb), [@aws-sdk/lib-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-dynamodb) and [playwright](https://github.com/microsoft/playwright). Updates `@aws-sdk/client-dynamodb` from 3.1045.0 to 3.1048.0 - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-dynamodb/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1048.0/clients/client-dynamodb) Updates `@aws-sdk/lib-dynamodb` from 3.1045.0 to 3.1048.0 - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-dynamodb/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1048.0/lib/lib-dynamodb) Updates `playwright` from 1.59.1 to 1.60.0 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](https://github.com/microsoft/playwright/compare/v1.59.1...v1.60.0) --- updated-dependencies: - dependency-name: "@aws-sdk/client-dynamodb" dependency-version: 3.1048.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: "@aws-sdk/lib-dynamodb" dependency-version: 3.1048.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: playwright dependency-version: 1.60.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|---|---|---|
| .github | ||
| output | ||
| prompts | ||
| .gitignore | ||
| gen-po-list.mjs | ||
| monitor.mjs | ||
| package-lock.json | ||
| package.json | ||
| parse-mbox.py | ||
| README.md | ||
| scrape-fill-chunk.mjs | ||
| scrape-payee-chunk.mjs | ||
| scrape.mjs | ||
amazon-po-parser
Tools for ingesting, scraping, and enriching Amazon purchase order data from Coupa emails and Payee Central.
Architecture
- Data source: Coupa PO notification emails → parsed into structured JSON
- Enrichment: Playwright scrapers hit Amazon Payee Central to resolve site codes, ship-to addresses, and line items
- Storage: DynamoDB
purchase-orderstable (us-east-1) is the single source of truth - Mapping:
output/site-state-extra-mapping.json— curated Amazon facility code → US state mapping (392 codes)
Scripts
| Script | Purpose |
|---|---|
parse-mbox.py |
Parse Coupa PO emails from MBOX export into structured JSON |
scrape.mjs |
Single-browser Payee Central scraper |
scrape-payee-chunk.mjs |
Chunk-based concurrent scraper (run N instances in parallel) |
scrape-fill-chunk.mjs |
Lightweight scraper for backfilling site codes and ship-to addresses |
gen-po-list.mjs |
Generate PO lists from invoice spreadsheets |
monitor.mjs |
Monitor scraper progress across chunks |
DynamoDB Schema
Table: purchase-orders | Key: po_number (string)
| Field | Type | Source |
|---|---|---|
po_number |
string | Email/Coupa |
site_code |
string | Payee Central scrape |
state |
string | Derived from site_code mapping |
ship_to_raw |
string | Payee Central scrape |
line_items |
list | Email parse + Payee Central |
trade |
string | Classified from descriptions |
trades |
list | All trades for multi-line POs |
fiscal_year |
string | Order date year |
coupa_category |
string | Coupa commodity category |
source_system |
string | "coupa" |
data_source |
string | "email+payee_scrape" |
invoice_total |
string | Downstream invoice matching |
invoice_count |
number | Downstream invoice matching |
order_date |
string | Email parse |
po_status |
string | Email parse |
payment_terms |
string | Email parse |
requisition_number |
string | Email parse |
Prompt
prompts/po-email-parser.md contains the LLM prompt for parsing incoming Coupa PO emails. It includes site code extraction patterns, a skip list for non-site codes, trade classification rules, and ship-to address parsing guidance.
Setup
npm install # playwright
Requires a Chrome profile logged into Amazon Payee Central at ./chrome-profile/.