Documentation

Everything you need to know about using our products

Product Importer Guide

Version: 2.0.4 | Last Updated: January 12, 2026 | Scope: Admin UI Pages (Sidebar → Pages → Tabs/Steps → Blocks)

This User Guide provides a comprehensive overview of the Product Importer for WooCommerce plugin. It covers every screen, feature, troubleshooting, and best practices for both Free and Pro users.

Whether you're importing products for the first time or automating recurring updates, this guide will help you navigate the plugin effectively.

The guide is designed for WooCommerce store owners, admins, and support teams. It assumes basic familiarity with WordPress and WooCommerce. For technical support, refer to the Troubleshooting section or contact us via the Help/Docs page.

Plugin Installation

How to install Product Importer

Product Importer is available in two editions: Free (from WordPress.org) and Pro (purchased from badamsoft.com).

Installing the Free version

  1. Log in to your WordPress admin dashboard.
  2. Navigate to Plugins → Add New.
  3. In the search field, type "Product Importer".
  4. Locate the plugin by BadamSoft LLC and click Install Now.
  5. After installation completes, click Activate.

The plugin will appear under WooCommerce → Product Importer.

Installing the Pro version

  1. Purchase and download the Pro ZIP file from badamsoft.com.
  2. In your WordPress dashboard, go to Plugins → Add New → Upload Plugin.
  3. Click Choose File, select the downloaded ZIP, and click Install Now.
  4. After installation, click Activate Plugin.

Upon activation, you will be prompted to enter your license key (see License Activation below).

System Requirements

Minimum requirements for running the plugin

To ensure optimal performance and compatibility, Product Importer requires the following:

  • WordPress: 6.2 or higher
  • WooCommerce: 8.0 or higher
  • PHP: 7.4 or higher (PHP 8.3+ recommended for best performance)
  • MySQL: 5.6 or higher (recommend MySQL 8.0 or greater)
  • MariaDB: 10.1 or higher (recommend MariaDB 10.6 or greater)
  • Memory Limit: At least 256 MB (512 MB recommended for large imports >10,000 products)
  • Max Execution Time: At least 300 seconds (5 minutes) for large imports

We strongly recommend PHP 8.3 or greater and MySQL 8.0 or MariaDB 10.6 or greater for improved speed, security, and compatibility with modern WooCommerce features.

The plugin is tested up to WordPress 6.9 and WooCommerce 10.4.2.

License Activation

Activate your license key

License activation is required only for the Pro version and enables automatic updates, priority support, and full access to Pro features.

  1. After activating the Pro plugin, navigate to WooCommerce → Product Importer → Settings → License.
  2. Enter your license key (provided in your purchase confirmation email from badamsoft.com).
  3. Click Activate License.

Upon successful activation:

  • The license status will show as Active.
  • Remaining activations and expiration date (if subscription-based) will be displayed.
  • Automatic updates will become available via Plugins → Installed Plugins.

Managing Licenses

  • Click Manage Domains to view or revoke activations on other sites.
  • To deactivate, click Deactivate License (useful when moving to a new domain).

License validation occurs periodically in the background. No personal data is transmitted beyond the license key and site URL.

Updating the Plugin

Keep your plugin up to date

Free Version (WordPress.org)

Free

Updates are delivered automatically through the standard WordPress update system:

  1. Go to Dashboard → Updates or Plugins → Installed Plugins.
  2. If an update is available, click Update Now.

Pro Version

Pro

After license activation, Pro updates are delivered via the Easy Digital Downloads (EDD) Software Licensing system:

  1. Ensure your license is active (Settings → License).
  2. Updates appear alongside other plugins in Dashboard → Updates or Plugins → Installed Plugins.
  3. Click Update Now when available.

Always back up your site before updating. Changelog is available in the plugin's readme.txt and on badamsoft.com.

1. Introduction

What This Plugin Does

Product Importer for WooCommerce enables you to import products into your WooCommerce store from various data sources (CSV, XML, JSON, Google Sheets, FTP/SFTP, API endpoints). It supports creating new products, updating existing ones, and handling complex product types (Simple, Variable, Grouped).

Minimum Requirements

  • WordPress: 6.2 or higher
  • WooCommerce: 8.0 or higher
  • PHP: 7.4 or higher (PHP 8.1+ recommended)
  • Memory Limit: 256 MB minimum (512 MB recommended for large imports)

Before You Start: Key Decisions and Best Practices

  • Always backup your database before running imports
  • Test imports on a staging site first
  • Prepare your data source (clean CSV/XML/JSON with proper column headers)
  • Understand your product types (Simple vs Variable vs Grouped)
  • Plan your field mapping strategy (which columns map to which WooCommerce fields)

2. Free vs. Pro Feature Comparison

Feature Free Pro
Upload File (CSV)
Import from URL
FTP/SFTP Import
Google Sheets Integration
API Endpoint (REST)
Field Mapping (Drag & Drop)
Save Import Profiles 1 profile Unlimited
Scheduled Imports (Cron)
Import History (Full) Last 12 Unlimited
Variable Products Support
Grouped Products Support
Priority Support

3. Import Dashboard

The Import Dashboard is your command center. It displays key metrics and provides quick access to all import operations.

Import Dashboard Overview

Dashboard Overview

Top Metrics Cards:

  • Last Import: Shows time elapsed (e.g., "8 h ago") and rows imported (e.g., "Imported 1071 rows")
  • Active Profiles: Number of saved import profiles (e.g., "3 Scheduled")
  • Scheduled Imports: Count of active scheduled tasks with next run time (e.g., "2 Next in 17 h")
  • Errors in 24 Hours: Failed imports in the last day (e.g., "0")

Quick Actions:

  • New Import: Launch the 5-step import wizard
  • Profiles: Manage saved import profiles
  • Schedule: Configure scheduled imports (Pro)
  • Logs: View import history and error logs

System Status:

  • Cron: Active/Inactive status
  • License: Pro active or Free version
  • Import Queue: Empty or processing

Recent Operations Table:

Displays the most recent imports with columns:

  • Date (e.g., "2026-01-14 15:32:47")
  • Profile (e.g., "Price and stock (General supplier)")
  • Type: Manual or Scheduled
  • Status: Success, Partial Entry, or Failed
  • Added/Updated/Errors counts
  • Actions: View All button to see full history

4. New Import: 5-Step Wizard

The New Import wizard guides you through the complete import process in 5 logical steps. Each step must be completed before proceeding to the next.

1

Step 1: Data Source

Step 1: Select Data Source

Main Purpose of Step

Tell the plugin where to get data for import.

Available Options (Free vs Pro)

Source Free Pro What to Specify Recommendations / Common Errors
Local Upload Upload file from computer Simplest and most reliable option for beginners
URL feed Direct link to file Make sure link returns exactly the file, not a page
FTP Host, port (usually 21), login, password, path to file Use only if SFTP unavailable
SFTP (recommended) Host, port (usually 22), login, password/key, path Most secure remote access option
Google Sheets Spreadsheet link + OAuth keys (Client ID/Secret) Better to create separate sheet just for import
API / Remote endpoint Endpoint URL, authorization headers, method, etc. Depends on specific plugin implementation

Useful Tips for Step 1

  • File names — try to make them unique (date + time in name helps a lot with debugging)
  • Very large files (>50–100 MB) better to upload via FTP/SFTP or keep on stable hosting and import by URL

Common Beginner Mistakes

  • Most common mistake for beginners — trying to paste a link like https://example.com/products.xlsx in Local Upload field
  • Pro features blocked → large banner appears with offer to buy Pro

Select where your product data is coming from. The plugin supports multiple data sources:

Free

Upload File

Upload CSV file from your computer. Drag & drop or click to select. Supported formats: CSV (free), CSV, XLSX, XML, JSON (pro).

Pro

From URL

Import from URL. Paste the direct link to your CSV/XLSX/XML/JSON file.

Pro

FTP / SFTP

Connect to FTP or SFTP server. Configure connection settings and select the file to import.

Pro

Google Sheets

Sync with Google Sheets. Authenticate with your Google account and select the spreadsheet.

Pro

API Endpoint

REST API integration. Enter API endpoint URL, authentication headers, and request parameters.

2

Step 2: Format + Preview

Main Purpose

Make sure the plugin correctly understood the structure and content of your file.

Format Selection

Format Free Pro Notes
CSV Most universal and reliable option
XML Need to specify XPath to product element
JSON Need to specify path to product array (items path)
Excel (.xlsx, .xls) Supported from version ~2.0.0+; be careful with number formatting

What to Check in Preview

  1. Are headers correctly identified (first row)
  2. Are data samples visible in rows (minimum 3–5 rows)
  3. No column shifts (very common problem with CSV)
  4. No mojibake instead of Russian/special characters
  5. For XML/JSON — correctly selected path to individual records

Common Settings and Their Impact

Parameter Where Located Impact
Encoding Settings / Auto-detect Windows-1251, UTF-8 w/o BOM — most common cause of mojibake
Delimiter Settings / Auto-detect Comma, comma with tab, tab — second most common cause of shift
XPath (XML) Field on this step Incorrect path → empty preview
Items path (JSON) Field on this step Incorrect path → empty preview

Typical Problems and Quick Solutions

Problem Most Likely Cause What to Do
Headers exist, data empty Incorrect XPath / items path Clarify correct path in file
Strange characters in SKU/names Incorrect encoding Try changing encoding in settings
Columns shifted Different delimiter in file Specify correct delimiter manually
"Unsupported format" Trying to open XML/JSON/XLSX in free version Need Pro version
3

Step 3: Field Mapping

Step 3: Field Mapping Overview

What is Field Mapping and Why It's Needed

Field Mapping is the key part of the import wizard where you specify which column of your file corresponds to which product field in WooCommerce.

The correctness of this step determines 80–90% of import success: correct names, prices, stock, categories, images, attributes, and variations.

Main Interface Feature — Maximum Proximity to WooCommerce Product Card

Developers deliberately made the field mapping interface as similar as possible to the standard WooCommerce product editing card.

This means:

  • Same field grouping logic by blocks/tabs
  • Practically the same field names
  • Familiar layout of main sections (General → Prices → Stock → Shipping → Attributes → Variations → Images)
  • Same visual accents on required fields
  • Similar behavior when working with attributes and variations

For most WooCommerce users, this significantly lowers the entry barrier — they immediately understand where and what to map, without needing to learn completely new logic.

Important Interface Elements

Element Where Located What It's For / Tip
Product type selector Very top Free → only Simple. Pro → Simple/Variable/Grouped
Left panel (Source Fields) Left Your columns + sample values from selected row
Right panel (Target Fields) Right, tabs WooCommerce fields, grouped by meaning
Preview row switcher Above left panel Very useful if current row has many empty values
Tokens {ColumnName} Entered automatically when dragging Allow combining values

Main Tabs and Most Important Fields (2025–2026)

Tab Most Important Fields (required highlighted) Notes
General Product name, Description, Short description Name almost always required
Pricing Regular price, Sale price Many stores require at least regular price
Inventory SKU, GTIN/EAN/UPC/ISBN, Stock quantity, Stock management SKU — key identifier in 90% of cases
Taxonomy Categories (multi-level), Tags, Brand (if such taxonomy exists) Often make mistakes with separators
Images Main image, Gallery Separators for gallery usually comma or pipe
Attributes Attribute name, Values, Visible, Used for variations Most complex and most important tab for variable products
Variations (only when Variable selected) Variation SKU strategy, variation prices, etc. Requires very precise matching
Grouped (only when Grouped selected) Links to products in group Rarely used

Useful Mapping Techniques

Action How to Do Example
Compound name Manually write template {Brand} {Model} ({Color})
Multiple images in gallery Specify column with separator https://...1.jpg|https://...2.jpg
Multiple categories Usually via comma or special level field Clothing > T-shirts > Men's
Create attributes from one column {Color} → separator or comma Red|Blue|Green

Convenient Import Creation for Variable and Grouped Products

The interface is specially optimized for working with Variable (variable) and Grouped (grouped) products — one of the strongest plugins in Pro version.

Variable Products (Variable Products)

Interface features that make work convenient:

  • When selecting product type "Variable", the Variations tab automatically appears (as in parent WooCommerce dropdown)
  • On Attributes tab, you can check "Used for variations" — immediately clear which attributes will generate variations
  • Plugin supports several popular variation creation strategies:
    • ○ Variations from separate rows (classic approach "one row = one variation")
    • ○ Variations by attribute combination from one parent product
    • ○ Automatic parent product creation by common SKU/pattern
  • Variation fields (price, SKU, stock, variation images) are displayed in familiar tabular form
Grouped Products (Grouped Products)
  • When selecting type "Grouped", a special Grouped products block appears
  • Convenient mapping of child products:
    • ○ By child product SKU
    • ○ By SKU list in separate column (via separator)
    • ○ By common group identifier
  • Parent product fields (name, description, categories) are filled as usual
  • Child products are automatically linked to group after import

Map columns from your import file to WooCommerce product fields. This is the most critical step.

Product Type Selection:

  • Simple Product: Standard products with no variations
  • Variable Product: Products with variations (Pro only)
  • Grouped Product: Collection of related products (Pro only)
Field Mapping - Variable Product Model

Variable Product: Select model (Classic, No Parent SKU, Auto-generate SKU, Shared Price)

Import Template (Left Panel):

Shows your import file columns with sample data. Navigate between rows using arrow buttons.

WooCommerce Product Card (Right Panel):

Field Mapping - Product Card Details

Visual product card with drag-and-drop zones:

  • Product Title: Drag column or type value
  • Product Description: Add Media / Add Form buttons
  • Product Data: General (Price), Inventory (SKU, Stock), Shipping, Attributes
  • Product Categories:
    Category Hierarchy Example

    Drag columns to create category structure. Use indentation to create category hierarchy:

    • • Indented fields create subcategories (e.g., Category-1 > Category-2 > Cat-3)
    • • Fields at the same level are equal categories (e.g., Category-1 and Category-4)
    • • Move fields left/right by clicking "<" or ">" to adjust hierarchy level
  • Product Tags: Drag columns for taxonomies
  • Product Image: Drag column with image URLs

Mapping Indicators:

  • ✓ Mapped field
  • ✓ Manual value will be used

Progress Counter: Bottom right shows "Mapped: 10 / 24 fields". Minimum required: SKU or Title.

Useful Techniques to Speed Up Work

  • For compound names: {Brand} {Model} - {Color} ({Size})
  • Category hierarchy: slide fields right to create nesting
  • Image gallery: drag "image_url" or similar (check in preview)
  • Variations: first map attributes and check "Used for variations", then move to prices/stock of variations
  • Save successful mappings in separate Profiles — especially useful for variable products

Quick Checklist Before Moving to Next Step

  • ☐ Correct product type selected (Simple / Variable / Grouped)
  • ☐ Name and SKU mapped (required for all types)
  • ☐ Price specified (regular_price)
  • ☐ For variable products, attributes checked "Used for variations"
  • ☐ For grouped products, child products correctly mapped
  • ☐ Category hierarchy built correctly (check shifts)
  • ☐ Images look correct in preview
  • ☐ All required fields filled (check statistics)
  • ☐ Reviewed 3–5 different preview rows

The interface is as close as possible to the familiar WooCommerce product card — so most experienced users start working confidently with mapping from the first time.

4

Step 4: Update Logic

Step 4: Update Logic Configuration

Most Important Decisions on This Step

Parameter Most Popular Options When to Use
Matching key SKU (almost always) Most reliable and recommended option
What to do when product found Update / Skip / Create duplicate 90% of cases → Update
What to do on row error Continue and log error / Stop Almost always → Continue and log
Update images Always / Only if empty / Never For daily updates more often Never or Only if empty
New product status Publish / Draft For safety often choose Draft
Update only drafts Yes / No Useful protective function when working with live store

Most Dangerous Combinations (Better to Avoid)

  • Matching key = Product ID + "Create duplicate" → almost guaranteed duplicates
  • "Update only drafts" + all products already published → nothing will update
  • "Update images always" + daily import 5000+ products → huge load and timeouts
5

Step 5: Launch

Step 5: Launch Import with Progress

What to Check Before Clicking "Start"

  • ✓ Correct source selected
  • ✓ Format and preview look correct
  • ✓ All required fields (name, SKU, price) filled/mapped
  • ✓ Adequate matching key selected
  • ✓ Update logic matches your goals (add/update/update only)

What Happens After Launch

  • Progress bar appears (in real-time via SSE, if server supports)
  • Current counters shown: processed / added / updated / skipped / errors
  • "Stop Import" button (if import is long)
  • Upon completion — offer to save as profile (highly recommended!)
  • Pro version → can additionally schedule import immediately

Recommended Action Sequence After First Successful Import

  1. Save as profile with descriptive name
  2. Do small test run of this profile (Run button)
  3. Verify everything works as expected
  4. Only after this plan regular launch (Pro) or use Run button manually

5. Import Profiles

Import Profiles allow you to save and reuse import configurations. This saves time when importing similar data repeatedly.

Import Profiles Management
Free

Save 1 import profile with all field mappings, data source, and update logic settings.

Pro

Unlimited profiles. Each profile card shows: name, data source type, last run date, and quick actions (Run, Edit, Delete).

Profile Actions:

  • Run: Execute import immediately with saved settings
  • Edit: Modify field mappings or update logic
  • Schedule: Create a run schedule for this profile (Pro)
  • Duplicate: Create a copy to use as template (Pro)
  • Delete: Remove profile permanently

6. Scheduled Imports (Pro Only)

Pro

Automate recurring imports with flexible scheduling options. Perfect for daily price updates, inventory sync, or supplier feeds. Without proper configuration, achieving stable and reliable automatic product synchronization (prices, stock, new arrivals, etc.) is nearly impossible.

Scheduled Imports with Create Schedule Modal

What Free Users See

When navigating to Scheduled Imports, free users see a large banner promoting Pro with the following benefits:

  • Scheduled imports
  • Remote sources (URL, FTP, SFTP, Google Sheets)
  • Email notifications
  • Planning calendar
  • Cron expression support
  • "Upgrade to PRO" button

Pro Page Structure

The page consists of several key functional blocks:

Block Location Purpose Importance
Secure Cron URL Top of page Main element for reliable scheduling ★★★★★
Tabs (List / Calendar) Below header Switch between schedule list and visual calendar ★★★★
Filters and create button Above table Search, filter by status (Active/Paused), "Create Schedule" button ★★★
Schedule table Main area List of all created schedules with key parameters and actions ★★★★
Calendar (Calendar tab) Second tab Visual representation — which days of the month have scheduled tasks ★★

Schedule List — Table Columns

Field What It Shows Usefulness
Profile Which saved import profile will be executed ★★★★★
Schedule Name Human-readable schedule name ★★★
Frequency Daily / Weekly / Monthly / Cron ★★★
Time(s) How many times to run (can be multiple times per day) ★★★
Status Active / Paused ★★★★★
Date Range Schedule validity period (if set) ★★
Last Run When last successfully completed ★★★★
Next Run When next scheduled ★★★★★
Actions Run now / Edit / Pause/Resume / Delete ★★★★

Common Actions in Table

Action When to Use Key Moment
Run now Want to test schedule immediately Does not change schedule status
Pause Temporarily stop (e.g., during sale) Saves all settings
Resume Resume after pause
Delete Remove schedule permanently Import profile remains

Schedule Calendar — Visual Planning

  • Monthly calendar
  • Days with scheduled imports are highlighted
  • Click on a day → shows list of tasks for that day (in modal window)

Useful for:

  • Understanding overall server load
  • Planning large catalog updates
  • Avoiding multiple heavy imports on the same day

Create / Edit Schedule (Modal Window)

Key fields (in order of importance):

Field Typical Values Required? Recommendation
Profile Select from existing profiles Yes
Schedule Name e.g., "Daily stock update 03:15" Yes Descriptive name
Enabled On / Off Yes
Frequency Daily / Weekly / Monthly / Custom Cron Yes
Run time(s) 03:15, 15:00 (can be multiple) Daily Choose nighttime
Days of week Mon-Sun (for Weekly) Weekly
Day of month 1-31 (for Monthly) Monthly
Cron expression */15 * * * * (every 15 minutes) Custom For experienced users only
Timezone Europe/Podgorica, Europe/Moscow, etc. Yes Very important!
Date range from ... to ... No For promotions/seasonal
Notification email email@your-store.com No Highly recommended

Secure Cron URL Block — The Most Important Element

What is it:

A special protected URL like:

https://your-site.com/wp-json/pifwc/v1/cron/run?token=xxxxxxxxxxxxxxxxxxxxxxxx

The hosting server must periodically (recommended every 1-5 minutes) access this URL to check and run all active schedules.

Buttons Next to URL

  • Copy → copy to clipboard
  • Regenerate → completely new token (old one stops working immediately!)

Important Token Rules

Action Consequences Recommendation
Generated new token All old crontab links become useless Must update links
Copied but not added to cron Schedules never run automatically Most common mistake
Hosting blocks outgoing requests Even correct crontab won't work Check with hosting
Added to WP-Cron instead of server Very large delays and unreliability Not recommended

Recommended Crontab Line (Most Popular)

Bash:

*/1 * * * * wget -q -O - "https://your-site.com/wp-json/pifwc/v1/cron/run?token=xxxxxxxxxxxxxxxxxxxxxxxx" >/dev/null 2>&1

or more modern with curl:

*/1 * * * * curl -s "https://your-site.com/wp-json/pifwc/v1/cron/run?token=xxxxxxxxxxxxxxxxxxxxxxxx" >/dev/null 2>&1

Note: For detailed cron setup instructions, see the Settings section.

Typical Workflow for Creating a Reliable Schedule

  1. Create and thoroughly test profile in New Import → Save as Profile
  2. (If remote source) → create and test Source in Sources section
  3. Go to Scheduled Imports → Create Schedule
  4. Select profile, give descriptive name
  5. Set nighttime (02:00–05:00)
  6. Enable email notifications
  7. Save
  8. Copy Secure Cron URL
  9. Add to server crontab (every 1–5 minutes)
  10. Wait 5–10 minutes → check "Next Run" and status in table
  11. Next morning check email and Import History

Common Problems & Quick Solutions

Problem Most Likely Cause Where to Look / What to Do
Schedule is on but never runs No server cron or incorrect token Settings → System Cron + crontab
Next Run not updating Cron not running / token expired Regenerate token → update crontab
Import runs but with huge delay Using WP-Cron instead of server Switch to server cron
Too many errors → import stops Too strict error threshold in settings Settings → Scheduled Imports → Error threshold

7. Import History & Logs

Track all import operations with detailed logs and error reports.

Import History & Logs Table

History Table Columns:

  • Date: Import timestamp
  • Profile: Which profile was used
  • Type: Manual or Scheduled
  • Status: Success, Partial Entry, or Failed
  • Added: New products created
  • Updated: Existing products modified
  • Errors: Failed rows
Free

View last 12 import operations.

Pro

Unlimited history with advanced filtering (by status, date range, profile, type).

Detailed Logs:

Click any import to view detailed log with row-by-row processing results, error messages, and execution time.

What is Rollback Function and Why It's Needed

Pro

Rollback allows you to return products to the state they were in before launching a specific import.

This is insurance for cases when:

  • After import, errors were found in data (incorrect prices, descriptions, images, etc.)
  • Categories "went wrong", attributes disappeared
  • Duplicates were created in bulk
  • Simply need to cancel unsuccessful bulk import

Without rollback, the only way to fix the situation is to manually correct thousands of products or re-import the old file (which is often impossible or very time-consuming).

Important: function available only in PRO version.

How It Works (Simple and Clear)

  1. During any import (when existing products are updated), system automatically makes a "snapshot" of each changed product before making changes
  2. These snapshots are saved in database and linked to specific import task
  3. If something went wrong → go to Import History
  4. Opposite the needed completed import, an orange Rollback button (⟲) appears
  5. Click → confirm → system returns all updated products to previous state in a few minutes

What Exactly Gets Restored

Practically everything that can change during import:

  • Name, description, short description
  • Prices (regular and sale)
  • Stock, inventory management, stock status
  • Dimensions and weight
  • Categories and tags
  • Main image and gallery
  • Attributes (including use for variations)
  • Most important meta-fields (GTIN/EAN, upsells, cross-sells, etc.)

What Does NOT Get Restored

  • New products created during import (rollback does not affect them)
  • Deleted products (if import deleted products — rollback will not return them)
  • Changes made manually after import (they will be overwritten with old data)

Where to Find and How to Use (Step by Step)

  1. Go to side menu → Import History
  2. Find the needed completed import (status Completed)
  3. In Actions column, find the orange icon ⟲ Rollback (if no button — either Free version, or import did not create updates, or PRO license inactive)
  4. Click button
  5. Confirmation window appears (with number of products to be restored)
  6. Confirm action
  7. Wait for completion (can take from 10 seconds to several minutes for large product quantities)
  8. Get notification with results:
    • ○ how many products restored
    • ○ how many failed (and why)

Useful Tips for Using Rollback

  • Do rollback as quickly as possible after discovering problem — before other imports have started
  • After successful rollback, snapshots are deleted automatically (repeatedly rollback same import is no longer possible)
  • Recommended to periodically check snapshot table size (Settings → Maintenance)
  • For very large catalogs (>50–100k products), rollback may take longer — run at night
  • If you frequently do risky bulk imports — be sure to use PRO specifically for this function

Quick Checklist "When to Use Rollback"

✓ Import completed, but results look incorrect ✓ Bulk errors appeared in prices/stock/categories ✓ Variations or attributes broke ✓ Need to quickly cancel unsuccessful update before store noticed customers ✓ No ability/time to manually fix thousands of products

Rollback is one of the most valuable PRO version functions for those who regularly work with large or critical catalog updates. This is literally an "undo button" for bulk product changes.

8. Sources (Pro Only)

Pro

Sources is a system of reusable connections to remote data sources. It allows you to configure the connection (credentials, path, authorization) once and then use it in multiple import profiles without having to enter login/password/token each time.

This significantly simplifies working with multiple suppliers, daily updates, or complex supply chains.

Without Sources, every time you create/edit a profile, you would have to re-enter all connection parameters → very high chance of errors and data leaks.

Sources Management - FTP, SFTP, Google Sheets, URL Feed

What Free Users See

When navigating to Sources, a large upsell banner is displayed:

  • Reusable connections to FTP/SFTP
  • Saved URL feeds with authorization
  • Google Sheets integration
  • Test connection with one click
  • "Upgrade to PRO" button

Pro Page Structure

The page consists of the following main elements:

Block / Element Location Purpose Importance
Success/error notifications Top (banners) Show action results: Test, Save, Delete ★★★
Existing sources table Central area List of all created connections ★★★★★
Create buttons/cards Top or bottom of table "Add New Source" → type selection: FTP / SFTP / Google Sheets / URL ★★★★

Sources Table — Main Columns

Column What It Shows Usefulness / Comments
Name Human-readable connection name Most important field — give meaningful names
Type FTP / SFTP / Google Sheets / URL Feed Instantly clear what protocol
Host / URL Server address or full feed URL For quick identification
Login Masked login (••••••••) Security — full password not shown
Status OK / Error / Never tested Very important for monitoring
Last test Date and time of last successful check Helps understand if connection is current
Actions Test / Edit / Delete Main operations

Available Source Types and Their Fields (2026)

1. FTP

Field Required Typical Values Recommendation / Warning
Connection name Yes "Supplier A — main warehouse"
Host Yes ftp.example.com
Port Yes 21 (default) Almost never needs changing
Username Yes
Password Yes Stored encrypted
Remote path Yes /products/feed.csv Specify full path to file or folder

Recommendation: Use FTP only if SFTP is unavailable (outdated, less secure protocol).

2. SFTP (Highly Recommended)

Field Required Typical Values Recommendation
Connection name Yes "Supplier B — SFTP daily"
Host Yes sftp.supplier-b.com
Port Yes 22 Almost always 22
Username Yes
Password / Private key Yes Password or .pem key content Preferably key
Remote path Yes /outgoing/catalog.xml

SFTP Advantages:

  • All traffic encrypted
  • Key support without password
  • Modern servers almost always offer SFTP

3. Google Sheets

Field Required Typical Values / Instructions Important Notes
Connection name Yes "Google Sheets — Daily stock"
Sheet URL Yes https://docs.google.com/spreadsheets/d/ABC.../edit Must be published or accessible via link
Client ID Yes From Google Cloud Console
Client Secret Yes From Google Cloud Console
(instructions) Link to guide for creating OAuth client in Google Cloud Very detailed in plugin

Critical:

  • Sheet must be accessible to the app (share with service account or make public for reading)
  • Better to create a separate tab just for import
  • Avoid frequent structure edits (columns/headers)

4. URL Feed

Field Required Typical Values Authorization Options
Connection name Yes "Supplier C — daily JSON feed"
Feed URL Yes https://supplier.com/api/products.json
Authentication type No None / Basic Auth / API Key / Bearer Token
Username (Basic) For Basic
Password (Basic) For Basic
API Key / Token For Key Entry location depends on type
Header name (custom) For custom Authorization / X-API-Key

Best Practices for URL:

  • Ensure URL returns raw file (CSV/XML/JSON), not HTML page
  • For 403 Forbidden — almost always need authorization
  • For protected feeds, always save in Sources, not paste each time

Recommended Workflow for Using Sources

  1. Go to Sources → Add New Source
  2. Select needed type
  3. Fill all fields, give descriptive name
  4. Click Test Connection → wait for green "Connection successful!"
  5. Save
  6. When creating/editing profile in New Import → at step 1 select created Source instead of manual parameter entry
  7. Periodically (every 1–3 months) return and Test all sources

Common Problems & Quick Solutions

Problem Most Likely Cause Where to Look / Solution
Test → "Connection timed out" Wrong host / port / hosting firewall Check data, ask supplier
Test → "Authentication failed" Wrong login/password/key Recheck (copy again)
Google Sheets → "Access denied" App has no access or sheet not published Recheck access rights in Google
URL → "403 Forbidden" No authorization Add Basic Auth or API Key
After password change nothing works Old saved sources not updated Edit → enter new password → Test → Save
Source status "Never tested" Nobody clicked Test yet Just test it

9. Settings

Settings - Debug, Scheduled Imports, System Cron

General

Free

Default import settings: batch size, timeout limits, default matching method, error handling behavior.

Performance

Pro

Chunk size configuration, memory limits, parallel processing options for large imports.

Notifications

Pro

Email notifications for import completion, errors, or scheduled task failures. Configure recipients and notification triggers.

Advanced

Pro

Debug mode, detailed logging, custom field handlers, developer hooks and filters.

10. License

License activation is required only for the Pro version and enables automatic updates, priority support, and full access to Pro features.

Activation Steps:

  1. Navigate to Settings → License
  2. Enter your license key from purchase confirmation email
  3. Click Activate License

License Information:

  • License status (Active/Inactive)
  • Remaining activations
  • Expiration date (if subscription-based)
  • Manage Domains button to view/revoke activations

11. Help / Docs

Available in both versions:

  • Quick start guide with step-by-step instructions
  • Video tutorials for core features
  • Full text documentation
  • System diagnostics (WordPress, WooCommerce, PHP versions, memory)
  • Contact support form
  • FAQ section

12. Field Mapping Cookbook: Practical Recipes

Common field mapping scenarios and solutions.

Recipe 1: Basic Product Import

CSV Columns: sku, title, price, stock, description

Mapping:

  • sku → SKU
  • title → Product Title
  • price → Regular Price
  • stock → Stock Quantity
  • description → Product Description

Recipe 2: Price Update Only

CSV Columns: sku, sale_price

Mapping:

  • sku → SKU
  • sale_price → Sale Price

Update Logic: Match by SKU, Update only mapped fields

Recipe 3: Categories from CSV

CSV Format: categories column with comma-separated values

Example: "Electronics, Accessories"

Mapping: Drag categories column to Product Categories field

Plugin will automatically create categories if they don't exist

Recipe 4: Image URLs Import

CSV Column: image_url with full URLs

Example: https://example.com/images/product.jpg

Mapping: Drag image_url to Main Image field

Plugin will download and attach images to products

13. Update Logic Explained

Understanding how the plugin decides whether to create new products or update existing ones.

Matching Methods:

1. Match by SKU (Recommended)

How it works:

  • Plugin searches for existing product with same SKU
  • If found: Updates the product
  • If not found: Creates new product

Best for: Most imports. SKU is unique identifier.

2. Match by Product ID

How it works:

  • Uses WooCommerce internal product ID
  • Directly updates product by ID

Best for: Exports from same site, advanced users.

3. Match by Title

How it works:

  • Searches for product with exact same title
  • Case-sensitive comparison

Warning: Not recommended. Can cause issues with duplicate titles.

4. Always Create New

How it works:

  • Never checks for existing products
  • Always creates new products

Best for: Initial catalog import, one-time bulk uploads.

Update Behaviors:

Update all fields:

Overwrites all mapped fields with new values from import file.

Update only empty fields:

Only fills in fields that are currently empty. Preserves existing data.

Skip existing products:

Imports only new products. Ignores products that already exist.

14. Operational Playbook: Daily and Safe Usage

Best Practices:

  • Always backup before imports: Use your hosting backup or WordPress backup plugin
  • Test on staging first: Never test imports on live site
  • Start with small test: Use "Test Import (First 10 Rows)" feature
  • Verify field mappings: Double-check all mappings before launch
  • Monitor import logs: Check for errors after each import
  • Use SKU matching: Most reliable method for updates

Daily Operations Workflow:

  1. Prepare import file (CSV with clean data)
  2. Select saved profile or create new import
  3. Review field mappings
  4. Set update logic (usually "Match by SKU")
  5. Run test import with 10 rows
  6. Verify test results in WooCommerce
  7. Launch full import
  8. Check import log for errors
  9. Spot-check products in store

Common Mistakes to Avoid:

  • Importing without backup
  • Using "Delete products not in import" without testing
  • Mapping wrong columns (e.g., description to title)
  • Not checking for errors in import log
  • Running large imports during peak traffic hours

15. Scheduled Imports Setup (Pro): Step-by-Step

Pro

Setup Process:

  1. Create and test import profile:

    Run manual import first, verify it works correctly, save as profile.

  2. Navigate to Scheduled Imports:

    Click "Create Task" button.

  3. Configure task settings:
    • Task name (e.g., "Daily price update")
    • Select import profile
    • Choose frequency (Daily/Weekly/Monthly/Custom)
    • Set time (e.g., 14:30)
  4. Enable incremental import (optional):

    Only imports products that changed since last run.

  5. Configure notifications:

    Email on success/failure, Slack webhook, etc.

  6. Save and activate task:

    Task will run automatically at scheduled time.

  7. Monitor task execution:

    Check task history and logs regularly.

Tip: Schedule imports during low-traffic hours (e.g., 2:00 AM) to minimize server load impact.

16. Security & Permissions

User Roles & Capabilities:

By default, only Administrators can access the Product Importer. You can configure permissions in Settings → Access Control (Pro).

Administrator:

Full access to all features

Shop Manager:

Can be granted access via Settings (Pro)

Custom Roles:

Configure granular permissions (Pro)

Data Security:

  • Uploaded files are stored securely in WordPress uploads directory
  • Files are automatically deleted after 30 days
  • FTP/SFTP credentials are encrypted in database
  • API keys are never logged or displayed in plain text
  • Import logs contain no sensitive data

Security Best Practices:

  • Use SFTP instead of FTP for remote connections
  • Regularly rotate API keys and passwords
  • Limit user access to only necessary roles
  • Enable WordPress security plugins
  • Keep plugin updated to latest version

17. Troubleshooting Quick Index

Common Issues & Solutions:

Import fails with timeout error

Solution:

  • Reduce batch size in Settings → Performance
  • Increase PHP max_execution_time
  • Split large file into smaller chunks

Products not updating, only creating new ones

Solution:

  • Verify SKU matching is enabled
  • Check that SKUs in import file match existing products
  • Ensure SKU field is mapped correctly

Images not importing

Solution:

  • Verify image URLs are accessible (test in browser)
  • Check WordPress uploads directory permissions
  • Ensure allow_url_fopen is enabled in PHP
  • Try using direct URLs instead of relative paths

Categories not created automatically

Solution:

  • Check category names for special characters
  • Use exact category names (case-sensitive)
  • Enable "Create categories if not exist" in Settings

CSV file not parsing correctly

Solution:

  • Try different delimiter (comma, semicolon, tab)
  • Check file encoding (should be UTF-8)
  • Remove BOM (Byte Order Mark) from file
  • Ensure no empty rows in CSV

Scheduled imports not running

Solution:

  • Verify WordPress cron is working (check System Status)
  • Check server time zone matches WordPress settings
  • Ensure task is enabled (not paused)
  • Review task logs for error messages

Getting Help:

If you cannot resolve the issue:

  • Check Help / Docs page for video tutorials
  • Review import logs for detailed error messages
  • Contact support with: WordPress version, WooCommerce version, PHP version, error log
  • Pro users: Priority support via email or live chat

Ready to streamline your WooCommerce imports?

Get started with Product Importer today!

Popular Resources

Video Tutorials

Watch step-by-step video guides

Watch Now

Get Support

Can't find what you need?

Contact Support

Still have questions?

Our support team is here to help you succeed

Contact Support