PlytixMage Admin
Channel-agnostic catalog, transformations, and publishing control plane.
Channels overview
Product counts and last pull/push per channel_connection.
| ID | Type | Name | Source snapshot | Remote catalog | Published | Last pull | Last push |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Catalog Operations
SKU registry, channel links, image coverage, variation signals, and cleanup flags.
Variation Builder
Create Magento-ready configurable shell products from selected master SKUs.
SKU Registry
Filter by issue, channel, or SKU/name. Select rows for bulk cleanup or variation planning.
| SKU | Name | Family | Assembly | Magento | Shopify | Images | Relation | Issues | Actions | |
|---|---|---|---|---|---|---|---|---|---|---|
| Click Load registry to fetch SKUs. | ||||||||||
Channel Connections
Magento, Shopify, Plytix, and future channels are rows in one table.
Plytix Credentials
Shopify Credentials
Magento Credentials
| ID | Type | Code | Name | Env | Status | Last check |
|---|---|---|---|---|---|---|
| No rows loaded. | ||||||
Channel
Pull / Push
channel_jobSource data download
Export pulled product snapshots to review columns and values before uploading mappings.
SKU linking
Link products created outside PlytixMage to master SKUs using pulled catalog data (or live Shopify API). Run after pull or on demand.
Sync status
publish_stateRecent jobs
channel_job| ID | Type | Status | Total | OK | Errors | Notes | Requested | Finished |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
Transformation
Build channel_transformed_product payloads from master data and mappings.
Attribute mappings
Per-connection overrides. Global static field map: Attributes · download attribute lists below to build mappings in CSV.
Mapping CSV reference
Master codes (left) and channel attribute codes (right) for master_static_field_mapping / alias CSVs.
| ID | Canonical | Channel attr | Direction | Active | |
|---|---|---|---|---|---|
| No mappings. | |||||
Transform rules
Naming, prefix/suffix, fallback rules (channel_transform_rule).
| ID | Target | Name | Priority | Active | |
|---|---|---|---|---|---|
| No rules. | |||||
Products
Browse pulled channel snapshots or compare master vs channel data side by side. Assign taxonomy targets on the channels view.
Product Snapshots
Browse pulled product data one channel at a time. Use CSV download for full export.
Master Products
The central product workspace. Master taxonomy leaves are the source of truth; their linked Magento categories and Shopify collections become each SKU's channel placements.
Master data attribute filters
Assembly filter: equals Unassembled → RTA/unassembled SKUs. not equal Assembled → RTA/unassembled + blanks. not equal Unassembled → assembled + blanks only (0 if everything in scope is RTA).
| SKU | Name | Magento ID | Shopify ID | Taxonomy state | Master taxonomies | Channel taxonomies | Move taxonomy | |
|---|---|---|---|---|---|---|---|---|
| No products loaded. | ||||||||
Bulk taxonomy assignment
1. Filter which SKUs to update · 2. Review the grid · 3. Check one or more targets · 4. Assign. Channel catalogs (collections/categories) load automatically — not the same as the product list below. Manage catalogs on Taxonomies.
1 Filter SKUs
filter-skusMaster attribute filters
Filter by any master field, e.g. assembled_or_rta = Assembled.
2 Review SKUs
These are the master SKUs matching your filters and their current taxonomy assignments (human-readable names, not raw GIDs).
| SKU | Name | PDP URL | PLP paths | Current assignments |
|---|---|---|---|---|
| Load SKU grid after setting filters. | ||||
3 Select targets & assign
Check one or more collections, categories, or paths below. Multiple selections are supported (except Shopify product category — one per SKU; use Replace existing to swap).
Selected targets
Shopify collections
Multi-select| Collection |
|---|
| Sync channel catalogs to load collections. |
Shopify product categories
Usually one per SKU| Category |
|---|
| Sync channel catalogs first. |
Magento categories
Multi-select| Category path |
|---|
| Sync channel catalogs first. |
PLP listing paths
Multi-select| PLP URL |
|---|
| No listing paths yet. |
Advanced: edit raw IDs manually
Products with channels
Optional — compare master vs channel attributes side by side. Not used for taxonomy assignment.
products/matrix
Products with channels
Optional — compare master vs channel attributes side by side. Not used for taxonomy assignment.
Master attribute filters
Narrow the matrix by master field values (AND across rows).
| SKU | Master Attributes | Plytix Attributes | Magento Attributes | Shopify Attributes |
|---|---|---|---|---|
| Loading… | ||||
Field enrichment pull
One-time isolated pull for explicit field groups (images, Magento option IDs, Shopify media). Merges into existing snapshots — not part of daily pull.
Catalog import summary
Master data, gallery images, and SEO overrides. After importing images, use Publish → Push images only to send galleries to linked SKUs.
Master Products
Upsert into master_product.
Imports CSV rows through the API master SKU importer. Use Preview taxonomy to normalize and review category/collection matches before committing SKUs.
SEO Data
Upsert into product_seo.
Imports SEO rows through the FastAPI override importer.
Product Images
Associate gallery URLs to master SKUs from a Name + URL CSV.
Filename prefix parser: CA-B15-CLOSE.png → prefix CA-B15, matched to master SKUs like CA-B15XXXX. CLOSE is base image; OPEN and others follow.
Channel attribute registry
Bootstrap mapping dropdowns from each platform. For Plytix, upload your attribute overview CSV (recommended) — the public attribute search API is often unavailable.
Static field mapping
Map master product attributes to channel fields. Choose ➕ Create new now to create the Magento attribute or Shopify metafield immediately on save (uses master code as channel code). Categories, collections, and listing paths are assigned separately on Products → Load Products w Channels or Taxonomies.
Mapping matrix
Per channel: mapped attribute + is_match (1 = exists in channel registry).
| Master | Load matrix to preview | |||||
|---|---|---|---|---|---|---|
| Click “View matrix” or download CSV. | ||||||
| Loading… |
|---|
| Loading… |
SKU mapping
Prefix rules (e.g. master HPW* → Shopify HD-CW*) apply on push. Explicit SKU rows override prefix rules for individual products.
SKU prefix rules
CSV columns: shopify (channel prefix), master (master prefix). Example: HD-CW + HPW turns HPW-123 into HD-CW-123.
| Channel prefix (Shopify) | Master prefix | Channel | Connection |
|---|---|---|---|
| Loading… | |||
Prefix SKU rename on remote
Renames live channel variant SKUs to prefix targets (e.g. ACH-* → HD-CA-*). Same as rename_channel_skus --no-dry-run --limit N. Works for Shopify and Magento.
Explicit SKU overrides
Per-product exceptions that win over prefix rules.
Add mapping
Master SKU + connection + channel SKU. CSV: sku, connection_id (or channel_id), channel_sku.
Saved mappings
Rows persisted in channel_sku_mapping for the selected channel.
| Master SKU | Channel | Connection | Channel SKU | Remote ID | Status | Source |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Catalog compare
Compare master catalog, live/pulled channel catalog, and linked products. Channel orphans are remote SKUs with no master link yet.
| Master SKU | Channel SKU | Prefix target | Remote ID | On remote | Source |
|---|---|---|---|---|---|
| Run catalog refresh. | |||||
| Master SKU | Name | Prefix channel SKU |
|---|---|---|
| Run catalog refresh. | ||
| Channel SKU | Status |
|---|---|
| Run catalog refresh. | |
| Master SKU | Suggested channel SKU | Confidence | Reason |
|---|---|---|---|
| No suggestions yet. | |||
Channel assignments
Choose which master SKUs publish to each channel (product_channel_assignment). Required before push, SKU link, and readiness checks.
Assign SKUs
One SKU per line, or comma-separated. SKUs must exist in the master catalog.
Or assign by master attribute filters
Assign/remove all SKUs matching master field filters for the selected channel.
| SKU | Channel | Status | Reason | Updated |
|---|---|---|---|---|
| Loading… | ||||
Master taxonomy
One hierarchy table: categories for Magento, collections for Shopify. Drag rows to reparent. Collection rows open the Collections page for landing content. Link collections via shared path_slug + collection_registry_id.
SEO intersections
Create backend-owned URLs such as /kitchen-cabinets/anna-snow-white/wall-cabinets/. Set the hub facet once, then materialize options for any collection or future product group.
| Label | SEO path | Filter | Targets |
|---|---|---|---|
| Load or materialize intersections. | |||
| Kind | Name | Path | Landing | Magento | Shopify | |||
|---|---|---|---|---|---|---|---|---|
| No taxonomy loaded. | ||||||||
Edit taxonomy node
Select a tree row to edit, or clear the form to create a hub, category, or collection.
Assign / unassign SKUs
Filtered bulk assign to the selected tree row. Uses the same filters as Products → Channels.
Canonical merges
Merge near-duplicate collection paths (e.g. plymouth-espresso + plymouth-espresso-maple) into one canonical node. Alias paths redirect SKUs and channel assignments.
| Canonical | Merge into canonical | Reason | |
|---|---|---|---|
| No suggestions yet. | |||
Import from master CSV
Catalog Import → Preview taxonomy → approve proposals here → Confirm.
| Kind | Name | Parent | SKUs | |
|---|---|---|---|---|
| No proposals yet. | ||||
Advanced: legacy provision
Collection Landing Pages
Manage collection presentation for Magento / Shopify PLPs. Collections live primarily under Kitchen Cabinets today; choose another top category to plan Bathroom Vanities, Doors, Mouldings, etc. SKU membership uses master collection field, SKU style prefixes (ASW, ASG…), and manual overrides.
Collections
inferred + saved| Title | SKUs | |
|---|---|---|
| Load collections. | ||
Landing Content
Fields mirror the collection feature area: images, PDF, bullets, matching collections, and accordion content.
Default: direct child of top category (kitchen-cabinets). Later: nest under a subcategory (e.g. kitchen-cabinets/base-cabinets). Shopify ignores hierarchy — flat collection title only.
Prefixes match the leading style code on master SKUs (e.g. ASW-B15). Defaults are inferred from the collection name when empty.
Push landing content to channels
Bootstrap once per store (creates Shopify collection metafields / Magento category attributes), then push saved landing fields to the mapped remote category or collection.
Template field contract — attribute codes, metafield keys and IDs
These identifiers are the stable contract for Magento templates and Shopify themes. Bootstrap creates anything marked missing.
| Field | Template identifier | Type | Attribute ID / Definition GID | Status |
|---|---|---|---|---|
| Select a collection and channel. | ||||
SKU Discovery & Manual Assignments
Preview which SKUs resolve to this collection. Sources: master_collection sku_prefix manual_include · exclusions use manual_exclude.
| SKU | Master collection | Style | Sources | |
|---|---|---|---|---|
| No SKU discovery run yet. | ||||
Publish readiness
Review the provision CSV per channel (exactly what a push will send), then push. Dry-run first; live push asks for confirmation.
Assign & link master SKUs
Image push and product publish only include assigned master SKUs with a channel SKU mapping. Run these before push if preview shows zero items. Full controls on Mappings.
CLI equivalents: link_master_skus --assign-all then link_master_skus --channels magento
Push images only
Upload master gallery URLs to linked Magento / Shopify SKUs. Does not change attributes, categories, or taxonomy. Import images on Catalog Import first.
Remove remote products
Resolve remote product IDs from DB catalog state (not live filter queries), preview with dry-run, then execute. Orphans = SKUs on Magento/Shopify with no active master row. Use master filter for RTA cleanup.
Example: attribute assembly_type = RTA (exact).
Magento: you choose disable (status=2, recoverable) or hard delete (permanent). Shopify always hard-deletes via product GID. Live removal runs as a background job — poll progress below.
| Master SKU | Channel SKU | Remote ID | Reason |
|---|
Magento
Parent/child structure. Push enqueues the Magento sync worker from the master catalog.
Shopify
Flat products via productSet. Linked SKUs (reconcile on Mappings page) update in place; unlinked SKUs are matched by SKU or created.
Plytix
Preview/export only for now — write-back to the PIM is not enabled.
Queue health
In-flight jobs and recent failures from channel_job.
| ID | Connection | Type | Status | Requested |
|---|---|---|---|---|
| Not loaded. | ||||
Create schedule
UTC cron (minute hour day month weekday). Example: 0 3 * * * daily 03:00.
Schedules
cron| ID | Connection | Task | Cron | Enabled | Last run | |
|---|---|---|---|---|---|---|
| Click Load queue & schedules. | ||||||