PostPrep
← Blog
2026-06-13

How Candle Makers Can Use Canva Bulk Create for Product Posts, Scent Collections, and Wholesale Catalogs

Draft — Post #27 · Target keyword: canva bulk create candle makers · Meta: Turn your scent lineup into product posts, collection drops, and wholesale catalog pages from one spreadsheet. The Canva Bulk

Pete B.
Pete B.
Founder, Postprep

Draft — Post #27 · Target keyword: canva bulk create candle makers · Meta: Turn your scent lineup into product posts, collection drops, and wholesale catalog pages from one spreadsheet. The Canva Bulk Create workflow for candle makers.

You poured a new seasonal line. Eight scents, three sizes each, a couple of gift sets. Now every one of those needs a product post for Instagram, a clean tile for your shop, a price card for the wholesale deck, and a row in the line sheet you send to stockists.

That is the same layout repeated dozens of times with a different photo, name, scent note, and price. You already know Canva Bulk Create is built for this kind of repetitive design work. You also know what happens the first time you hand it a spreadsheet with your photo links in a column: Canva ignores the URLs and hands you a stack of designs with empty photo slots.

This post walks through the full Canva Bulk Create candle makers workflow, the one step Canva will not do on its own, and a repeatable rhythm you can run every time you launch a new scent.

Why Canva Bulk Create Stalls for Candle Makers

A candle business runs on photos. Jar shots on a linen backdrop. Flat lays with dried botanicals. Lifestyle shots of the candle lit on a nightstand. Label close-ups. Those images live as URLs somewhere already — your Shopify or Etsy product pages, a Google Drive folder, a Dropbox link, your own website CDN.

Canva Bulk Create handles the text side without any trouble. Drop in a column of scent names, burn times, sizes, or prices and Canva merges them into your template cleanly.

Image URLs are the wall everyone hits. Canva's Bulk Create only accepts images that are physically embedded inside the XLSX file as binary data, in a format called DrawingML. A URL is just text to Canva. It either prints the raw link as a string inside your design or leaves the photo frame blank. We covered the technical reason in Why Canva Bulk Create Ignores Image URLs.

For a candle maker that is the difference between a working launch workflow and a dead end. A lineup of 24 product variations with photo URLs will not render those photos unless they are embedded inside the XLSX before you upload to Canva.

The Manual Workaround Most Candle Makers Try First

The common hack is to do it by hand in Excel. Open the spreadsheet, click each image cell, use Insert > Picture > Place in Cell, point at the file on your laptop, then repeat for every product. That works in theory if every jar shot is already downloaded, cropped to the same size, named to match the row, and sitting in one folder.

In practice your photos are scattered across Shopify product pages, a Google Drive shoot folder, and your phone's camera roll. By the time you have downloaded, renamed, and inserted 24 photos by hand, you could have packed a day's worth of orders.

The other hack is the =IMAGE() formula in Google Sheets. We explained why that one fails for Bulk Create in Why =IMAGE() Doesn't Work for Canva Bulk Create. Short version: =IMAGE() is a live cell reference, not real embedded image data. When Canva parses the file it sees nothing in that cell.

What You Need Before You Start

Two things have to be in place.

A Canva template per asset type. Most candle makers cycle through a small set of recurring designs. The common ones look like this. A product post for social with the candle photo, scent name, and a short scent-note line. A shop tile or listing graphic with the photo, name, size, and price. A scent-collection or new-arrivals card. A wholesale line sheet row with photo, SKU, case pack, and wholesale price. A "back in stock" or "last chance" promo post.

Each template needs Canva Bulk Create placeholders for the text variables like {{scent_name}}, {{scent_notes}}, {{price}}, {{size}}, plus an image element for the product photo.

A single source-of-truth spreadsheet for your lineup. One row per output design. Columns for every text field plus one column holding the direct image URL.

If you already keep your catalog in Shopify, Etsy, Airtable, or a Google Sheet, you are most of the way there. The only column you may need to add is a direct URL to each product photo. We have written about clean spreadsheet prep for Etsy sellers and Shopify stores, and the same rules apply here: one row per output, one column per field, image URLs in their own column.

Worth saying plainly: some assets are text-only and need no conversion at all. A quote card or an all-text sale announcement runs through Bulk Create with no image step. The conversion only matters when a real product photo has to land in the design.

Step 1: Collect Your Product Photo URLs

This is the step that eats the most time, so it is worth doing in one pass. Each source exposes URLs a little differently.

Shopify or Etsy. Open the product or listing, right-click the main photo, and copy the image address. Both serve images from a CDN at a usable URL.

Google Drive. Convert the share link to a direct URL using the format https://drive.google.com/uc?id=FILEID&export=download, or copy the photo to a public folder on your own site.

Dropbox. Change the trailing ?dl=0 on the share link to ?raw=1 to return the raw image instead of the preview page.

Your own website or CDN. Those URLs already work as-is.

Drop every URL into one column in the spreadsheet. Name it photo_url or image_url and keep the convention consistent.

Step 2: Build the Candle Lineup Spreadsheet

A typical candle maker's bulk sheet looks like this.

scent_namescent_notessizepriceskuphoto_url
Cedar & Smokecedarwood, vetiver, ember8 oz$28CS-08https://cdn.myshop.com/.../cedar.jpg
Fig & Ferngreen fig, moss, white tea8 oz$28FF-08https://cdn.myshop.com/.../fig.jpg
Sea Salt Nerolisea salt, neroli, driftwood11 oz$36SN-11https://cdn.myshop.com/.../neroli.jpg

Save it as CSV or XLSX. Column names do not have to match your Canva template exactly because you map them in the Bulk Create panel, but matching names lets Canva auto-connect them in one click.

Step 3: Convert the Spreadsheet With Postprep

This is the conversion step Canva refuses to do.

Go to postprep.app, upload your CSV, and pick the column that holds your photo URLs. Postprep fetches each URL, downloads the image, and embeds it inside the XLSX as DrawingML, the binary format Canva actually reads. Every other column passes through untouched.

A full seasonal lineup of 30 to 50 rows takes under a minute. The free tier covers 100 rows with no account required.

Step 4: Bulk Generate in Canva

Open your product post template in Canva. Make sure you are on a plan that supports Bulk Create. Per Canva's documentation that means Pro, Teams, Business, Enterprise, Education, or Nonprofits, and Bulk Create runs on desktop only. (Plan eligibility is worth confirming on Canva's own help center, since they adjust tiers from time to time.)

In the left panel click Apps, then Bulk Create. Click Upload data and choose your converted XLSX. Drag each column onto its matching placeholder, or use Auto-connect if your column names already match the placeholders.

Click Generate designs. Canva produces one finished design per row, with the product photo, scent name, notes, and price already merged.

If you run three templates off the same lineup, say a social post, a shop tile, and a wholesale line sheet row, take the same XLSX into each template and run Bulk Create three times. One spreadsheet, three sets of branded assets.

Download as a ZIP, as PNG for social and shop, or PDF for the printed wholesale deck. The image data is embedded at the original resolution, so it holds up at print sizes when your source photos are high enough resolution.

A Realistic Candle Maker Workflow

Here is what the rhythm looks like across a launch.

Shoot day. Photograph the new line, upload the edited shots to your shop or a Drive folder, and drop the direct photo URLs into your master sheet next to each scent's name, notes, size, and price.

Launch prep. Run the sheet through Postprep once. Generate the product posts and shop tiles in Canva and schedule the social rollout.

Wholesale push. Take the same converted XLSX into your line sheet template, generate one catalog row per product, export to PDF, and send the deck to stockists.

Restocks and promos. When a scent comes back or goes on sale, edit those rows, re-run Postprep, and regenerate just the affected posts.

The whole cycle is roughly 20 to 30 minutes of spreadsheet work plus a few minutes per template in Canva, whether you launch 6 scents or 60. By hand at scale, that is a multi-hour afternoon every launch.

Frequently Asked Questions

Can I use the same spreadsheet for social posts and my wholesale catalog?

Yes. Build one master lineup sheet, convert it once with Postprep, then take the converted XLSX into each template separately. Your social post template and your line sheet template both read the same data and photos.

My candles come in multiple sizes. How do I handle that?

One row per output design. If Cedar & Smoke comes in 8 oz and 11 oz and you want a post for each, that is two rows with the same photo URL and different size and price values. Canva generates one design per row.

Do I need image conversion for text-only posts?

No. A sale announcement, a restock heads-up, or a quote card with no product photo runs through Bulk Create directly. The conversion step only matters when a real photo has to appear in the design.

Can I pull photos straight from my Etsy or Shopify listings?

Yes. Right-click the listing photo and copy the image address into your sheet's photo column. Postprep fetches it from there. See the Etsy and Shopify walkthroughs for the per-platform details.

What if a photo URL is broken or the cell is empty?

Leave the cell blank for rows with no photo yet and Postprep skips the embed for that row, leaving the placeholder visible in Canva. Fix or add the URL later and re-run the job for those rows.

The Short Version

Canva Bulk Create does the repetitive design work for every product post, collection card, and wholesale line sheet in your candle business. The one thing it does not do is turn image URLs into embedded photos inside the XLSX. Postprep is that missing step.

Build one lineup sheet per launch. Convert it with Postprep. Bulk generate in Canva. Every scent gets its posts, tiles, and catalog rows without another late night in the studio.


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