PlytixMage Admin

Protected workspace controls.

Locked.

PlytixMage Admin

Channel-agnostic catalog, transformations, and publishing control plane.

Dashboard ready.
Master products
0
0 active
SEO rows
0
Jobs succeeded (24h)
0
0 failed · 0 in flight
Last imports
Master:
SEO:

Channels overview

Product counts and last pull/push per channel_connection.

dashboard/summary
ID Type Name Source snapshot Remote catalog Published Last pull Last push
Loading…
Active master SKUs
0
SKUs without images
0
Magento rename needed
0
Shopify rename needed
0

Variation Builder

Create Magento-ready configurable shell products from selected master SKUs.

channel-neutral
No variation plan loaded.

SKU Registry

Filter by issue, channel, or SKU/name. Select rows for bulk cleanup or variation planning.

catalog-operations/registry
Registry is not loaded automatically — use filters above, then click load.
Page 1
0 selected
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.

channel_connection

Plytix Credentials

Shopify Credentials

Magento Credentials

Ready.
IDTypeCodeNameEnvStatusLast check
No rows loaded.

Channel

Channel products
0
Source snapshot
0
Pulled SKUs stored locally
Remote catalog
0
Live store catalog state
Published
0
Attribute mappings
0
Transform rules
0

Pull / Push

channel_job
Last pull:
Last push:

Source 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.

channel_sku_mapping
Ready.
Run reconcile to compare master vs remote catalog for this connection.

Sync status

publish_state
Loading…

Recent jobs

channel_job
IDTypeStatusTotalOKErrorsNotesRequestedFinished
Loading...

Transformation

Build channel_transformed_product payloads from master data and mappings.

transform
Download Normalized CSV
Ready.

Attribute mappings

Per-connection overrides. Global static field map: Attributes · download attribute lists below to build mappings in CSV.

mapping

Mapping CSV reference

Master codes (left) and channel attribute codes (right) for master_static_field_mapping / alias CSVs.

IDCanonicalChannel attrDirectionActive
No mappings.

Transform rules

Naming, prefix/suffix, fallback rules (channel_transform_rule).

rules
IDTargetNamePriorityActive
No rules.
Ready.
← Back to Products

Product Snapshots

Browse pulled product data one channel at a time. Use CSV download for full export.

product-snapshots
Download CSV
Page 1 of 1 · 0 rows
SKU
Loading…
Ready.
← Back to Products

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-product

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).

Canonical taxonomy reconciliation

Select SKUs (or select all filtered), preview the changes, then apply. This replaces stale local category/collection links. The next channel push reconciles remote membership too.

Load products to begin.
Page 1 · 0 rows
SKU Name Magento ID Shopify ID Taxonomy state Master taxonomies Channel taxonomies Move taxonomy
No products loaded.
← Back to Products

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.

taxonomy-workspace/assign
Ready.

1 Filter SKUs

filter-skus

Master attribute filters

Filter by any master field, e.g. assembled_or_rta = Assembled.

Adjust filters, then load the SKU grid.

2 Review SKUs

These are the master SKUs matching your filters and their current taxonomy assignments (human-readable names, not raw GIDs).

taxonomy-workspace/skus
Page 1 · 0 rows
SKU Name PDP URL PLP paths Current assignments
Load SKU grid after setting filters.
Ready.

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).

bulk-assign

Selected targets

Check targets in the lists below — no need to copy GIDs.

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
Ready.

Products with channels

Optional — compare master vs channel attributes side by side. Not used for taxonomy assignment.

products/matrix

Master attribute filters

Narrow the matrix by master field values (AND across rows).

Page 1 of 1 · 0 rows
SKU Master Attributes Plytix Attributes Magento Attributes Shopify Attributes
Loading…
Ready.

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.

enrichment_pull
Select a connection and field profiles.

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 catalog
Master: — Images: — SEO rows: —
Ready.

Master Products

Upsert into master_product.

master_product

Imports CSV rows through the API master SKU importer. Use Preview taxonomy to normalize and review category/collection matches before committing SKUs.

Ready.

SEO Data

Upsert into product_seo.

product_seo

Imports SEO rows through the FastAPI override importer.

Ready.

Product Images

Associate gallery URLs to master SKUs from a Name + URL CSV.

master_product_image

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.

Ready.

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.

attribute_pull
Ready.

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.

master_static_field_mapping
Download CSV Mapping matrix CSV
Ready.

Mapping matrix

Per channel: mapped attribute + is_match (1 = exists in channel registry).

MasterLoad matrix to preview
Click “View matrix” or download CSV.
Loading…
Loading…
Changes auto-save after you pick a mapping.

SKU mapping

Prefix rules (e.g. master HPW* → Shopify HD-CW*) apply on push. Explicit SKU rows override prefix rules for individual products.

channel_sku_mapping

SKU prefix rules

CSV columns: shopify (channel prefix), master (master prefix). Example: HD-CW + HPW turns HPW-123 into HD-CW-123.

Download prefix CSV
Enter a master SKU and preview the channel SKU.
Ready.
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.

Ready. Select Shopify channel + connection, then preview or run.

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.

Download CSV
Ready.

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.

Linked: — Master only: — Channel only: — Suggestions: —
Loading catalog compare…
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.

product_channel_assignment

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.

Ready.
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.

master_taxonomy_node
Fix all taxonomies — one click: pull remotes, build tree, link/create categories & collections, assign SKUs, queue Magento/Shopify pushes.
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.

Use this for cabinet collections now; later the same form supports interior doors, exterior doors, bathroom vanities, and other hubs.
LabelSEO pathFilterTargets
Load or materialize intersections.

Remote already exists

Names like “Doors” often repeat under different parents (Kitchen, Accessories, root). Link only when the remote collection is the same branch; otherwise create a unique Shopify handle.

Confirm taxonomy merge

Alias paths are deactivated and redirect to the canonical path. SKU assignments move to the canonical node. Channel links copy only when the canonical node is missing them.

Check 2+ rows — pick which path to keep (longer name or linked channel wins by default).
KindNamePathLandingMagentoShopify
No taxonomy loaded.

Edit taxonomy node

Select a tree row to edit, or clear the form to create a hub, category, or collection.

Select a row to edit, or create a node above.

Assign / unassign SKUs

Filtered bulk assign to the selected tree row. Uses the same filters as Products → Channels.

Select a taxonomy row first.
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.

Load suggestions after bootstrap.
CanonicalMerge into canonicalReason
No suggestions yet.
Import from master CSV

Catalog Import → Preview taxonomy → approve proposals here → Confirm.

KindNameParentSKUs
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.

collection_landing_page
Ready.

Collections

inferred + saved
TitleSKUs
Load collections.

Landing Content

Fields mirror the collection feature area: images, PDF, bullets, matching collections, and accordion content.

new

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.

Select a collection to inspect channel targets.
Registry link diagnostics appear after target refresh.
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.

Select a linked collection to preview parent, child, and sibling relationships.
FieldTemplate identifierTypeAttribute ID / Definition GIDStatus
Select a collection and channel.
Bootstrap then push after the remote category/collection exists.

SKU Discovery & Manual Assignments

Preview which SKUs resolve to this collection. Sources: master_collection sku_prefix manual_include · exclusions use manual_exclude.

collection_sku_override
SKU reconcile

Fix style-code membership (e.g. ASW only on Anna Snow White), remove cross-collection pollution, then optionally sync remote category/collection assignments.

Select a collection and click Discover SKUs.
SKUMaster collectionStyleSources
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.

channel_publish_state
Ready.

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.

assign + link

CLI equivalents: link_master_skus --assign-all then link_master_skus --channels magento

Ready.

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.

push-images
Ready.

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.

remove-products

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.

Click Preview to load candidates (no API call on page load).

Magento

Parent/child structure. Push enqueues the Magento sync worker from the master catalog.

parent_children
Not loaded.
Provision CSV
Ready.
Sync control: pause cancels queue and disables push schedules (manage schedules on #/scheduled).

Shopify

Flat products via productSet. Linked SKUs (reconcile on Mappings page) update in place; unlinked SKUs are matched by SKU or created.

flat
Not loaded.
Provision CSV
Ready.

Plytix

Preview/export only for now — write-back to the PIM is not enabled.

flat
Not loaded.
Provision CSV
Ready.

Queue health

In-flight jobs and recent failures from channel_job.

queue-health
Click Load queue & schedules to fetch data.
IDConnectionTypeStatusRequested
Not loaded.

Create schedule

UTC cron (minute hour day month weekday). Example: 0 3 * * * daily 03:00.

channel_schedule
Ready.

Schedules

cron
IDConnectionTaskCronEnabledLast run
Click Load queue & schedules.