TEMP NOTE: One small change since previous instructions:
We can have units in the cells (i.e. 10″ is ok) but it’s important to remove formatting from all the cells before saving as a CSV.


1. Product data management
2. Photo preparation
3. CSV formatting
4. Importing process
5. Updating / Syncing

Red Leaf Website Product Import CSV Template
(File is currently a .xlsx to display instructional formatting. Delete top two rows and save as .csv format.)

This is largely an internal process that requires agreement and consistency among Red Leaf staff.

The key aspects are:

  • A clear and consistent product organizational structure. This means categorization that make sense to customers, and appropriately designating sub-categories (i.e. at what point does a group of products become distinct enough to be a subcategory?)
  • A clear understanding of what an attribute is, how they may or may not create variations, and how to decide which features are attributes and which are just worth mentioning in the description.
  • Generally speaking any feature that defines a product and helps differentiate it from other products in that category / subcategory is an attribute. This can be something unique to a variation such as a measurement (diameter) or just a feature like (what the blade tip is made out of.)
  • Even if an attribute doesn’t create variations, it may be used to filter products in the category view (for example, “Quality Level” for saw blades allows customers to only view a group of products, but each of the “economy” blades is only available in that quality level.)
  • When the products are imported, the images are pulled from the linked locations and uploaded to the media library, but for updating and syncing purposes, those links can’t break, and shouldn’t ever change.
  • Getting the sizing and naming convention correct with the images is very important. Only add links to images that are properly sized, and adhere to the Red Leaf image naming convention.* Ideally ensure meta-data is cleared, or at least doesn’t contain conflicting info.
  • Please don’t upload “temporary” images with improper names. with the plan to do better ones later…it won’t happen. If the images aren’t ready, the product isn’t ready to load.

Image Management Process:

We’ve worked on this for 4 years to keep things semi-organized. Please don’t skip this and mess it up.

1. Add new product images into main top-level product folders in the photostation. Select the ones that will be used on the website (landscape much better than portrait) and COPY (don’t move) them into the corresponding shortlist folder:
Photostation > Z – Website Photos > RedLeafStone.com > Shortlist > Product Category > Product Name

2. Open these images, edit (background removal, colour correcting, etc.) and crop to 930×400 (add a white canvas that size if image is smaller or portrait.)

3. Save at an optimized file size for website use (quality level – 9, file size below 300kb.) Save images with names according to the standard Red Leaf file naming convention.*  IMPORTANT: Files must be in the format .jpg (not .jpeg)
Save into the equivalent place in the main website image folder:
Photostation > Z – Website Photos > RedLeafStone.com > Don’t Touch! > Product Category > Product Name

4. Delete the copies in the “Shortlist” folder. Leave the images in the “Don’t Touch” folder; this is supposed to be a virtual replication of what’s on the server. Copy them to the internal (Apple) server, where they can have an active URL.

5. When each file is properly sized, named, and with a live URL on the server, copy the link into the CSV.

*File Naming Convention: company-category-subcategory-description / company-project-project_name-description

The following notes reference the headings of the CSV Template that’s been provided. Take note of the descriptions for each column in the second row. And make sure to delete the top two rows before saving the file as a CSV
NOTE: It’s vital to fill it in the data properly and without errors. Small mistakes can take a long time to find and fix.

There are three sections of the CSV – Standard Required, Standard Optional, and Attributes


– Need to fill in these. The only exception is if there’s a really simple category that doesn’t have any sub-categories.
– Currently we only go 2 levels deep (cat / sub cat.) but we could and maybe should go 3 levels (sub-sub-category) due to the requirements of loading products together that have similar attributes.

Categories & Sub-categories
– Consistency! Names have to match exactly, including capital letters or not, spacing, etc. Saw Blades and Stone Saw Blades would show up as two different groups of products on the site.)

– Has to be simple and easy to read inside a product box at the category view. All technical info should be in the description. Only include product info in the name that differentiates it from other similar products.

Product Description
– If this is more than a short sentence or two, might be worth the time to use html formatting for bold, bullet points, etc.
– We can automatically include non-variation-causing attribute values in the description if required. No need to write it out. See the saw blades, for example. The Quality level, Segmented vs Continuous, and Blade tip material are all attributes from the table that we put in the description.

Simple vs. Variable
– Either each SKU has it’s own product page or a product has one page with multiple versions to select from based on small differences.
– Some attributes can create variations (diameter of saw blade.) Some attributes don’t create variations (quality level – professional vs economy)

– Can be any unique identifier for each product and each variation, as long as it isn’t used for any other variation.

– Each variation of a product can have a unique image, or just the same image for all versions.
– This field must include a working URL. The process by which the images get saved and uploaded to a server and the link copied is in the images section.
– If the variations do not have unique images, only load an image link into the first line item. All variations will then use that same image. (If you load the same image link into each variation, it will import multiple copies of that image and clog up the media library.)


Like the Standard Required fields, these are just a part of WooCommerce. But with these ones, you don’t have to fill them in.

– There are often just used internally. Sometimes supplier acronyms. Consistency – make sure not to have “HILTI” in one CSV and “Hilti” in another.

Regular Price / Sale Price
– There are the only two fields we have. There has been some confusion in the past about different numbers matching with the FM database. This is the price the customer will be charged.

Tax Status & Class
– Once we get into online sales, we can create unique tax classes and set a status for each group of products.

Shipping Values – weight, length, width, height
– There are package specs…not the dimensions of the product, but rather the size and weight of the box, so the shipping company can calculate the cost of different delivery methods.
*Note…if you want to include a product length/width/height, you have to use a different name for the attribute, such as “Item length” etc. Can’t have two attributes with the same name.

Purchase Note
– If you want to include some special instructions, or a download file etc. that the customer receives after they purchase a product, add it here. (For downloads, add links using html, not files.)


– Can’t have two attributes with the same name, either custom or standard. See note above under Shipping Values.
– Try to keep the attribute names to two words max.
– Order of significance – put the most important attributes first.

– We can actually use symbols, despite earlier reports to the contrary. BUT! we need consistency both inside a single CSV file and across the board with all products. Either the attribute name includes the units – such as “Weight (kg)” – and the values are just numbers, or the title is just the attribute name – “Weight” – and the values include unit designation – “0.25kg”
– We need consistency with how we say the units (Inches = In / in. / “)
– We need consistency with spacing (3in or 3 in)
– Of note, the inches symbol is not the same as a quote mark but it’s easier to use a quote mark…so we should decide witch and stick with it.
– These are mostly internal decisions.

Extra fields
– Any extra info that works better as an attribute than text can be added to the description if needed, as noted in the Product Description section above.

We are using the plugin called WP All Import, with the WooCommerce add-on. This has a significant learning curve, but it’s not excessively difficult. The documentation is good (mostly video demos.)

Until further discussion, Big Picture will set up the imports. When Red Leaf staff is ready to take over, we will facilitate a training session.

Eventually we want: Product data entered into FM > Exports CSV from FM database > Create new import in WP All Import (the image links is a current challenge, along with the FM database needing some work to export properly, but those systems are outside the scope of this documentation.

– After adding to or editing the products in the CSV, it’s important to re-save the newest version in the exact same location, with the same name, so that the URL is exactly the same.

(*Important to confirm that re-saving the file won’t break the link from whatever server it’s hosted on! Updating files breaks the link on the Synology drive, so that’s why we can’t use that location.)

It’s also very important that the columns don’t change. Any fundamental edits to the organization of the data will break the import. Only change cell values and add/remove line items.

Assuming the link is still active, we can login and click ‘run import’ and in less than 5 min, that group of products should be re-loaded on to the site. We can also schedule regular automatic syncs if we know the product data will change frequently (i.e. price due to exchange rates.)

Eventually we’re going for:
Product data edited in FM > Exports CSV from FM database > Updated versions of CSV are saved with same name where original one is saved (active URL) > Manual or cron job syncing