<!-- Markdown twin of https://pixelvault.dev/integrations/online-store/ -->

[Integrations](/integrations/) / Online stores

# Automate product images for Shopify and WooCommerce

When a product is created, import its images into PixelVault, then get back a set of ready-made URLs: a white-background marketplace image, listing and product-page sizes, and a thumbnail. These are n8n workflows; no plugin or app is involved, and your store keeps its own images.

## Download a workflow

-   [Shopify: new product → PixelVault → variant URLs](/workflows/pixelvault-shopify-products.json)
-   [WooCommerce: new product → PixelVault → variant URLs](/workflows/pixelvault-woocommerce-products.json)

Both use built-in n8n nodes (the store's trigger node, Split Out, HTTP Request and Set), so no community package is needed and they work on n8n Cloud.

## What the workflow does

1.  The store trigger fires when a product is created and passes along its `images` list.
2.  **One item per image** splits the list, so each image is handled on its own.
3.  **Import into PixelVault** calls `POST https://api.pixelvault.dev/v1/images` with the image URL, `"dedupe": true`, and a folder named after the product SKU (or `product-<id>` when there is no SKU). Folders only allow letters, numbers, hyphens and underscores, so the workflow replaces anything else with a hyphen.
4.  **Variant URLs** builds the transform URLs from the hosted image:

```
marketplace_2000_white  ?segment=foreground&background=white&w=2000&h=2000&fit=pad
listing_640             ?w=640&h=640&fit=cover&fmt=auto
product_page_1200       ?w=1200&fmt=auto
thumb_200               ?w=200&h=200&fit=cover&gravity=auto
```

Each variant is generated on first request and then cached at the edge. See [PixelVault for e-commerce](/for-ecommerce/) for what each recipe does.

## Set it up

1.  Create a PixelVault account and copy a project API key from your [dashboard](/dashboard/). The cut-out and background variant needs a keyed project.
2.  Import the downloaded JSON using n8n's workflow menu, **Import from File**.
3.  Select your Shopify or WooCommerce credential on the trigger node.
4.  Open **Import into PixelVault**. Under Generic Credential Type → Header Auth, create a credential with Name `Authorization` and Value `Bearer YOUR_PIXELVAULT_API_KEY`.
5.  Create one test product and run the workflow before you activate it.

## Write the URLs back

The workflow stops at the variant URLs, because where they go depends on your store. Add a node after it: a Shopify or WooCommerce update node, a Google Sheets row, or a feed export. Reusing the stored URLs avoids importing the same image again; `dedupe` also skips identical files if a product is re-saved.

## Good to know

-   These templates have not been run end to end against a live Shopify or WooCommerce store. Test with one product and check the trigger's output fields, since store payloads can differ by version.
-   The trigger fires on product creation. Add a second trigger on product updates if you also want edited images processed.
-   The source image URL must be a direct https link that serves the image. Redirecting or login-protected URLs are refused.
-   Marketplaces and shopping feeds each have their own image rules. Check the current ones before relying on a variant.
-   Make works the same way with an HTTP module; see the [Make guide](/integrations/make/).

Looking for a Shopify app or WooCommerce plugin instead? [Tell us](/contact/) what you would need from one.
