Images and Files

Wash: Blog Manager handles automatic image and file synchronization from WordPress to Shopify, including optimization, CDN delivery, and proper URL replacement.

How Image Sync Works

Sync Process

WordPress Media Library
        │
        ▼
┌─────────────────────┐
│ Image Detection     │
│ - Featured image    │
│ - In-content images │
│ - Gallery images    │
│ - ACF image fields  │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Processing          │
│ - Resize (optional) │
│ - Optimize          │
│ - Format conversion │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Upload to Shopify   │
│ - Files API         │
│ - CDN storage       │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ URL Replacement     │
│ - Update content    │
│ - Update metafields │
└─────────────────────┘

What Gets Synced

Image TypeAuto-SyncedNotes
Featured imageYesBecomes article image
Content imagesYesURLs replaced with Shopify CDN
GalleriesYesEach image uploaded
ACF imagesYesIf mapping configured
Background images (CSS)NoMust be manual
External URLsNoAlready hosted elsewhere

Configuration

Enable Image Sync

  1. Go to Wash: Blog Manager > Settings
  2. Find Images & Files section
  3. Toggle Enable Image Sync to On

Image Settings

SettingDescriptionDefault
Sync featured imagesInclude post featured imageOn
Sync content imagesUpload images from post contentOn
Sync galleriesUpload gallery imagesOn
Max widthResize images wider than this2048px
Max heightResize images taller than this2048px
QualityJPEG compression (60-100)85
Convert to WebPUse modern formatOn
Preserve originalKeep original in ShopifyOff

File Settings

SettingDescriptionDefault
Sync attachmentsInclude PDF, docs, etc.Off
Max file sizeSkip files larger than20MB
Allowed typesFile extensions to syncpdf, doc, docx

Image Processing

Automatic Optimization

Wash: Blog Manager optimizes images during sync:

Original Image (5MB, 4000x3000)
        │
        ▼
Resized (max 2048px wide)
        │
        ▼
Compressed (quality 85)
        │
        ▼
Converted to WebP (if enabled)
        │
        ▼
Uploaded to Shopify (500KB)

Size Limits

ConstraintLimit
Max file size20 MB
Max dimensions4472 x 4472 px
Min dimensionsNo limit
Recommended2048px max width

Supported Formats

Input (WordPress):
  • JPEG / JPG
  • PNG
  • GIF (static and animated)
  • WebP
  • BMP
  • SVG (limited support)
Output (Shopify):
  • JPEG (converted from most formats)
  • WebP (if enabled)
  • PNG (if transparency needed)
  • GIF (animated preserved)

URL Handling

Automatic URL Replacement

Content image URLs are automatically updated:

Before (WordPress):
<img src="https://yourblog.com/wp-content/uploads/2024/01/hero-image.jpg" />
After (Shopify):
<img src="https://cdn.shopify.com/s/files/1/0123/4567/8901/files/hero-image.jpg" />

Featured Image

WordPress featured image becomes Shopify article image:

{{ article.image | image_url: width: 800 }}

Responsive Images

Wash: Blog Manager preserves responsive image markup:

WordPress srcset:
<img
  src="image-800.jpg"
  srcset="image-400.jpg 400w, image-800.jpg 800w, image-1200.jpg 1200w"
/>
Shopify (using image_url filter):
<img
  src="{{ image | image_url: width: 800 }}"
  srcset="
    {{ image | image_url: width: 400 }} 400w,
    {{ image | image_url: width: 800 }} 800w,
    {{ image | image_url: width: 1200 }} 1200w
  "
/>

Managing Images

Image Dashboard

View synced images:

  1. Go to Wash: Blog Manager > Media
  2. See list of synced images
┌──────────────────────────────────────────────────────────────────┐
│ Synced Media                                                     │
├────────────────┬──────────┬───────────┬───────────┬─────────────┤
│ Image          │ Original │ Optimized │ Status    │ Article     │
├────────────────┼──────────┼───────────┼───────────┼─────────────┤
│ hero-image.jpg │ 2.5 MB   │ 450 KB    │ ✓ Synced  │ Post Title  │
│ product-1.png  │ 1.8 MB   │ 320 KB    │ ✓ Synced  │ Post Title  │
│ infographic... │ 5.2 MB   │ Error     │ ⚠ Failed  │ Post Title  │
└────────────────┴──────────┴───────────┴───────────┴─────────────┘

Re-sync Images

To re-upload images:

  1. Select article(s) in Wash: Blog Manager > Posts
  2. Click Re-sync Images
  3. Wait for processing

Clear Image Cache

Remove cached image data:

  1. Go to Wash: Blog Manager > Settings > Advanced
  2. Click Clear Image Cache
  3. Next sync will re-process all images

Advanced Features

Lazy Loading

Wash: Blog Manager preserves lazy loading attributes:

<img src="image.jpg" loading="lazy" />

Alt Text Sync

Image alt text is preserved:

<!-- WordPress -->
<img src="image.jpg" alt="Product description" />

<!-- Shopify -->
<img src="cdn-image.jpg" alt="Product description" />

Configure alt text handling:

OptionBehavior
PreserveKeep WordPress alt text
GenerateUse filename if empty
OverrideUse post title

Caption Sync

Figure captions are converted:

WordPress:
<figure>
  <img src="image.jpg" alt="Description" />
  <figcaption>Image caption text</figcaption>
</figure>
Shopify (preserved):
<figure>
  <img src="cdn-image.jpg" alt="Description" />
  <figcaption>Image caption text</figcaption>
</figure>

External Images

By default, external images are not synced:

<!-- Not synced - already on external CDN -->
<img src="https://images.unsplash.com/photo-123456.jpg" />
Option: Enable Internalize External Images to download and re-upload external images.

File Attachments

Supported File Types

TypeExtensionsSync Support
Documentspdf, doc, docxYes
Spreadsheetsxls, xlsx, csvYes
Presentationsppt, pptxYes
ArchiveszipYes
Audiomp3, wavYes (limited)
Videomp4No (size limits)

File Sync Configuration

  1. Go to Wash: Blog Manager > Settings > Files
  2. Enable Sync Attachments
  3. Select allowed file types
  4. Set size limits

Linking to Files

Files are uploaded to Shopify's Files section:

<a href="{{ 'document.pdf' | file_url }}">Download PDF</a>

Performance Optimization

Batch Processing

Large image sets are processed in batches:

100 images to sync
├── Batch 1: images 1-20 (processing...)
├── Batch 2: images 21-40 (queued)
├── Batch 3: images 41-60 (queued)
├── Batch 4: images 61-80 (queued)
└── Batch 5: images 81-100 (queued)

CDN Benefits

Shopify's CDN provides:

  • Global edge locations
  • Automatic WebP serving
  • Responsive image transforms
  • Fast delivery

Image Transform Parameters

In your theme, use Shopify's image_url filter:

{{ image | image_url: width: 400 }}
{{ image | image_url: height: 300 }}
{{ image | image_url: width: 400, crop: 'center' }}

Troubleshooting

Image Not Uploading

Check:
  • Image file size under 20MB
  • Supported format
  • WordPress media library accessible
  • Shopify API not rate limited

Image Quality Issues

If images look worse:
  1. Increase quality setting (85-95)
  2. Disable WebP conversion
  3. Increase max dimensions
  4. Check original image quality

Broken Images After Sync

Check:
  • URL replacement completed
  • Article content saved
  • No caching issues (clear cache)

Sync Taking Too Long

Solutions:
  1. Reduce max image dimensions
  2. Enable batch processing
  3. Sync during low-traffic times
  4. Reduce number of images per post

File Size Exceeded

Error: "File exceeds 20MB limit" Fix:
  1. Optimize image before upload to WordPress
  2. Enable compression in settings
  3. Reduce max dimensions

Best Practices

  1. Optimize before upload - Use optimized images in WordPress
  2. Use descriptive filenames - Better SEO and organization
  3. Add alt text - Accessibility and SEO
  4. Set appropriate dimensions - Don't upload 6000px images for 800px display
  5. Use WebP - Modern format, better compression
  6. Monitor sync status - Check for failed uploads
  7. Clean up unused images - Reduce storage costs

Related Documentation