PostPrep
← Blog
2026-06-13

How to Use Canva Bulk Create to Build a Product Catalog From a Spreadsheet

Draft — Post #13 · Target keyword: canva bulk create product catalog · Meta: Turn a product export into a full catalog of branded graphics with Canva Bulk Create. The workflow for product cards, price

Pete B.
Pete B.
Founder, Postprep

Draft — Post #13 · Target keyword: canva bulk create product catalog · Meta: Turn a product export into a full catalog of branded graphics with Canva Bulk Create. The workflow for product cards, price sheets, and catalog pages — images included.

You have a product export sitting in a spreadsheet: 80 SKUs, each with a name, price, description, and an image URL. You want a clean branded card for every product — for a lookbook, a wholesale line sheet, a catalog PDF, or a month of product posts. The design is identical every time. Only the content changes.

This is exactly what Canva Bulk Create is for. Build one product card template, connect the export, generate 80 cards in one pass. Then you hit the wall everyone hits: the prices and names merge perfectly, but the product photos never show up.

This post walks through the full Canva Bulk Create product catalog workflow, why the images fail, and how to get a complete catalog out the door in under an hour.

Why Canva Bulk Create Stalls on Product Catalogs

A product catalog is the perfect Bulk Create job because it is so repetitive. Every card has the same layout — photo, name, price, maybe a SKU or a short blurb — and the only thing that differs row to row is the data. Text fields merge without any trouble.

The product photo is the problem. Your images live as URLs — in a Shopify export, a WooCommerce CSV, a supplier feed, a PIM, or a folder of hosted images. Canva Bulk Create cannot pull an image from a URL. It only renders images embedded inside the uploaded XLSX as binary data in the DrawingML format. A URL is plain text to Canva, so it prints the link or leaves the image frame empty. We explained the mechanics in Why Canva Bulk Create Ignores Image URLs.

For a catalog this is the whole job. A line sheet of 80 products with photo URLs renders 80 blank frames unless those photos are embedded in the file before Canva opens it.

The Manual Workaround Most People Try First

The standard hack is to embed each image by hand in Excel: click the cell, Insert > Picture > Place in Cell, find the file, repeat per SKU. For a real catalog it means downloading and renaming dozens or hundreds of images, then placing each one in the correct row. A 200-SKU catalog turns into an afternoon of clicking.

The Google Sheets =IMAGE() formula is the other dead end: it shows the photo in the cell but never embeds the actual image bytes — covered in Why =IMAGE() Doesn't Work for Canva Bulk Create.

What You Need Before You Start

A Canva product card template. One reusable design with placeholders for the fields that change: an image frame for the product photo and text placeholders like {{product_name}}, {{price}}, {{sku}}, and {{description}}.

A clean product export. One row per product. Columns for each text field plus a column holding the direct image URL. If your products live in Shopify, WooCommerce, Squarespace, Etsy, or a supplier feed, you can export most of this directly. The same one-row-per-output rule we use for Shopify stores and WooCommerce shops applies.

Step 1: Export and Clean Your Product Data

Shopify. Products > Export gives a CSV with an Image Src column holding the direct photo URL. Keep that, plus title, price, and any description fields.

WooCommerce. Use Products > Export. The Images column holds URLs; if it contains several per product separated by commas, split out the first one into its own column.

Generic supplier feed or PIM. Most feeds expose a primary image URL field. Keep the primary image and the text fields you need.

Trim away everything the card does not use.

Step 2: Build the Catalog Spreadsheet

product_namepriceskudescriptionimage_url
Linen Throw Pillow$48LP-014Stonewashed, 18x18https://cdn.store.com/.../pillow.jpg
Ceramic Mug$22CM-220Hand-glazed, 12ozhttps://cdn.store.com/.../mug.jpg
Wool Blanket$96WB-330Merino, queenhttps://cdn.store.com/.../blanket.jpg

Save as CSV or XLSX. Matching your headers to the template placeholder names lets Canva auto-connect the fields in one click.

Step 3: Convert the Export With Postprep

Go to postprep.app, upload your CSV, and pick the column with the image URLs. Postprep fetches each product photo, downloads it, and embeds it inside the XLSX as DrawingML. Prices, names, SKUs, and descriptions pass through unchanged.

An 80-row catalog converts in under a minute. The free tier covers your first 100 rows with no account; larger catalogs run in a few quick passes.

Step 4: Bulk Generate the Catalog in Canva

Open your product card template in Canva on desktop, on a plan that supports Bulk Create. Open Apps > Bulk Create, click Upload data, and choose the converted XLSX.

Map each column to its placeholder — image_url to the photo frame, the rest to the text fields — or use Auto-connect. Click Generate designs. Canva produces one finished, fully branded card per product with the photo already in place.

Export as PNG or JPG for individual product posts, or PDF for a print-ready line sheet.

A Repeatable Catalog Workflow

New collection drops. Add the new SKUs as rows, re-export, re-convert with Postprep, regenerate. The template never changes.

Price or seasonal updates. Update the price column, regenerate the whole catalog in one pass.

Multiple output formats. Keep a square card template for social and a vertical card template for a print line sheet. Run the same converted XLSX through both.

A full 100-SKU catalog refresh is about 15 minutes of spreadsheet work and a few minutes in Canva.

Frequently Asked Questions

My export has multiple images per product. Which one does Canva use?

Bulk Create maps one image column to one image frame. Split your primary image into its own column. For a second photo, add a second image column and frame, and convert both with Postprep.

Can I put several products on one catalog page?

Yes, but structure the sheet for it. For a grid, build a multi-up template with several image frames (one row per page), or generate one card per product and lay them out afterward. One row per output design is the rule.

Will the product photos look sharp in a printed catalog?

Yes. Postprep embeds the image at its original resolution. If your store hosts thumbnails, point the URL column at the full-size image.

Does this work for wholesale line sheets with cost and MSRP columns?

Yes. Add as many text columns as you need — cost, MSRP, minimum order, case pack — and place each in the template.

My products are on Etsy. Can I still build a catalog?

Yes. Export your listings into a sheet with a direct image URL per item. See Canva Bulk Create for Etsy for the export details.

Can I regenerate just the products that changed?

Yes. Make a sheet of only the changed rows, convert and generate those, and swap them in.

The Short Version

Canva Bulk Create is built for product catalogs — one template, one row per product, a full set of branded cards in one pass. The only thing it cannot do is turn your product image URLs into embedded photos inside the XLSX. Postprep is the missing step.

Export your products, convert the image column with Postprep, map it to your card template, and generate.


Try it free at postprep.app — 100 rows, no account required.

Try it free

Canva Bulk Create with real embedded images.

Upload your CSV or XLSX. Select your image column. Download a Canva-ready file. Free for up to 100 rows — no account needed.

Try Postprep →
Pete B.

Written by

Pete B.

Pete is a small business owner who got tired of social media eating his evenings. Posting product graphics across channels used to mean opening Canva, dropping in each image by hand, and repeating that for every listing and every platform. He kept hitting the same wall: Canva Bulk Create can save hours, but it refuses to read image URLs from a spreadsheet — turning a 5-minute workflow into a 2-hour copy-paste job. So he built Postprep to fix that one specific limitation, and writes about bulk content workflows, design tool limitations, and shipping social content without burning out.

Discussion