WDOnline Product CSV Manager for WooCommerce

Description

Plugin details and documentation: https://wdonline.dk/wdonline-product-csv-manager-for-woocommerce/

WDOnline Product CSV Manager for WooCommerce helps you export exactly the product data you need, without exporting every custom meta field on your shop.

  • Select WooCommerce standard columns and individual custom meta keys.
  • Search meta fields by exact name or prefix and see rows with content and a sample.
  • Zero values are retained. Hide empty fields without losing selections.
  • Optionally omit selected meta columns that are empty throughout the selection.
  • Save, edit, copy, and delete reusable export profiles. Mark individual profiles or select all for bulk deletion.
  • Reorder columns by drag and drop or accessible move buttons.
  • Filter by product categories and their subcategories, parent product types, statuses, and specific products found by name, SKU, or ID.
  • Include variations as separate rows, with parent references in WooCommerce’s native format.
  • Analyze products in batches automatically when previewing or downloading. Preview is optional.
  • Download UTF-8 CSV with comma or semicolon delimiters.
  • Access is restricted to catalog managers. Export snapshots and uploaded CSV data have no public file URL.
  • Import UTF-8 CSV files with native column mapping, scalar custom meta, and create/update modes.
  • Resume uploads and imports after a stopped request or a closed browser.
  • Download a complete row results report with failed/skipped rows.

Administration is available under Products > Product CSV Manager. The plugin works independently, with WooCommerce as its only required plugin dependency.

First export

  1. Choose Products, then filter the selection or leave categories/types empty to export all products with the selected statuses. Published is the default.
  2. Choose fields to select product columns. Use Find meta fields to discover custom fields, or expand Add a field by its key to enter an exact key.
  3. Choose Review export. Drag selected columns into order and choose the separator, then preview the first ten rows or download CSV directly.
  4. Save these settings as a profile is available below every export step. Save the selection for next time, update the loaded profile, or save a new copy without moving to the last step.
  5. Load a profile from the bar at the top to go directly to review/download. You can revisit Products or Fields at any time. New export resets the workflow.

The export status shows preparation and CSV writing separately. CSV writing counts snapshot rows visited, including rows skipped because their data or permissions changed. Once the server finishes sending the CSV, check your browser downloads for the saved file.

The ID selection is frozen when analysis starts. Data is captured in batches and can reflect edits made while analysis is running. Preview and download read the captured snapshot. Reanalyze to refresh it. Deleted products or revoked access can cause rows to be skipped.

Resumable CSV import

  1. Open Import and select a UTF-8 CSV (comma or semicolon). Upload new CSV sends 96 KB chunks, avoiding a single large upload request.
  2. Review the native auto-mapping. Choose Do not import for columns you want to leave untouched. Update existing products only is the default. You can also create only, or create and update.
  3. New products/variations require a non-empty unique SKU so a saved row can be identified after a lost response. Update-only imports can match by SKU or a local product ID. IDs belong to the current site: skip ID when moving products between sites.
  4. Import parent variable products before variations. Parent/related product references must already exist, using SKU or id: references; unresolved references fail the row instead of creating placeholders.
  5. Start / resume import processes up to five rows per request by default, with a checkpoint after each row and an eight-second budget between rows. Set one row per request for slow images. A single image download or third-party hook can still exceed a hosting timeout.
  6. Pause after current request stops the browser loop after the current request. If a network request fails, reopen Import, choose the saved run, Load saved run, and Start / resume import. Progress comes from the server, not the browser. Incomplete uploads require the original file again; already uploaded chunks are compared byte-for-byte before missing chunks are stored.
  7. Follow the progress bar and CSV percentage, based on bytes processed (not an estimated number of products). Review created/updated/failed/skipped counts. The latest twenty row errors/skips appear on screen; Download results report includes all processed rows. Failed rows are recorded and processing continues. Correct those rows and import a corrected CSV separately; completed jobs do not automatically retry failures.

Imports require catalog management and product publishing rights, and object access is checked for existing/related products. Image mapping additionally requires upload_files. File/mapping review does not change products; starting the import does. Mapped blank values follow WooCommerce’s importer and may clear fields, while unmapped fields remain untouched.

Each import belongs to its uploader. Jobs use connection-owned database mutexes to prevent overlapping requests for the same run. Row receipts and temporary product markers recover completed saves if an acknowledgement/checkpoint was interrupted. This does not provide a transaction or guarantee that third-party hooks/image side effects run exactly once after an interruption during a save. Imported product changes are not rolled back when a run is paused or deleted.

Limits: 250 MB per CSV, 2,000 unique headers, 4 MB per CSV record, 1–25 rows per request, and twenty retained imports per user. Source data is kept as private database chunks, not public uploads. Memory use is bounded by the current record rather than the whole file. Hosting/database capacity still applies. Incomplete runs expire seven days after last activity; completed source CSV chunks are removed immediately and row results retained for seven days. Delete selected import data removes that run’s upload/results without deleting imported products. Deactivation retains imports for resuming after reactivation. Hourly/opportunistic cleanup removes expired data.

CSV and field safety

When WDOnline Quantity Discounts is active, map Meta: _wdonline_qd_quantity_discounts to import direct quantity prices such as 2|14.00;3|11.00. Edited prices update the rule-builder data as fixed unit prices, including on variations. Unchanged exported prices preserve existing percentage rules, even when the regular price is updated in the same row. A mapped empty cell removes the direct rules; category discounts may still apply. Invalid tiers fail the row before product changes are saved. Discount fields set to Do not import remain untouched.

Standard column headers and attribute/download groups follow the installed WooCommerce exporter. Custom meta uses Meta: key headers. Prices use stored decimal values rather than localized display formatting. Descriptions use WooCommerce’s native newline convention.

Repeated meta records and serialized, array, or object values are blocked for ordinary export. Internal and potential credential fields are blocked, including manually added keys. Unknown field ownership is not inferred from its prefix. Fields may contain sensitive text: only select data appropriate for your intended use.

Formula-like text is prefixed with an apostrophe for spreadsheet safety. Numeric negative values are preserved. This protection can affect how literal formula-like text is reimported; check those values before importing. Export does not change product data. Import changes mapped fields using WooCommerce’s normal behavior.

Privacy and retention

Analysis temporarily stores product snapshots and authorized field examples in two local database tables. Snapshots expire after one hour of inactivity. Access is refused after expiration; physical cleanup happens through hourly WP-Cron or the next analysis. Cancelling a job or deactivating the plugin removes temporary snapshots. Deactivation retains profiles, settings, and resumable import jobs; uninstall deletes this plugin’s tables, profiles, settings, CSV uploads, receipts, and operational product recovery markers. Imported products and their custom data remain.

No telemetry or analytics is sent to external services. Importing image URLs contacts the specified image hosts through WooCommerce’s normal image downloader. The support button opens PayPal only when clicked. Optional diagnostic hooks expose technical version/dependency/schema information and error codes, without product values or customer information. WD Online Support Diagnostics is not required.

Scope and limits

This version includes selective export and resumable CSV import using WooCommerce’s native field parsing and product CRUD. Imports update products immediately; there is no automatic rollback.

Only the classic WordPress post/postmeta product storage is supported. No external product storage adapter is included. Category selections include all descendant categories at every level. Variation type/category filters use the parent; both row and parent statuses must match. Selecting a variation exports only that variation when variations are enabled.

There is no fixed product-count cap. Safety limits are 2,000 discovered meta keys, 2,000 standard/dynamic headers, 4 MB per snapshot row, 500 specific product IDs, and 100 saved profiles. Processing time and database space depend on the catalog and hosting. Reduce the batch size on slow hosting. Final CSV download is streamed; very large downloads may still be limited by a hosting or proxy timeout.

Profiles use explicit field selections and retain keys absent from a current product selection. New fields are never automatically added. Profiles are shared with authorized catalog managers on the same site.

Support WD Online

Enjoying WDOnline Product CSV Manager for WooCommerce? You can help support its continued development.

Support via PayPal or card: https://www.paypal.com/ncp/payment/NKERMAVC4PXML

Installation

  1. Install and activate WooCommerce.
  2. Upload the plugin ZIP using Plugins > Add New > Upload Plugin.
  3. Activate the plugin.
  4. Open Products > Product CSV Manager.

FAQ

Does exporting change products?

No. Export analysis and CSV download do not update product fields or delete empty meta keys. Import does modify product data.

Can I choose only a few custom fields?

Yes. Choose exact meta keys, independently of the standard columns, and save that selection as a profile.

Can I import the exported file?

Suitable standard and scalar text fields can be mapped in this plugin’s Import tab or WooCommerce’s built-in importer. Use stable SKUs across different shops; IDs are site-specific. Third-party fields can require plugin-specific validation or referenced objects, and their safe round trip is not guaranteed. Test on a staging site before importing.

Can I export complex plugin settings?

Complex and repeated values are detected and blocked in this version. They need a separately tested adapter rather than an automatic conversion to text.

Do I need another WD Online plugin?

No. The plugin works independently. Optional diagnostics integrations do not affect ordinary exports.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“WDOnline Product CSV Manager for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

0.3.6

  • Add the plugin page on wdonline.dk as Plugin URI and link it from the readme.

0.3.5

  • Review metadata, translation coverage, request validation, and uninstall cleanup against WD Online standards.
  • Reject malformed integer inputs and product IDs instead of silently coercing them.
  • Translate import results CSV column headings.
  • Remove stored download progress transients when uninstalling.

0.3.4

  • Choose categories, product types, and product statuses using checkboxes.
  • Existing profiles restore their checked filters; New export restores the published-only default.
  • Rename Update loaded profile to Save loaded profile.

0.3.3

  • Export progress is visible in every step: preparation, CSV writing, processed rows, and percentage.
  • Downloads report server-side CSV writing progress while the browser streams the file.
  • Import and upload progress bars include a percentage; import retains processed/created/updated/failed/skipped counts.

0.3.2

  • Save, update, or copy an export profile from any of the three export steps.
  • The shared profile editor preserves its name and description when switching steps.

0.3.1

  • Profiles now use a table with individual checkboxes and a select-all checkbox.
  • Delete marked profiles together without loading them first, with a confirmation listing their names.
  • Open any profile directly in Export. Deleting a loaded profile keeps the current export selection.

0.3.0

  • Redesigned the administration with a three-step export workflow, separate profile loading, and profile saving alongside download options.
  • Added clear navigation, selected-field counts, collapsible guidance, responsive cards, and consistent visual styling.
  • Separated new uploads and saved import runs; keep mapping and active results in focus while processing.

0.2.2

  • Synchronize edited Quantity Discounts CSV prices with saved rule-builder data during import, including variations and clearing direct discounts.
  • Preserve unchanged percentage rules and validate discount tiers before saving.

0.2.1

  • Apply native WooCommerce meta and row export filters to validated custom fields, including WDOnline Quantity Discounts formatting and current percentage prices.
  • Keep blocked, serialized and repeated raw meta excluded; recheck transformed values before snapshotting previews and CSV downloads.

0.2.0

  • Moved Product CSV Manager to the Products menu.
  • Added private chunked CSV uploads, native column mapping, and create/update import modes.
  • Added short import requests, per-row checkpoints, saved run selection, pause/resume, and interrupted-save recovery.
  • Added a downloadable results report, row errors/skips, import ownership controls, and seven-day cleanup.
  • Preserve incomplete import runs on deactivation and remove only plugin data on uninstall.

0.1.3

  • Preview and download automatically analyze the selection when necessary, including immediately after loading a profile.
  • Download CSV without first creating a preview.
  • Added drag-and-drop column ordering while retaining accessible move buttons.
  • Added independent profile selection, named deletion confirmation, and load/edit actions in Profiles.

0.1.2

  • Include all subcategory levels when filtering by a product category, including variations belonging to matching parent products.

0.1.1

  • Fixed New export to reset all export filters, fields, ordering, previews, and profile state without leaving the page.
  • Moved profile saving into Export, with explicit update-loaded-profile and save-as-new actions.
  • Fixed simple product filtering for products without an explicit product_type term.
  • Clear stale meta statistics when filters change and reset meta display filters after analysis.
  • Show analyzed row/field counts and explain zero matches or hidden internal fields.

0.1.0

  • Initial export release with selective standard/meta fields, reusable profiles, bounded analysis, frozen snapshot previews, and protected CSV downloads.
  • Added optional privacy-safe diagnostics registration and technical error-code hook.
  • Added the shared WD Online support box.