# SYNTHETIC FICTIONAL DEMO — local catalog repair All five rows are invented for this $0 local experiment. No real products, customers, sales or business results are represented. | Record | SKU (text) | Fictional product | Before | After | | --- | --- | --- | --- | --- | | 1 | `00001` | SYNTHETIC Orbit Print, Small | Price ` 12.5000 `, inventory `7` | Price `12.5000`, inventory `7` | | 2 | `00002` | SYNTHETIC Orbit Print, Large | Price `18.00`, inventory `0` | Unchanged | | 3 | `1E03` | SYNTHETIC Moss Card | Price `0.00`, inventory ` 4 ` | Price `0.00`, inventory `4` | | 4 | `00004` | SYNTHETIC River + embedded newline + Notebook | Price `9.90`, inventory `-2` | Unchanged; negative inventory warning | | 5 | `DEMO-005` | SYNTHETIC Cloud Poster, A4 / Gray | Price `20.10`, inventory `3` | Unchanged; both explicit options retained | Five source rows become five variant rows across four product handles. Two numeric edge-whitespace repairs, one warning, zero errors. SKUs are byte-for-byte equal as decoded CSV strings; prices have exact Decimal equality and inventory values are identical. Each candidate has draft status and online publication set to false. Use `SYNTHETIC-run/before-review.csv` and `SYNTHETIC-run/after-review.csv` for spreadsheet viewing. Their `text: ` prefixes and JSON escapes are deliberate display protection; do not import these views to Shopify. `SYNTHETIC-run/shopify-candidate.csv` is the machine candidate. No live import occurred. `SYNTHETIC-before.csv` is the untouched fictional input; `SYNTHETIC-run/raw-input.csv.bin` preserves its exact bytes. `SYNTHETIC-run/issues.json` records each repair/warning. `SYNTHETIC-run/manifest.json` hashes the run payloads and processor. `SHA256SUMS.txt` additionally hashes the delivered processor and demo files, including the manifest (excluding itself). Validation: 27 unittest tests passed. Coverage includes duplicate/conflicting SKUs, blanks versus zeros, signed inventory policy, ambiguous currencies/subcent prices, formula prefixes, invisible characters, multiline CSV, explicit variants, malformed input, bounds, source preservation, output-path restrictions, and deterministic bytes/hashes. Tests exercise CSV serialization and safety checks; no spreadsheet GUI or Shopify import was used. See `../processor/README.md` for usage, mapping rules and limitations. Repeated conversions require fresh output directories. Excel requires separately verified manual extraction, which was not performed in this demo. ISSUE REPORT { "changes": [ { "action": "trim_numeric_edge_whitespace", "field": "Price", "row": 1 }, { "action": "trim_numeric_edge_whitespace", "field": "Inventory quantity", "row": 3 } ], "currency": "USD", "input_rows": 5, "issues": [ { "code": "negative_available_units_preserved", "field": "Inventory quantity", "row": 4, "severity": "warning" } ], "label": "SYNTHETIC FICTIONAL DEMO", "network_used": false, "output_rows": 5, "source_sha256": "da364262eee619ac0416ff0da2dfdbac249876825f771abfd0b53451b047ab0a", "status": "local_candidate" } No real store import was tested. These files are fictional demonstrations only.