What a buyer expects to see
Before the tools: a line sheet is not a lookbook and not your online store. Buyers scan it in a trade-show aisle or forward it to a colleague. Every line sheet that gets orders has the same things in the same places:
- One image per style, small, on a white background. Not six lifestyle photos.
- Style name and SKU, so the buyer can write it on an order form.
- Sizes and colours as a grid, not a list of 40 variants. A size × colour matrix with the SKU in each cell is the format sales reps use.
- Wholesale price and suggested retail, side by side. Buyers compute margin in their head.
- Minimums and pack sizes if you have them, and your terms (lead time, payment terms, where to order) once, on the first or last page.
- Your brand, season and contact on every page, because pages get separated.
Keep this list in mind when you judge the methods below. Most of the effort is not making the PDF, it is getting the SKU grid and the wholesale price onto the page without typing them.
Method 1: Export a CSV, lay it out in Canva or InDesign
This is the method the old guides describe, and it is still the most common way to create a wholesale line sheet from Shopify.
- In your Shopify admin go to Products, filter to the collection you want (or select the products), and click Export. Choose "CSV for Excel, Numbers, or another spreadsheet program". For more than one page of products the file is emailed to you.
- Open the CSV. The columns you need are
Handle,Title,Option1 Value/Option2 Value(usually size and colour),Variant SKU,Variant Price,Variant Compare At Price,Variant BarcodeandImage Src. Delete the rest. Shopify exports one row per variant, so a product with 8 sizes × 5 colours is 40 rows. - Add a wholesale price column. Shopify's CSV does not have one unless you store it in a metafield and export metafields too. Most brands type a formula:
=ROUND(Variant Price*0.5,2). - Collapse variants into one row per product with a pivot table (handle as rows, size as columns, SKU as values). This is the step people skip, and it is why so many line sheets list every variant in a column that runs off the page.
- Lay it out. In Canva, use a table element and paste. In InDesign, use Data Merge (Window → Utilities → Data Merge) with the CSV as the source and
@Imagefor the image column; the images must be downloaded first because Data Merge wants local files. Export as PDF.
Time: 2-4 hours for 50 products the first time, 1 hour each time after that if you keep the layout. Where it breaks: around 200 products the pivot step and the image download become a half-day, and any price change means doing it all again. If you have a graphic designer and under 100 styles a season, this is fine and it produces the prettiest result.
Method 2: Use a line sheet or PDF catalog app
Apps read your products through Shopify's API and lay them out in a template. You pick a collection, a template, the wholesale price source, and press a button. The good ones save the definition so you can regenerate the same catalog with today's prices in one click.
What to check before you install one, because this is where they differ:
- Product limit per catalog. Several apps stop at 100 or 250 products on their cheaper plans, and some time out on 1,000. If you have a big catalog, test with your biggest collection on day one.
- Variants as a grid. Many "catalog" apps print one block per product with the price and skip the size × colour matrix entirely. For apparel, footwear and anything with variants that is a deal-breaker.
- Where the wholesale price comes from. A metafield, a percentage, or a Shopify B2B catalog. If the app only prints the retail price, you are back to the spreadsheet.
- Same output every time. Regenerate twice without changing anything. If the pages shift, you cannot tell buyers "page 12".
- What it reads. A line sheet app needs read access to products. It should not ask for your customers or orders.
Time: 10 minutes to set up, under a minute per catalog after that. Where it breaks: when you want a design that is not one of the templates. Apps give you a clean, consistent document, not a bespoke one.
This site is published by the makers of Sheetfolio, which is one of these apps. It does the SKU matrix, takes the wholesale price from a metafield or a percentage, and renders 1,500 products in under a minute. There are others; the checklist above applies to all of them, including ours.
Method 3: Print your store to PDF
Open a collection page in your online store, press Ctrl+P (Cmd+P on a Mac), choose "Save as PDF". You get your storefront on paper.
It works for a quick internal list. It does not work as a line sheet because the page shows retail prices, no SKUs, no size grid, and your theme's navigation and footer on every page. Some brands make a hidden collection page with a dedicated template that prints a table; that is a few hours of Liquid work and only pays off if you regenerate often. If you go this route, set the template's print stylesheet to hide the header and footer and to put the collection name in a running header.
Time: 1 minute, or a day if you build a print template. Where it breaks: immediately, for anything a buyer will order from.
Method 4: Pull the data through the API and generate it yourself
If you have a developer or an agency, the Admin GraphQL API returns products with variants, selected options, prices, SKUs, barcodes and image URLs, 250 products per page. From there you can fill an HTML template and print it to PDF with headless Chrome, or feed a reporting tool. B2B wholesale prices live in catalogs and price lists and are also readable through the API.
This is how the apps in method 2 work internally. Doing it yourself makes sense when the line sheet has to match a corporate template exactly, or when it has to be merged with data that is not in Shopify (stock from an ERP, pricing tiers per buyer).
Time: 1-3 days of development, then free. Where it breaks: maintenance. Someone has to own it when the API version changes.
Which one should you use
| You have | Use |
|---|---|
| Under 100 styles, a designer, one or two catalogs a year | CSV → InDesign or Canva |
| 100-2,000 products, variants, prices that change, several buyers | An app with a SKU matrix and a saved-catalog refresh |
| A quick list for yourself today | Print to PDF |
| A developer and a non-standard layout or external data | The API |
Whatever you pick, fix the data first. A line sheet with 17 products missing images and 4 without SKUs costs you orders no matter how it was made. Export the CSV once, sort by the SKU column and the Image Src column, and fill the blanks in Shopify before you generate anything. (Sheetfolio's preflight does this check for you and links to each product, but a spreadsheet filter works too.)
Frequently asked questions
Does Shopify have a built-in line sheet or PDF catalog export?
No. Shopify exports products as CSV and shows B2B prices to logged-in buyers, but it has no feature that produces a line sheet, catalog or price list as a PDF. You make it from the CSV, with an app, or through the API.
Is there a wholesale price column in the Shopify product CSV?
Not by default. The export has Variant Price and Variant Compare At Price. A wholesale price exists only if you store it in a product or variant metafield and include metafields in the export, or compute it in the spreadsheet as a percentage of the retail price.
How many products can a line sheet realistically have?
Buyers work from line sheets of a few hundred pages without complaint as long as the file opens quickly and the pages are consistent. The practical limit is the method: manual layout becomes a day's work around 200 products, while a generated PDF of 1,500 products with images is about 300 pages and 14 MB.
Related: Shopify B2B on Basic, Grow and Advanced · B2B catalog vs line sheet.
Make the Line Sheet from Your Shopify Products
Pick a collection, choose a template, press Generate. SKU matrix, wholesale prices, your branding. Free for up to 100 products.
Install Sheetfolio on Shopify