BunStackDocs

Getting started

Move from WooCommerce

The steps when a storefront moves from WooCommerce: products, images, prices, feed, redirects, withdrawals for earlier orders and domain.

Last updated · 6 min read

Each step below links to the handbook page with the details.

Where: Products › ⋯ › Import CSV, Products › ⋯ › Copy images and the Feeds, Redirects and Returns tabs under Storefronts › [storefront].

What does not move

  • The admin has no import for orders, customers or reviews. The old orders stay in WooCommerce.
  • The pages are rebuilt in the designer or under Pages.

Do this

  1. Import the products under Products › ⋯ › Import CSV in the Add new mode. The WooCommerce export needs BunStack's column names first, see Columns from WooCommerce. You can also ask support@bunstack.co to import the catalogue.
  2. Turn the new products on in the storefront. See Products.
  3. Copy the images that are still loaded from the old shop with Products › ⋯ › Copy images. See Copy images from the old shop.
  4. Ask support@bunstack.co to add the old prices as the starting point of the price history. The admin has no button for it.
  5. Choose Item id (g:id) and Id prefix under Feeds so the item ids match the old feed. Imported product id sends the product's source_id. GA4 sends the same id. See Product feeds.
  6. Add redirects with Move from WooCommerce under Redirects. See Redirects.
  7. Turn on Take withdrawals for orders placed before the move under Returns. Enter the date of the move in Orders placed before. See Returns.
  8. Run the checks under Go live and go live on the temporary address. See Go live.
  9. Connect the domain under Domain and change DNS. See Domains and DNS.
  10. Test the old addresses under Test URLs on Redirects.

After step 10 the old addresses lead to the storefront in BunStack.

Columns from WooCommerce

The import reads only BunStack's column names. It ignores other columns and lists them before it writes anything. Export the products from the product list in WooCommerce. Rename the columns in a spreadsheet and save as CSV. Open the CSV file in a text editor, copy the text and paste it. Cells copied straight from the spreadsheet have tabs between the columns and are not read.

The file must be comma-separated. Excel with Nordic region settings saves CSV with semicolons. The header row is then read as one column, and the import page shows Missing required columns: title, slug. Download the file as CSV from Google Sheets instead, or edit the WooCommerce export directly in the text editor. It is comma-separated. Write the prices with a dot as the decimal sign and without thousands separators, for example 1299 or 199.50.

WooCommerce writes the headers in the admin's language. The table shows the English names.

WooCommerceBunStackHow
IDsource_idThe product's id in WooCommerce. Imported product id under Feeds sends it as g:id
Nametitle–
–slugNot in the export. Take the slug from the product's old address /product/<slug>. The redirects then lead to the right page
PublishedstatusWrite active for 1 and draft for 0 and -1
Descriptiondescription–
Short descriptionshort_descriptionThe text by the price. The HTML is removed and the text is saved as plain text. At most 600 characters
Regular pricedefault_priceThe price in the base currency
Sale pricedefault_price and default_compare_at_priceAn item on sale: the sale price in default_price and Regular price in default_compare_at_price. The storefront shows the sale only when the price history covers 30 days, see Price history and lowest price
SKUskuThe variant's SKU
Stockinventory_qtyThe stock. Needs a sku on the same row, or the row is not imported
Weight (kg)weight_gramsThe weight in grams: kg times 1,000
Length (cm), Width (cm), Height (cm)length_cm, width_cm, height_cm–
TagstagsReplace the commas with |
Tax classtax_categorystandard, reduced, reduced_alt, super_reduced or zero
BrandsvendorPresent when the storefront uses brands
Attribute 1 name, Attribute 1 value(s)attr:<name>One column per attribute, for example attr:Colour
Categories, Images–No column. Link the categories under Organize › Categories and upload the images under Media on the product, or ask support to import the catalogue

A variable product has one row for the product and one row per variation. Give all the rows the product's slug. Leave sku, inventory_qty and the variant_* columns empty on the product's row. With a sku, the product's row becomes a variant of its own. With stock but no sku, neither the product nor its variations are imported. Each variation gets its own sku, variant_title, variant_price and inventory_qty. The import reads the product's columns, such as title and source_id, from the first row.

You can add source_id afterwards. Import a file with the columns slug and source_id under Update existing.

After the switch

  • Look at 404s, last 14 days under Redirects every day for the first two weeks. Add a redirect for each old address that shows up.
  • Keep the old image server running for at least 90 days.
  • A customer who withdraws from an old order triggers the notification Withdrawal for earlier order … received. Check the order and refund in WooCommerce.

Warning: If you close the old shop before the images are copied, the images stop showing. Run Copy images and check the Not copied yet row first.

Price history and lowest price

On a price reduction, the storefront shows the lowest price from the 30 days before the reduction (the Swedish Price Information Act, 7 a §). BunStack works this price out from the price history. History from before the move exists only if the old prices were added.

  • BunStack reads the prices in WooCommerce and saves them with the day they were read.
  • If BunStack reads the prices again, for example the day before the switch, it saves the new ones with that date.
  • Send the dates of sales in the old shop to support. Support adds them with their dates.

See Base currency and more currencies.