Bulk import products to WooCommerce from supplier PDFs
Bulk import products to WooCommerce by uploading supplier spec sheets and catalogs. Doc2Shelf extracts the product data a WooCommerce listing needs — name, SKU, price where stated, weight, dimensions, and other specifications — and writes the long and short descriptions. It creates a simple draft product with the name, descriptions, SKU, price, stock, categories, and images; weight, dimensions, and other specifications appear in the description copy rather than in WooCommerce’s attribute or shipping fields.
Because publishing happens over the WooCommerce REST API, you avoid the usual CSV pitfalls — column mismatches, delimiter errors, broken encodings, and re-import loops. Review the product in Doc2Shelf, then send it to your store as a draft.
Product specifications and draft publishing
Doc2Shelf includes reviewed specifications in the product description and sends the long and short descriptions to WooCommerce. The current integration creates simple products as drafts; configure global filter attributes and variable products separately in WooCommerce.
Before sending a batch, review the copy, SKU, price, stock, categories, and images. Open the resulting drafts in WooCommerce to check formatting and store settings before making them live.
EU and US compliance drafts from the same documents
When the selected workflow and product requirements call for them, Doc2Shelf prepares GPSR safety-content drafts, EU/US declaration drafts, and DPP-oriented structured data from the same source documents. A person reviews the applicable fields before using the product data with WooCommerce or exporting separate declaration and preparation outputs.
What Doc2Shelf sends to WooCommerce
Each reviewed listing becomes one new WooCommerce product, created through the WooCommerce REST API as a simple product with the status Draft. The table lists the fields Doc2Shelf fills and where each value comes from.
Everything else is left for you to set in WooCommerce: product attributes and variations, tags, the GTIN, UPC, EAN, or ISBN field, the weight and dimension fields, sale price, tax class, and shipping class. The extracted specifications are still on the product page as part of the description, but they are not stored as WooCommerce attribute fields.
WooCommerce fields set when Doc2Shelf creates a product| WooCommerce field | Source | Notes |
|---|
| Name | The reviewed listing title | Required. |
|---|
| Type | Always simple | Variable products are not created. |
|---|
| Status | Always draft | Publish it in WooCommerce when ready. |
|---|
| Description | Long description, feature bullets, specifications, and the GPSR block when present | Combined into one description with basic formatting. |
|---|
| Short description | The listing’s short description | Shown wherever your theme displays the product summary. |
|---|
| Regular price | A price found in the document, or entered by you | Left empty when there is no price. |
|---|
| SKU | The product’s SKU | Must be unique in your store. |
|---|
| Stock | The quantity you set | Stock management is switched on for the product. |
|---|
| Categories | An existing category, or a path you type such as Kitchen / Kettles | Missing levels of the path are created. |
|---|
| Images | Product images you select | WooCommerce downloads them into your media library, with alt text. |
|---|
WooCommerce CSV importer or Doc2Shelf
The built-in importer is the right tool when your data is already in a spreadsheet; Doc2Shelf is for creating products whose data is still in supplier PDFs. The comparison is about scope, so you can decide which job goes where — many stores use Doc2Shelf for new products and the CSV importer for later bulk price and stock updates.
| Aspect | WooCommerce CSV importer | Doc2Shelf |
|---|
| Input | A CSV file in WooCommerce’s column format | Supplier PDFs: spec sheets, datasheets, catalogs |
|---|
| Product types | Simple, variable, grouped, and external | Simple products only |
|---|
| Attributes and variations | Attribute columns plus parent and variation rows | Not created; set them up in WooCommerce |
|---|
| Product copy | Whatever is in the description columns | Drafted from reviewed extracted data, then edited by you |
|---|
| Images | Public URLs, first one featured; no alt text | Selected images sent with alt text |
|---|
| Status | Set by the Published column | Always draft |
|---|
| Existing products | Updated by matching ID, then SKU | Not changed; each send creates a new draft |
|---|
| Categories | “Parent > Child” paths in a column | Pick an existing category or type a path |
|---|
| Checks before import | None built in | Review gate before anything is sent |
|---|
| Best for | Bulk edits, price and stock updates, variable catalogs | New simple products from supplier documents |
|---|
Connecting your WooCommerce store
You connect a store by entering its address. Doc2Shelf then sends you to your own WooCommerce site, where WooCommerce shows its standard authorization screen asking whether Doc2Shelf may read and write store data. When you approve, WooCommerce creates an API key for Doc2Shelf, which Doc2Shelf stores encrypted. You never copy or paste keys yourself.
Doc2Shelf uses this access to create draft products, read your product categories, and create the categories you ask for. You can withdraw it at any time by revoking the key in WooCommerce under Settings → Advanced → REST API, or by disconnecting the store in Doc2Shelf.
- Enter the store’s full HTTPS address exactly as visitors reach it. Doc2Shelf does not follow redirects, so a www or non-www mismatch causes connection errors.
- The store must be reachable from the public internet; local and intranet-only sites cannot be connected.
- Approve the connection while signed in to WordPress with an account that can manage WooCommerce.
- If Doc2Shelf reports that the store rejected its key, reconnect the store so WooCommerce issues a new one.
Variable products: what Doc2Shelf creates and what you set up
Doc2Shelf creates simple draft products only. It does not create variable products, variations, or WooCommerce attributes — neither the global attributes used by filters nor product-level custom attributes. One reviewed listing becomes one simple product, with its specifications written into the description.
When a supplier document covers several sizes or colors that you want to sell as one product with a dropdown, create the draft with Doc2Shelf and convert it in WooCommerce:
- Open the draft and change the product data type from Simple product to Variable product.
- Under Attributes, add the attribute (for example Size), enter its values, and tick “Used for variations”.
- Generate the variations, then give each one its own SKU, price, and stock.
- Create the attributes shoppers should filter by as global attributes under Products → Attributes.
- Edit the description so it no longer describes a single size or color, then check the product page before publishing.
Review workflow from supplier PDF to live product
Every product passes two checkpoints. In Doc2Shelf, the extracted product data and the listing must both be marked as reviewed before anything can be sent, and editing either one after review clears the review. Each extraction carries a confidence score and a completeness score, and information the document did not contain appears as a [REQUIRED: …] placeholder instead of a guess. A listing with open placeholders is blocked from sending unless you choose to strip them.
In WooCommerce, the product arrives as a draft. Check it in your theme before publishing: description formatting, featured image and gallery order, category placement, price, stock, and the tax and shipping classes Doc2Shelf does not set.
For larger catalogs, upload up to 500 PDFs in one batch, within your plan’s document allowance, and send reviewed products in bulk with shared defaults such as a starting stock quantity and a percentage markup on prices found in the documents. Products that are not yet reviewed are skipped and reported. If a SKU already exists in your store, WooCommerce rejects the new product and Doc2Shelf shows the error, so existing products are not overwritten.