Where it is
Open Products and press Import from WooCommerce or Export for WooCommerce. The page has two tabs: Import reads a WooCommerce product CSV into this store, and Export writes this store's catalogue as a CSV that WooCommerce reads.
Importing needs permission to edit products and categories, and a plan that lets you change the catalogue. Exporting needs only permission to view products, on every plan: without the right to import, the page shows the Export tab only.
Importing
In WordPress, open Products → All products, press Export, export all columns, all product types and all categories, and tick Export custom meta if your WooCommerce has it. Upload that file here as WooCommerce saved it. Nothing is saved until you have seen the preview and pressed Start the import.
The file is read in whatever language your WordPress admin uses. A column it does not recognise is listed under Columns this import did not recognise, where you say what it is or choose Leave out.
The options:
- Your WooCommerce store's address: read from the photo links. Keep it the same each time you import from that store, because it is how products imported before are recognised.
- Prices in the file are in: shown on a Rial store. Most Iranian WooCommerce stores price in Toman. A wrong answer makes every price ten times off, with no error, so the import will not start until you choose. On a store in any other currency, switch on They are in your currency: the file does not say its currency, so nothing is imported on a guess.
- New products are: As in WooCommerce (published, draft, private) or All drafts.
- Products imported before: Leave as they are, or Update from the file. An update changes only what the file's columns hold: export only the prices from WooCommerce and only the prices change. Photos (and photos already fetched into descriptions), the product's address, its layout, translations, variations you added here and everything else you set here stay as they are.
- Fetch photos from: the addresses photos may be downloaded from, ticked for your store's own domain.
Update the preview after changing an option. The preview shows how many products will be created, updated or left alone, the categories, brands, attributes and tags it will create, and a note for each row it had to change or leave out.
What the import does with the file
- Categories are matched by name under their parent, and missing ones are created. Tags and brands are matched by name. A WooCommerce global attribute becomes a shared attribute with its values; a custom one stays on the product.
- Tax and shipping classes decide what customers pay, so they are matched, never created. Products with a class this store lacks get the standard rate until you create it in Tax & shipping and import again.
- A product with several brands keeps the first. A nested brand ("A > B") is flattened.
- A WooCommerce grouped product has no price of its own, while a bundle here is sold at one price, so it is imported as a draft for you to price.
- A variation with no price is imported switched off.
- Stock kept at product level stays on the product, and its variations sell from that count.
If your old store kept its brands as categories, the finished import links to Convert to brands (see Brands).
Photos
Photos are downloaded after the products are in. You can leave the page while the import runs. The finished import counts photos waiting, fetched and failed. A photo that cannot be fetched never stops the import:
- Photos that could not be fetched lists each one with the reason.
- Fetch again, from this address: if your old domain already points at this store, enter an address where the old site still answers (such as
old.example.comorwww.example.com, with a port if it needs one). The same file paths are used, for photos on your old store's own addresses only; a photo on another site or a CDN is fetched where it is. - Upload a ZIP of photos: a ZIP of the old site's
wp-content/uploadsfolder, up to 180 MB each (one ZIP per year works well). Each missing photo is matched by its year, month and file name, so one year's ZIP never fills another year's photo. Files too large for the library, such as videos, are skipped.
A product that already has photos gets none from an import.
Exporting
The Export tab writes a CSV for WooCommerce's own importer (Products → Import in WordPress). Before downloading, choose the WooCommerce store's weight and dimensions units (WooCommerce, Settings, Products), and on a Rial store whether WooCommerce prices in Toman or Rial.
Include photo links puts links to this store's photos in the file. WooCommerce downloads each one and refuses the whole product if it cannot, so leave photos out for a store that is not online yet.
In WooCommerce's importer:
- Leave Update existing products unticked when the products are new to that store.
- WooCommerce's importer updates only by its own product IDs, which a file from this store cannot know, so a later export cannot update a WooCommerce store you imported into before. To bring it in, move the products the first import made to WooCommerce's trash, then import the new file with the box unticked.
- On a WooCommerce admin in a language other than English, choose the GTIN and Brands columns by hand on its column screen. It matches every other column by itself.
What WooCommerce cannot hold is listed with a count before the download. Bundles, subscriptions and memberships become simple products. Translations, the page layout, content shown after purchase, purchase limits, file-upload requests, number attributes, the guarantee, SEO title and description, and colour swatches have no place in WooCommerce.
Coming back
The file keeps what WooCommerce cannot hold in hidden columns. When you export from WooCommerce with Export custom meta ticked and import that file here, each product is recognised as the product it was. It is updated, never doubled, and keeps everything WooCommerce could not hold. A product you deleted here in the meantime comes back with its type, bundle contents, default variation, translations, layout and the rest, except stock kept by Inventory. A copy made in WooCommerce with Duplicate comes in as a new product. Without the tick the hidden columns are left out, and products come back as new ones; the preview says so when a file has no custom meta columns.