PIM StudioSurgo Surgical Supply
← Surgo-Ops
Catalogue
Dashboard
Products
Assets
HIDA Intake
New-Item Intake
Field Map
Product Meta Objects
Create a Meta Object
Edit Meta Objects
Assign to Products
Create Values
Collections
Create & Enrich Collections
Push Collections0
Content
FAQ create
Enrich HTML and sell points
Content Pages
Publishing
Sync & Delta
Setup
Metafields
Field mappings
Sync from NS
Reference
About Schema
Prompts
API Usage
Sync Log
Temp
πŸ›  Shopify Image Fix (TEMP)
Settings
TEMPORARY TOOL β€” DELETE WHEN DONE

Shopify Image Fix

Load the new high-res Littmann images, assign them, then replace the old Shopify images family by family. Nothing here touches the main Assets page.

1 Drop the image folder

Pick the top-level folder once. Filenames (your codes) match products; folder names are ignored. CLR- files skipped. Only exact-duplicate files (identical name after the SKU) are auto-removed, keeping the largest. Only needed again here to upload NEW images β€” Step 2/3 remember your last folder across refreshes.

πŸ“‚
Click to choose the image folder
PNG Β· JPG Β· WEBP β€” nested folders supported

2 Assign & enrich

Match links each image to its product by SKU. Enrich writes alt text + SEO filenames. (0 of your uploaded images are in the PIM.)

Drop your folder in step 1 β€” this preview will then show only your uploaded images and confirm they landed in the PIM. It'll keep showing after a refresh too.

3 Replace in Shopify DESTRUCTIVE

πŸ”’ Disabled for safety
A Shopify product's variants can be split across different family folders in the source. Pushing one family only knows about SKUs in that folder, so it can wipe a sibling variant's images that live in a different family. Confirmed happening on Cardio IV's large shared product on 2026-07-02.

For a one-off fix, use a targeted curl against /api/shopify/replace-product-media with a hand-checked product_ids list instead β€” that route still works. Re-enable this button (flip REPLACE_ENABLED in this file) only after the cross-family shared-product grouping is fixed.

Per family: deletes the products' current Shopify images, then pushes the new staged set (batched, but never splitting one Shopify product's variants across two requests). Do Lightweight first, then Cardio IV and Classic III. A product is skipped (not emptied) if it has no staged replacement.

Upload a folder in step 1 to populate families.