Product Import Configuration
The Product Import integration allows you to batch-create WooCommerce products from a remote service. It handles product creation, attribute mapping, category hierarchy, and conditional skipping of products.
General Options
Create product types
Determines which products are created in WooCommerce:
- Only simple products: All remote products are created as simple WC products.
- Only variable products: Attempts to group remote products into variable products.
- Both simple and variable products: (Default) Mixed creation based on grouping logic.
Import images
If checked, the plugin will fetch the featured image and any gallery images from the remote service and attach them to the WooCommerce product.
Attribute Configuration
The attributes table allows you to map remote data paths to WooCommerce product attributes.
| Column | Description |
|---|---|
| Attribute name | The label for the attribute in WooCommerce (e.g., "Color"). |
| Attribute (WC) | A dropdown to select an existing global WooCommerce attribute (taxonomy). |
| Field key (remote) | A dropdown to select the source field from the remote service (e.g., "Color" or "Brand"). |
| Separator | If the remote field contains multiple values, specify the separator (e.g., :). |
| Separator nth | Specify which part of the separated value to import (1-based index). Leave empty to import everything. Example: If the remote field is Color:Red and you use : as a separator: - Index 1 imports Color - Index 2 imports Red |
| Is visible | If checked, the attribute is visible on the product page in the "Additional Information" tab. |
| Is variation | If checked, the attribute is used for product variations. |
| Is taxonomy | If checked, the data is saved as a global WC attribute (taxonomy). |
| Sort | Determines how attribute terms are sorted when saved to the product. This ensures attributes like sizes or colors appear in a logical order rather than the order they are received. Example: If remote sizes are sent as 44, 40, 42, choosing Numeric Sort will save them as 40, 42, 44 on the product page. |
Category Synchronization
Remote categories are automatically imported during product creation. The system:
- Recursively builds the category tree from the remote service.
- Creates matching
product_catterms in WooCommerce. - Stores the remote category ID in term meta to prevent duplicates.
You can skip products based on their category by selecting Category Name from the dropdown in the Skip Config.
Skip Configuration (Product Filtering)
The skips table uses OR logic. If any rule in the table matches a product, that product will be skipped (not imported).
Available Operators
| Operator | Usage |
|---|---|
is equal to | Skips if the field exactly matches the value. Example: Category Name is equal to Accessories will skip all products in that exact category. |
is not equal to | Skips if the field does not exactly match the value. Example: Brand is not equal to Nike will skip everything except Nike products. |
contains | Skips if the field contains the specified string. Example: Product Name contains Refurbished will skip all products with "Refurbished" in their title. |
does not contain | Skips if the field is missing the specified string. Example: Product Name does not contain New will skip products that don't have "New" in the title. |
is in list | Skips if the field matches any item in a comma-separated list. Example: Brand is in list Adidas, Puma, Reebok will skip all three brands. |
is not in list | Skips if the field is not found in the comma-separated list. Example: Category Name is not in list Running, Training will skip any product not in those two categories. |
Field Configuration Examples
The Field key (remote) is a dropdown that lists various data sources from the remote service. Examples of what you will see in the dropdown:
- Product Code: The SKU or reference code.
- Category Name: A list of all assigned category names.
- Brand (or other attribute names): Accesses a specific product attribute.
Examples & Common Pitfalls
❌ The "Double Not" Pitfall (Broken Whitelisting)
If you want to sync only products from "Category A" and "Category B", do NOT do this:
- Skip if Category Name
is not equal toCategory A - Skip if Category Name
is not equal toCategory B
Why? A product from "Category A" will trigger rule #2 (because it's not Category B) and will be skipped.
✅ Correct Whitelisting (Using 'not in list')
To sync only specific categories, use a single rule:
- Field: Category Name
- Operator:
is not in list (comma separated) - Value:
Category A, Category B
This evaluates the product's categories against your list in one check.
Skipping by Brand
- Field: Brand
- Operator:
is equal to - Value:
GenericVendorResult: Any product with the exact brand "GenericVendor" will be ignored.
Running & Scheduling Imports
The product import process is a heavy task that can be triggered in two ways:
Admin UI (Small Catalogs)
Inside the integration settings, use the Create products from Remote button.
- When to use: Best for initial setup, testing, or very small product sets.
- Warning: This runs within your browser session. If you have a large product set, the server will likely time out before finishing.
WP-CLI (Large Catalogs & Production)
For reliable performance, always use the command line. This bypasses web server limits:
wp <service-slug> create-wc-products
Note: Replace <service-slug> with the name of your specific plugin, such as alta, fina, odoo, etc.
Scheduling & Best Practices
- Import Frequency: Since importing involves creating records and downloading images, it is recommended to schedule this command via Cron only once per day (e.g., at midnight).
- Import vs. Sync: Do not confuse Importing with Syncing.
- Importing (creating new products) should run once a day.
- Syncing (updating price/stock) can run every 10-15 minutes.
- Images: Only enable the "Import images" option if absolutely necessary, as it significantly increases the time required for each import.
View Raw Products (Debugging)
Next to the import button, you will find the View Raw Products button.
- Purpose: This button allows you to see exactly how the plugin "sees" the product catalog as it comes directly from the remote source.
- Usage: Use this for debugging to verify if specific fields (like Brand, Category, or SKU) are being correctly retrieved before you attempt an actual import.