How to Sync Product Images from Business Central to WooCommerce Using Power Automate
Syncing Product Images from
Business Central to WooCommerce
How to extend your Power Automate product sync to pull item pictures from BC and push them into your WooCommerce store automatically.
You’ve got your products syncing from Business Central to WooCommerce. Prices and stock levels are flowing. But your store is full of placeholder images because your product photos are sitting in BC, not in WooCommerce. Let’s fix that.
How Business Central Stores Product Images
In Microsoft Dynamics 365 Business Central, every Item card has a Picture field. This is the image you see in the Item list, on printed documents, and anywhere BC displays the product visually. Most BC users upload product photos directly to the Item card through the web client or via an import process.
Behind the scenes, BC stores these images as binary data attached to the Item record. The important thing for integration purposes is that the Dynamics 365 Business Central connector in Power Automate can retrieve this image data using a dedicated action, so your flow can read it directly without any custom code.
Retrieving Item Pictures in Power Automate
The Dynamics 365 Business Central connector provides a specific action for working with images:
BC Connector Action: “Get an image, file or document (V3)”
This action retrieves the binary content of an image attached to a BC record. You select the API category, then navigate to the items/picture path. The action returns the raw image binary, which you can then pass to a staging location or directly to WooCommerce.
To check whether an item actually has a picture before trying to retrieve it, use the “Find records (V3)” action on the items table. The item record includes metadata about whether a picture exists, letting you add a condition in your flow to skip items without images.
Strategy: Extending the Product Sync Flow
If you’re using the BC + WooCommerce Starter Kit, you already have a Bulk Sync Products & Prices flow that loops through BC items and updates their corresponding WooCommerce products. Adding image sync means extending that flow with a few additional steps inside the loop.
Here’s the high-level approach:
- For each BC item in the sync loop, check whether the item has a picture attached.
- If a picture exists, retrieve the image binary from BC using the connector.
- Upload the image to a temporary staging location (Azure Blob Storage or SharePoint).
- Pass the staged image URL to WooCommerce when updating the product.
Step-by-Step: Adding Image Sync to Your Flow
Step 1: Retrieve the Item Picture
Inside your product sync loop (after you’ve fetched the item details), add a “Get an image, file or document (V3)” action from the Business Central connector. Configure it with:
- Environment: Your BC environment name
- Company: Your BC company
- API category: The standard BC API (v2.0)
- Path: Navigate to
items > pictureusing the path picker
The action returns the image as binary data. Wrap this in a Condition action first to check whether the item has a picture, so the flow doesn’t fail on items without one.
Step 2: Stage the Image
WooCommerce needs a URL to download the image from. Since the BC image binary isn’t publicly accessible, you need to upload it to a staging location. Two good options:
Option A: Azure Blob Storage
Add an Azure Blob Storage > Create blob (V2) action. Write the BC image binary to a container (e.g., product-images/ITEM001.jpg). The blob URL becomes the image source you pass to WooCommerce.
Best if you already have an Azure subscription.
Option B: SharePoint
Use the SharePoint > Create file action to upload the image to a document library (e.g., “Product Image Staging”). Then use SharePoint > Create sharing link to generate a publicly accessible URL.
Best if you’re already on Microsoft 365 with SharePoint.
Watch out: SharePoint sharing links
SharePoint sharing links sometimes redirect through Microsoft’s authentication layer. WooCommerce needs to be able to download the file directly. Test with a single product first to make sure the URL resolves to the actual image file.
Step 3: Update the WooCommerce Product with the Image
Use the “Update an item of the specified type” action from the WooCommerce connector. Set the resource type to products and provide the product ID. In the product update fields, set the images property to include the staged image URL.
The images field accepts an array. Each image object needs a src property pointing to the staged URL. You can also include name and alt text for SEO:
src: The full URL to your staged image (Azure Blob or SharePoint link)name: A filename for the image (e.g., the BC item number)alt: Alt text for accessibility and SEO
WooCommerce will download the image from that URL, sideload it into the WordPress Media Library, and attach it to the product. The first image in the array becomes the featured image; any additional images are added to the product gallery.
Handling Image Updates vs. Initial Sync
There’s an important distinction between syncing images for the first time and updating them later:
- Initial sync: Every product needs an image. Your flow should process all items and upload all available pictures.
- Ongoing updates: You probably don’t want to re-upload the same image every time the product sync runs. That wastes bandwidth and creates duplicate media entries in WordPress.
Tip: Track changes with a mapping table
Create a SharePoint list or Dataverse table that stores the BC item number, the date the image was last synced, and a hash or identifier for the current image. On each sync run, compare the stored value against BC’s current picture metadata. Only re-upload the image when it has actually changed. This keeps your flow fast and avoids duplicate images in WordPress.
What About Multiple Images?
Business Central’s standard Item card supports only one picture per item. If you need multiple product images in WooCommerce (gallery images, variant photos, lifestyle shots), you have a few options:
- BC Item Media extensions: Some BC environments have custom extensions or the newer media handling APIs that support multiple images per item. If your BC partner has set this up, you can retrieve all media for an item using the “Find records (V3)” action pointed at the item media table, then sync each one as a WooCommerce gallery image.
- Store additional images outside BC: Many businesses keep their full product photo sets in a separate DAM (Digital Asset Management) system, a shared drive, or a cloud folder. In that case, sync the primary image from BC and manage gallery images directly in WooCommerce or pull them from the DAM via a separate process.
- Use a naming convention in blob storage: Upload all product images to a blob container with a consistent naming pattern (e.g.,
ITEM001-01.jpg,ITEM001-02.jpg) and have your flow use the Azure Blob Storage > List blobs action to find all matching images when syncing each product.
Practical Considerations
Image Size & Quality
BC item pictures are often uploaded at whatever resolution the user had on hand. Very large images (8000x6000px) slow down the import and waste storage. Consider routing images through an Azure Function or Logic App to resize them, or use a WordPress plugin like Imagify or ShortPixel to optimize after import.
Connector Throttling
The BC connector allows 300 calls per 60 seconds. Each image retrieval counts as a call. For large catalogs, add a short delay between iterations or process images in batches. The WooCommerce connector also has practical limits depending on your hosting.
Always handle items without images
Not every BC item will have a picture. Add a Condition action in your flow that checks for the existence of a picture before trying to retrieve and upload it. If no picture exists in BC, the flow should skip the image step and move on to the next item. Without this check, your flow will fail on the first item that has no image.
Summary: The Complete Flow Pattern
Image Sync Flow: Action Sequence
- Trigger: Manual button (or scheduled recurrence)
- BC > Find records (V3): Retrieve all items (table:
items) - Apply to each item:
- Condition: Does this item have a picture?
- If yes > BC > Get an image, file or document (V3): Retrieve image binary from
items/picture - Azure Blob > Create blob (or SharePoint > Create file): Stage the image
- WooCommerce > Update an item of the specified type: Update the product (resource:
products) with the staged image URL in the images field - Optional: Store sync metadata (date, image hash) for change tracking
- Clean up: Optionally remove staged images from temporary storage
Need Help Setting This Up?
The image sync is a customization on top of the starter kit flows. If you want to add it to your integration, make sure you have Power Automate for WooCommerce installed to provide the WooCommerce connector in your Power Platform environment. From there, extending the Bulk Sync Products flow with the actions above is straightforward for anyone comfortable with the Power Automate flow designer.
If you need hands-on help with your specific BC setup, get in touch. We’ve done this for multiple production environments and can get you up and running quickly.
Ready to get started?
Get the starter kit for the base product sync, then extend it with image support using this guide.