← back to Sister Parish Onboarding
README.md
54 lines
# Sister Parish onboarding
Scrape + normalize Sister Parish's wallcoverings collection, prints only,
priced at `vendor_retail / 0.85` for DW retail.
Source: https://sisterparishdesign.com/collections/wallcoverings
## Inputs
- `data/raw_page{1,2}.json` — raw Shopify `/products.json` dump (74 products)
## Pipeline
1. `node scripts/normalize.js` — filters out `Grasscloth` product_type,
computes `dw_retail = vendor_retail / 0.85`, emits:
- `output/normalized.json` (73 products / 147 variants)
- `output/shopify_import.csv` (Shopify CSV, status=**draft**, compare-at=vendor retail)
2. `scripts/load_pg.sh` — upserts into `dw_unified.sisterparish_catalog`
(local socket / peer auth).
## Standing-rule compliance (per ~/.claude/CLAUDE.md + MEMORY.md)
- All variants emit as **Status=draft** in the Shopify CSV (no active without
human-reviewed image gate).
- Variant inventory: `qty=2026, tracked=true, inventoryPolicy=continue`.
- SKU prefixed `DWSP-` to namespace against DW's existing catalog.
- Compare-at price set to **vendor retail** so DW's price-point story stays
obvious to shoppers.
- Excluded `Sintra Grasscloth Fern` (only Grasscloth product in the collection)
per "prints only" scope.
## Not done (intentional)
- **No Shopify push yet.** CSV is the artifact; await Steve's go-ahead.
- **No site-build.** This is purely the data onboarding; storefront build is a
separate step (use `/dw-site-build` if needed).
- **No metafield enrichment.** Standard DW spec metafields (roll length, repeat,
match, fire rating, country of origin) are NOT in Sister Parish's
`/products.json` and would need a per-product PDP crawl. Flag this if specs
matter for the catalog merge.
## Pricing rule
```
dw_retail = round(vendor_retail / 0.85, 2)
# i.e., +17.65% over Sister Parish's published retail
```
| Vendor retail | DW retail |
|---:|---:|
| $54 | $63.53 |
| $61 | $71.76 |
| $274 | $322.35 |
| $287 | $337.65 |
| $312 | $367.06 |
| $325 | $382.35 |
| $574 | $675.29 |
| $803 | $944.71 |