K1 — Stock Data Stale
Source aplt_stock only has data for supplier 06 (Nov 2025) and 07 (Dec 2025). No stock for 01, 04, 05, 09.
This manual test was executed on 2026-03-12 to verify the full data pipeline:
Supplier Feeds → Connectors → APLT Tables → Medusa Sync → Tenant Update → Stock UpdateAcceptance criterion: The entire Connector → APLT → Medusa flow must work end-to-end without manual intervention.
Result: Multiple critical issues block a fully automated E2E flow.
This table shows product counts at every stage of the pipeline, making data loss immediately visible.
| Supplier | Code | Source APLT | Dev Medusa | Brinxx APLT | Brinxx Medusa | Brinxx Published | Source Stock | Brinxx Stock |
|---|---|---|---|---|---|---|---|---|
| Spranz | 01 | 760 | 454 | 736 | 499 | 492 | 0 | 728 |
| (Unknown) | 02 | 15 | 0 | 9 | 8 | 0 | 0 | 0 |
| (Unknown) | 03 | 244 | 244 | 246 | 184 | 184 | 0 | 0 |
| XD Connect | 04 | 6,158 | 2,610 | 6,176 | 3,140 | 1,486 | 0 | 0 |
| PF Concept | 05 | 17,780 | 0 | 2,268 | 785 | 2 | 0 | 0 |
| Mid Ocean | 06 | 264 | 0 | 260 | 129 | 0 | 21,244 | 0 |
| Toppoint | 07 | 239 | 0 | 0 | 0 | 0 | 9,091 | 0 |
| NewWave | 09 | 26,239 | 0 | 0 | 107 | 107 | 0 | 0 |
| BRINXX | — | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| Total | 51,699 | 3,308 | 9,696 | 4,853 | 2,272 | 30,335 | 728 |
K1 — Stock Data Stale
Source aplt_stock only has data for supplier 06 (Nov 2025) and 07 (Dec 2025). No stock for 01, 04, 05, 09.
K2 — 29,902 Orphan Stock Records
Stock records exist without a matching product in aplt_products. Data integrity is compromised.
K3 — PF Concept: Zero Prices
All 17,780 PF Concept products have no pricing data in APLT. Products cannot be sold.
K4 — Connector Syncs Stopped
Most connectors last ran in Nov/Dec 2025. Data is 3+ months outdated.
K5 — Medusa Dev: Prices Not Linked
Only 617 price_sets for 3,308 Medusa products. 81% of variants have no price.
K6 — Categories Not Synced
Source has 151 categories, Brinxx only 47. Category navigation is 69% incomplete.
K7 — Suppliers Missing in Brinxx
Toppoint (07) and NewWave (09) are completely absent from Brinxx APLT tables.
| Supplier | Code | Products | Name (NL) | Has Price | Has Image | Verdict |
|---|---|---|---|---|---|---|
| Spranz | 01 | 760 | 760 (100%) | 632 (83%) | 726 (96%) | PASS |
| (Unknown) | 02 | 15 | 15 (100%) | 5 (33%) | 8 (53%) | WARN |
| (Unknown) | 03 | 244 | 244 (100%) | 244 (100%) | 244 (100%) | WARN |
| XD Connect | 04 | 6,158 | 6,158 (100%) | 2,807 (46%) | 6,158 (100%) | WARN |
| PF Concept | 05 | 17,780 | 17,780 (100%) | 0 (0%) | 17,780 (100%) | FAIL |
| Mid Ocean | 06 | 264 | 264 (100%) | 210 (80%) | 264 (100%) | PASS |
| Toppoint | 07 | 239 | 239 (100%) | 190 (79%) | 239 (100%) | PASS |
| NewWave | 09 | 26,239 | 26,239 (100%) | 16,871 (64%) | 3,894 (15%) | WARN |
| Total | 51,699 | 51,699 | 20,959 (41%) | 29,313 (57%) |
| Connector | Last Sync | Age | Verdict |
|---|---|---|---|
| midocean_prices | 2026-03-11 | 1 day | PASS |
| toppoint_printdata | 2025-12-18 | 84 days | FAIL |
| toppoint_products | 2025-12-18 | 84 days | FAIL |
| toppoint_stock | 2025-12-18 | 84 days | FAIL |
| midocean_products | 2025-12-04 | 98 days | FAIL |
| midocean_stock | 2025-11-30 | 102 days | FAIL |
| spranz_* | No record | Unknown | FAIL |
| xdconnect_* | No record | Unknown | FAIL |
| pfconcept_* | No record | Unknown | FAIL |
| newwave_* | No record | Unknown | FAIL |
updated_at)| Supplier | Last Updated | Age | Verdict |
|---|---|---|---|
| XD Connect (04) | 2026-03-11 | 1 day | PASS |
| Mid Ocean (06) | 2026-03-11 | 1 day | PASS |
| Toppoint (07) | 2026-03-11 | 1 day | PASS |
| Spranz (01) | 2026-01-28 | 43 days | WARN |
| PF Concept (05) | 2026-01-13 | 58 days | FAIL |
| NewWave (09) | 2026-01-04 | 67 days | FAIL |
| 03 | 2025-11-30 | 102 days | FAIL |
| Check | Result | Verdict |
|---|---|---|
| Products without any name (NL or EN) | 0 | PASS |
| Products without price (retail_price_100) | ~30,740 (59%) | FAIL |
| Duplicate SKU+variant+supplier | 0 | PASS |
| Unexpected supplier codes | 2 extra (02, 03) | WARN |
| Orphan stock records | 29,902 | FAIL |
| Supplier | Products with Techniques | Total Techniques | Verdict |
|---|---|---|---|
| Spranz (01) | 26 | 60 | PASS |
| 03 | 241 | 480 | PASS |
| XD Connect (04) | 6,033 | 103,432 | PASS |
| PF Concept (05) | 0 | 0 | FAIL |
| Mid Ocean (06) | 213 | 3,537 | PASS |
| Toppoint (07) | 232 | 1,049 | PASS |
| NewWave (09) | 0 | 0 | WARN |
| Supplier | In Medusa | Status | Verdict |
|---|---|---|---|
| Spranz (01) | 454 | All published | PASS |
| 03 | 244 | All published | PASS |
| XD Connect (04) | 2,610 | All published | PASS |
| PF Concept (05) | 0 | Not synced | FAIL |
| Mid Ocean (06) | 0 | Not synced | FAIL |
| Toppoint (07) | 0 | Not synced | FAIL |
| NewWave (09) | 0 | Not synced | FAIL |
| Total | 3,308 of 51,699 (6.4%) |
| Metric | Value | Verdict |
|---|---|---|
| Total price_sets | 617 | |
| Total price records | 617 | |
| Variants with price_set | 617 | |
| APLT variants without price | ~2,691 (81%) | FAIL |
| Check | Result | Verdict |
|---|---|---|
| Thumbnails set | Yes — XD Connect CDN URLs | PASS |
| URL format | https://static.xdconnects.com/... | PASS |
| Endpoint | Result | Verdict |
|---|---|---|
GET /admin/connectors/medusa-sync | Responds: idle | PASS |
GET /admin/connectors/sync | Lists 20+ connectors | PASS |
GET /admin/tenant-update | Lists 8 tenants | PASS |
| PIM Health check | OK | PASS |
| Supplier | Source (magic_pim) | Brinxx | Delta | Verdict |
|---|---|---|---|---|
| Spranz (01) | 760 | 736 | -24 | WARN |
| 02 | 15 | 9 | -6 | WARN |
| 03 | 244 | 246 | +2 | WARN |
| XD Connect (04) | 6,158 | 6,176 | +18 | WARN |
| PF Concept (05) | 17,780 | 2,268 | -15,512 | FAIL |
| Mid Ocean (06) | 264 | 260 | -4 | PASS |
| Toppoint (07) | 239 | 0 | -239 | FAIL |
| NewWave (09) | 26,239 | 0 | -26,239 | FAIL |
| BRINXX | 0 | 1 | +1 | PASS |
| Supplier | Products | Published | Draft | Verdict |
|---|---|---|---|---|
| Spranz (01) | 499 | 492 | 7 | PASS |
| 02 | 8 | 0 | 8 | WARN |
| 03 | 184 | 184 | 0 | PASS |
| XD Connect (04) | 3,140 | 1,486 | 1,654 | WARN |
| PF Concept (05) | 785 | 2 | 783 | FAIL |
| Mid Ocean (06) | 129 | 0 | 129 | FAIL |
| NewWave (09) | 107 | 107 | 0 | PASS |
| BRINXX | 1 | 1 | 0 | PASS |
| Total | 4,853 | 2,272 (47%) | 2,581 (53%) |
| Database | Categories | With Parent | Verdict |
|---|---|---|---|
| Source (development) | 151 | 135 | |
| Brinxx | 47 | 31 | FAIL |
| Metric | Value | Verdict |
|---|---|---|
| Price sets | 14,476 | |
| Prices (amount > 0) | 35,986 | |
| Variants with price | 14,474 | PASS |
| Check | Result | Verdict |
|---|---|---|
aplt_master_update table | Does not exist | FAIL |
| Supplier | Records | Last Updated | In Stock | Verdict |
|---|---|---|---|---|
| Mid Ocean (06) | 21,244 | 2025-11-30 (102 days) | 11,771 (55%) | FAIL |
| Toppoint (07) | 9,091 | 2025-12-18 (84 days) | 5,960 (66%) | FAIL |
| Spranz (01) | 0 | — | — | FAIL |
| XD Connect (04) | 0 | — | — | FAIL |
| PF Concept (05) | 0 | — | — | FAIL |
| NewWave (09) | 0 | — | — | FAIL |
| Supplier | Source Records | Brinxx Records | Match? | Verdict |
|---|---|---|---|---|
| Spranz (01) | 0 | 728 | Source has nothing, tenant has data | FAIL |
| Mid Ocean (06) | 21,244 | 0 | Not synced | FAIL |
| Toppoint (07) | 9,091 | 0 | Not synced | FAIL |
| Tenant | Has aplt_stock? | Verdict |
|---|---|---|
| magic_b2b_development | No | FAIL |
| magic_b2b_default | No | FAIL |
| magic_b2b_demo | No | FAIL |
| Source DB | Supplier | Orphan Records |
|---|---|---|
| magic_pim | Mid Ocean (06) | 21,031 |
| magic_pim | Toppoint (07) | 8,871 |
| Total | 29,902 |
Root cause: stock records reference products (by SKU) that no longer exist in aplt_products. This indicates either:
aplt_products| Check | Result | Verdict |
|---|---|---|
| Connectors run on schedule | No — most stopped since Nov/Dec 2025 | FAIL |
| Fully automated (no manual steps) | No — Medusa sync and tenant update require manual triggers | FAIL |
| Individual errors don’t stop sync | Yes — error counting works | PASS |
| Sync state tracked | Partially — only 6 entries in aplt_connector_sync | WARN |
| API endpoints functional | Yes — all endpoints responsive | PASS |
| Test Area | Tests | Passed | Failed | Warning |
|---|---|---|---|---|
| Connector → APLT data | 8 | 3 | 3 | 2 |
| Connector sync freshness | 10 | 1 | 9 | 0 |
| Data quality | 5 | 2 | 2 | 1 |
| SKU/variant convention | 8 | 6 | 0 | 2 |
| Print techniques | 7 | 4 | 1 | 2 |
| APLT → Medusa sync | 8 | 3 | 4 | 1 |
| Medusa pricing | 3 | 0 | 2 | 1 |
| Tenant update (Brinxx) | 10 | 4 | 4 | 2 |
| Stock update | 10 | 0 | 9 | 1 |
| Automation | 5 | 2 | 2 | 1 |
| Total | 74 | 25 (34%) | 36 (49%) | 13 (18%) |
Restart all connector syncs — Run a full sync for every supplier (products, stock, prices, print data).
curl -X POST "http://localhost:4002/admin/connectors/sync?connector=spranz_stock"curl -X POST "http://localhost:4002/admin/connectors/sync?connector=xdconnect_products"curl -X POST "http://localhost:4002/admin/connectors/sync?connector=xdconnect_stock"curl -X POST "http://localhost:4002/admin/connectors/sync?connector=pfconcept_products"curl -X POST "http://localhost:4002/admin/connectors/sync?connector=pfconcept_stock"curl -X POST "http://localhost:4002/admin/connectors/sync?connector=midocean_products"curl -X POST "http://localhost:4002/admin/connectors/sync?connector=midocean_stock"curl -X POST "http://localhost:4002/admin/connectors/sync?connector=toppoint_products"curl -X POST "http://localhost:4002/admin/connectors/sync?connector=toppoint_stock"Investigate PF Concept pricing — Why does supplier 05 have zero prices? Check feed configuration and API credentials.
Fix stock-product linkage — Clean up 29,902 orphan records and re-import stock with correct SKU matching.
Fix Medusa price linking — Investigate why development only has 617 price_sets for 3,308 products.
| Criterion | Result |
|---|---|
| Connectors fetch current data | FAIL Most 3+ months outdated |
| Data flows correctly to APLT | PARTIAL Products OK, stock/prices incomplete |
| APLT syncs to Medusa | FAIL Only 3 of 8 suppliers, prices missing |
| Tenant update works | PARTIAL API works but data incomplete |
| Stock update works E2E | FAIL Stock stale and not synced |
| Fully automated | FAIL No automatic scheduling |
The system does not meet the acceptance criteria. After resolving Priority 1 blockers, a retest should be scheduled.