WebToffee Logo
  • Home
  • Plugins
  • Shopify apps
  • Bundles
  • Blog
  • Documentation
  • Support
Login
cart 0

  • Getting Started
    • Plugin setup
    • Import/Export Products
    • Import/Export Product Reviews
    • Import/Export Product Tags
    • Import/Export Product Categories
  • Import
    • Import products with attributes
    • Import google drive images
    • Import grouped products
    • Importing And Updating Upsell An...
    • Import products using URL
    • Import every 'X' hours
    • Importing downloadable products
    • Import Multiple Product Images f...
    • Import subscription products
    • Import products using CSV
    • Import products with images
    • Import/update onbackorders
    • Updating evaluation fields on Import
    • Import products from MS Excel
    • Importing products from a XML
    • Import products with categories
    • Import products from Google Spreadsheet
    • Import composite products
    • Import external/affiliate products
    • Import variable products from CSV
  • Export
    • Export products to CSV
    • Batch export products
    • Exporting products by category
    • Export definite number of products
    • Export products to MS Excel
    • Export product with categories
    • Export products with images
    • Export variable products
    • Export products with attributes
  • Meta Data
    • Import product metadata from CSV
  • Bulk Edit
    • Bulk update product category
    • Bulk upload variable products
    • Bulk upload products
    • Bulk update product price
  • FTP Cron Schedules
    • Cron Import products using multiple CSVs
    • Cron scheduled Import-export
    • Server cron and server commands
    • Export products via SFTP
  • Advanced Topics
    • Export without user restrictions
    • Migrate from Shopify to WooCommerce
    • Update simple and variable products
    • Import/Export custom fields
    • Update inventory data
    • Import/Export products to Google Spreadsheets
    • Updating Single Field for Products
    • Updating product stock
    • Plugin visibility on a multisite
    • WPML Compatibility
    • Thumbnail regeneration failure on product import
    • Import/Export product bundles
    • Set up cron when site activity is less
    • Export WPML multilingual products
    • Update product variations without SKU
    • Steps to import WPML products
    • Duplicate entry in the media library
    • Memory limitations on Import/Export
    • Import/Export product images in ZIP
    • Modifying Import/Export Batch Count and Effects on Performance
  • Code Snippet
    • Set email alert on cron import
    • Export/Import bundled products
    • Export/Import product variation images
    • Filter and export WooCommerce products using custom taxonomy
    • Alter product data
    • Compatibility with YITH Product Bundle
    • Export reviews with no ratings
    • Import images from multiple columns
    • Support for WebP images
  • Troubleshooting
    • Finding PHP Error Logs
    • Resolve “Call to undefined function mb_detect_encoding()”
    • Resolve post ID conflicts on import
    • Troubleshooting Guide-Products
    • Maximum file upload size
  • Third-Party Compatibility
    • Plugins
  • FAQ
    • Frequently asked questions
  • Changelog
    • Version 1.1.6

Home » Docs » Product Import Export Plugin for WooCommerce » How to import and export WooCommerce Product Categories

How to import and export WooCommerce Product Categories

Last updated on May 8, 2023

Import and export all the product categories of a WooCommerce store using the premium version of the Product Import Export Plugin for WooCommerce. The plugin helps you to export and import product categories as a separate post type in a quick and efficient manner.

With this feature you can import/create or export categories in bulk to and from your WooCommerce store.

Exporting Product Categories

To export WooCommerce product categories:

  • Click on WebToffee Import/Export(Pro) > Export.

Step 1: Select a post type

As a first step, you need to choose the post type as Product Categories.

Step 2: Select an export method

Choose from the below options to continue with your export:

  • Quick export : exports the basic/standard fields.
  • Based on a pre-saved template : exports data as per the specifications(filters, selective column, mapping etc) from the previously saved file.
    This export method will be visible only if you satisfy both of these:
    • exported data using the Advanced export method in any of your previous exports.
    • saved the selections as a template for future use.
    Exporting product categories using pre-saved template method
    Note: The template will be listed in the drop down only if you have saved it in previous exports, if you go through the Advanced export, at Step 5 you will get an option to save the template. Once you save that, next time when you want to export a pre-saved template, it will be populated within the drop down.
  • Advanced export: Takes you through a detailed process of filtering/column selection/advanced options that may be required for your export.
    Note: You can also save this file as a template for future use.

    Selecting advanced export method during export of product categories
  • Step 3: Filter data

    Filter the data on the basis of:

    1. Sort Columns: Select the column on the basis of which you want to sort the export data.
    2. Sort: Sorts the selected sort column in ascending or descending order as specified.
    • Click on Step 4 to proceed further.

    Step 4: Map and reorder export columns

    In the export mapping screen, you can edit all the default export column names appearing in this section. The preferred names and choices that were last saved can be viewed by choosing a pre-saved template. You can also move the columns to reorder the arrangement.

    Step 5: Advanced Options/Batch Export

    On reaching Step 5, the following window will appear, from where you can:

    • Specify the Export file name.
    • Choose the Export file format between CSV and XML.
    • Select the required delimiter among: Comma, Semicolon, Tab, Space and other.
    • Enable FTP export by selecting Yes.
      • Select an FTP profile
      • Use the default export path or specify a new one as required.
      • Click on Schedule button.
        Enabling FTP export with export and schedule buttons

    On expanding the Advanced options, you can :

    • Include BOM in export file by selecting the Enable option. This will help the applications like Microsoft Excel to read your export file, even if it contains non-English characters.
    • Export in batches based on the number specified. This value specifies the number of records the server will process for every iteration within the configured timeout interval.
      NOTE: If the export fails due to timeout, you can lower the batch count and try again.
    • Save the template file for future export as shown below(if needed).
      Save-template-option
    • Click on Export to finish.

    Importing Products Categories

    Download Sample CSV of Product Categories.

    To import WooCommerce products categories:

    • Click on WebToffee Import/Export(Pro) > Import.

    Step 1: Select a post type

    As a first step, you need to choose the post type as Product Categories.

    Step 2: Select import method

    Choose from the below options to continue with your import:

    •  Quick import : Preferred if your input file was exported using the same plugin.
    •  Pre-saved template : Retains the previous filter parameters and other column specifications as per the chosen file and imports data accordingly.Importing product categories using pre-saved template method
      This import method will be visible only if you satisfy both of these:
      • imported data using the Advanced import method in any of your previous imports.
      • saved the selections as a template for future use.
      Note: The template will be listed in the drop down only if you have saved it in previous imports, if you go through the Advanced import, at Step 4 you will get an option to save the template. Once you save that, next time when you want to import a pre-saved template, it will be populated within the drop down.
  • Advanced import: Imports data after a detailed process of filtering/column selection/advanced options. This file can be saved for future use.
    Note: You can also save this file as a template for future use.
  • Step 3: Map import columns

    The mapping screen of import process lets you to edit the column names if needed. The preferred names and choices that were last saved can be viewed by choosing a pre-saved template.

    Evaluate field

    This field is used to append a value/expression to an existing item while importing. It basically selects/maps any column from the input file and compute the values with expressions and creates output.

    • Expression: Any of the operators +*/-()&@ or string constants can be used along with the attributes to manipulate the respective value. 
    • Input: Select the column from the dropdown which has to be modified.
    • Output: Sample value will be created based on the first record from input file.

    Note: Columns that have no values in the input file may cause syntax errors if used in an expression.

    evaluate-field-product
    • Click on Step 4 to proceed.

    Step 4: Advanced Options/Batch Import/ Scheduling

    On reaching Step 4, the following window will appear, from where you can either Skip or Update the entry, if the category exists in the store. On expanding Advanced options, you can :

    • Import in batches of: Specify the number of records the server will process for every iteration within the configured timeout interval.
      NOTE: If the import fails due to timeout, you can lower the batch count and try again.
    • Block third party plugin hooks while importing: Enabling this will increase speed by disabling do_action calls in wp_insert_post.
      The do_action call includes: ‘transition_post_status’, ‘save_post’, ‘pre_post_update’, ‘add_attachment’, ‘edit_attachment’, ‘edit_post’, ‘post_updated’.
    • Save the template file for future imports as shown below(if needed).
      Save-template-option
    • Click on Import/Schedule to finish.

    You can either import the products directly into your store or schedule the import using FTP.

    import-schedule

    To schedule the import:

    1. Hit the Schedule option, and you will be taken to the cron schedule window as shown below:
    Cron-scheduling

    The plugin supports two different schedule types:

    1. WordPress Cron: Upon a visit, WordPress Cron will check to see if the time/date is later than the scheduled event/s, and if it is– it will fire those events.
      • schedules your job at the specified time. 
      • is dependent on your website visitors.
    2. Server Cron: You may need to trigger the URL every minute depending on the volume of data to be processed.You can use this option :
      • to generate a unique URL that can be added to your system in order to trigger the events. 
      • if you have a separate system to trigger the scheduled events.
    server-cron-scheduling

    Also, the import/export can be scheduled on a daily, weekly, monthly, custom basis. One can also configure the time at which the import has to be scheduled.

    To directly import:

    1. Hit on the Import option

    Once the import is completed, a pop-up will be displayed showing import status which contains the number of successful imports and failed imports (if any).

    Following the above mentioned steps, you can export and import all the WooCommerce product categories with ease. Do share your queries in the comment section.

    • Was this article helpful?
    • Yes, thanks!Not really
    Get the plugin

    On this page

    • Exporting Product Categories
    • Step 1: Select a post type
    • Step 2: Select an export method
    • Step 3: Filter data
    • Step 4: Map and reorder export columns
    • Step 5: Advanced Options/Batch Export
    • Importing Products Categories
    • Step 1: Select a post type
    • Step 2: Select import method
    • Step 3: Map import columns
    • Evaluate field
    • Step 4: Advanced Options/Batch Import/ Scheduling

    This article posted in Documentation, Getting Started, Product Import Export Plugin for WooCommerce

    Written by

    Vineetha

    Vineetha is a technical content writer with a knack of simplifying complex information into readable content. She focuses on writing content in a conveyable and clear format.

    Comments (2)

    1. BJ

      October 7, 2022

      How to update categories just by ID? When I create csv file with just “term_id, name, parent” (no slug in csv) and if parent is changed, your plugin during importing creates new category with new term_id. There is a solution for product import by category ID (https://gist.github.com/webtoffee-git/6e7c146c6c658a3684c5d826bd7d50e0), but how to do the same for categories?

      Problem no.2 – when I import the same csv again (without any change in the file), and with “update” selected in advanced options section, I get error “A term with the name provided already exists with this parent.” (remember there is no slug in csv file).

      Reply
      • BJ

        October 8, 2022

        I had to solve problem quickly so I wrote solution.

        add_filter(‘wt_woocommerce_product_categories_importer_pre_parse_data’, ‘wt_import_cetegories_by_category_id’);

        function wt_import_cetegories_by_category_id($item) {
        if ( $item[‘mapping_fields’][‘term_id’] != ” && !array_key_exists(‘slug’,$item[‘mapping_fields’]) ) {
        if ( $term = get_term_by( ‘id’, $item[‘mapping_fields’][‘term_id’], ‘product_cat’ ) ) {
        $item[‘mapping_fields’][‘slug’] = $term->slug;
        }
        }
        return $item;
        }

        Reply

    Got any query? Please leave a comment or reach out to our support

    Cancel reply

    Your email address will not be published. Required fields are marked *

    Webtoffee
    Facebook
    Twitter
    Youtube
    Linkein
    WordPress

    We develop awesome WordPress plugins & WooCommerce extensions to help build successful online businesses.

    Trustpilot

    © 2023 WebToffee. All rights reserved.

    Our plugins

    • GDPR Cookie Consent
    • PDF Invoices & Packings Slips
    • Product Import Export Plugin
    • User & Customer Import Export
    • Import Export Suite
    • Sequential Order Numbers
    • Smart Coupons for WooCommerce
    • URL Coupons for WooCommerce
    • PayPal Express Checkout
    • Stripe Payment Gateway
    • Subscriptions for Woocommerce
    • Product Catalog Sync for Facebook
    • PrintNode for PDF Invoices
    • Order, coupon, subscriptions for WooCommerce
    • WordPress Backup and Migration
    View more +

    Get Started

    • Plugins
    • Testimonials
    • Affiliates
    • We're hiring

    Help & Support

    • Documentation
    • Documentation (Basic)
    • FAQ
    • Support

    Company

    • About Us
    • Terms & Conditions
    • Privacy Policy
    • Cookie Policy
    • Refund Policy
    • Support Policy
    • Installation Guides

    © 2023 WebToffee. All rights reserved.

    We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
    Cookie settingsReject allAccept all
    Privacy & Cookies Policy

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of the basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website, to store user preferences and provide you with content and advertisements that are relevant. Such cookies will be stored on your browser but only upon procuring consent.

    You will also have the option to opt-out of these cookies should you want to. But opting out of some of these cookies may have an effect on your browsing experience as per the descriptions elucidated against the respective categories below.

    Necessary
    Always Enabled
    The cookies defined under this category are absolutely essential for the website to function. Hence they are loaded by default irrespective if user consent.
    CookieDescription
    __cfruidCloudflare sets this cookie to identify trusted web traffic.
    __stripe_midStripe sets this cookie cookie to process payments.
    __stripe_sidStripe sets this cookie cookie to process payments.
    cookielawinfo-checkbox-advertisementSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
    cookielawinfo-checkbox-analyticsSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category .
    cookielawinfo-checkbox-necessarySet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Necessary" category .
    cookielawinfo-checkbox-preferencesThis cookie is set by the GDPR Cookie Consent plugin to check if the user has given consent to use cookies under the "Preferences" category.
    CookieLawInfoConsentRecords the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
    PHPSESSIDThis cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user sessions on the website. The cookie is a session cookie and is deleted when all the browser windows are closed.
    viewed_cookie_policyThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not a user has consented to the use of cookies. It does not store any personal data.
    Analytics
    Analytics cookies help us understand how our visitors interact with the website. It helps us understand the number of visitors, where the visitors are coming from, and the pages they navigate. The cookies collect this data and are reported anonymously.
    CookieDescription
    _gaThis cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assigns a randomly generated number to identify unique visitors.
    _ga_BQH8MSKD4MThis cookie is installed by Google Analytics.
    _gat_gtagIdentification code of website for tracking visits.
    _gidThis cookie is installed by Google Analytics. The cookie is used to store information on how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visited in an anonymous form.
    _hjAbsoluteSessionInProgressHotjar sets this cookie to detect the first pageview session of a user. This is a True/False flag set by the cookie.
    _hjFirstSeenHotjar sets this cookie to identify a new user’s first session. It stores a true/false value, indicating whether it was the first time Hotjar saw this user.
    _hjidHotjar cookie. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID.
    _hjIncludedInPageviewSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's pageview limit.
    _hjIncludedInSampleThis cookie is set to let Hotjar know whether that visitor is included in the sample which is used to generate heatmaps, funnels, recordings, etc.
    _hjIncludedInSessionSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's daily session limit.
    _hjTLDTestTo determine the most generic cookie path that has to be used instead of the page hostname, Hotjar sets the _hjTLDTest cookie to store different URL substring alternatives until it fails.
    CONSENTYouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
    has_recent_activityThis cookie is used to signal to the code repository website if the user has browsed other website resources during the current session.
    tk_aiGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
    tk_lrThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
    tk_orThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
    tk_qsGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
    tk_r3dThe cookie is installed by JetPack. Used for the internal metrics for user activities to improve user experience.
    Advertisement
    Advertisement cookies help us provide our visitors with relevant ads and marketing campaigns.
    CookieDescription
    _fbpThis cookie is set by Facebook to deliver advertisements when they are on Facebook or on a digital platform powered by Facebook advertising after visiting this website.
    frThe cookie is set by Facebook to show relevant advertisements to the users and measure and improve the advertisements. The cookie also tracks the behavior of the user across the web on sites that have Facebook Pixel or Facebook social plugin.
    VISITOR_INFO1_LIVEA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
    YSCYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
    yt-remote-connected-devicesYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
    yt-remote-device-idYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
    Preferences
    Preference cookies are used to store user preferences to provide them with content that is customized accordingly. This includes the language of the website or the location of the visitor.
    CookieDescription
    _gh_sessThis cookie is used to preserve users' states across page requests.
    Others
    Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
    CookieDurationDescription
    _hjSession_137657130 minutesNo description
    _hjSessionUser_13765711 yearNo description
    _octo1 yearNo description available.
    _zendesk_authenticatedpastNo description
    _zendesk_sessionsessionNo description available.
    _zendesk_shared_sessionsessionNo description available.
    edd_wp_session12 hoursNo description available.
    logged_in1 yearNo description available.
    m2 yearsNo description available.