Appearance
OnixFeed WooCommerce Plugin
The OnixFeed WooCommerce plugin syncs your catalogue into WordPress. OnixFeed builds shop CSVs on the Woo channel of a store collection (on demand or on a schedule). The plugin pulls those files and creates or updates WooCommerce products, contributors, publishers, and reviews.
It is a one-way sync: OnixFeed is the source of truth. Edits you make only in WooCommerce are overwritten the next time you import that ISBN.
How sync works
OnixFeed catalogue
→ Store collection (assign books)
→ Woo channel (market, price, access key, schedule)
→ Generate CSVs (manual or scheduled)
→ Plugin Refresh List + Import
→ WooCommerce products and related posts- An administrator prepares titles in OnixFeed and runs store readiness.
- Those titles sit in a store collection with a Woo channel. CSVs can rebuild on a schedule on that channel.
- In WordPress, open OnixFeed Woo → Book Import, click Refresh List, then Import each file.
- With Update Existing Products on, the plugin matches products (typically by SKU / ISBN) and updates them instead of creating duplicates.
There is no WordPress setting for “sync every hour”. Recurring updates are Regenerate CSVs on schedule on the Woo channel plus a regular import in WordPress (or after you click Generate on the channel).
What it does
- Imports and updates books as WooCommerce products
- Syncs contributors, publishers, and reviews as custom post types
- Maps ONIX contributor roles (for example A01 author, A12 illustrator)
- Builds language variants with URLs such as
/product/book-title/afrikaans/ - Swaps description and image when the shopper is on a language variation
- Applies product taxonomies: collections, series, languages, Thema, and related qualifiers
- Downloads cover images from CSV URLs (optional)
- Optional JetEngine relationships for author, publisher, and review archives
- Storefront shortcodes for language buttons, authors, collections, and related book data (new ones are added regularly)
Store collections and CSV generation are admin tasks in OnixFeed.
Requirements
- WordPress 5.0 or higher
- WooCommerce 5.0 or higher
- PHP 7.4 or higher
- An OnixFeed install and a hub-provisioned API token (there is no publisher self-serve key screen)
- JetEngine (optional) if you want Query Builder relations on the storefront
Installation
- Upload the plugin folder to
/wp-content/plugins/. - Activate it under Plugins.
- Confirm WooCommerce is active.
- Open OnixFeed Woo in wp-admin.
The plugin has two tabs: Book Import and Settings.
Settings
Open OnixFeed Woo → Settings. Use Test Connection after you save.
| Setting | What it does |
|---|---|
| API URL | OnixFeed frontend / API base URL (include https://) |
| API Token | WooCommerce access key generated on the Woo channel (shown once). WordPress sends this with the collection key |
| Collection Key | Exact collection key on the OnixFeed book list |
| Batch Size | How many products to process per batch (default 50, max 100) |
| Update Existing Products | Match existing products and update them (keep this on for sync) |
| Download Product Images | Download covers from CSV URLs into the media library |
| Force Download Images | Re-download and replace images that already exist for the same URL |
If authentication fails, check the Woo access key. If the collection is not found, check the collection key. CSVs are generated on the Woo channel in OnixFeed, not in WordPress.
Syncing books (import)
1. Generate CSVs in OnixFeed
- Go to E-commerce → Store collections (admin).
- Create or open a collection, Manage Books, and add a WooCommerce channel if there is none.
- On the Woo channel, generate Contributors, Publishers, Reviews, and Books - or wait for Regenerate CSVs on schedule.
See Store collections.
2. Import in WordPress
- Open OnixFeed Woo → Book Import.
- Click Refresh List so the latest CSVs appear.
- For each file, Download (optional) or Import. Confirm when asked - import creates or updates products.
- Import in this order so links resolve:
- Contributors
- Publishers
- Reviews
- Books (last)
The import can take several minutes on a large list with images. The result shows how many rows were imported vs updated.
Always import books last. Back up WordPress before a first full sync.
What gets created
Products
Each book becomes a WooCommerce product with title, description, cover, price and stock, ISBN, publisher, publication metadata, language, and subjects when those fields are in the CSV.
Language variants
For multi-language titles the plugin can create a variable product and variations with clean URLs:
/product/book-title/english//product/book-title/afrikaans/
On a language archive or variation URL, the plugin selects the matching variation and can swap description and image.
If variation URLs 404, go to Settings → Permalinks in WordPress and click Save Changes (flush rewrite rules).
Custom post types
| Type | Purpose |
|---|---|
| Contributors | Authors, illustrators, editors, translators |
| Publishers | Publishing companies |
| Reviews | Review quotes and endorsements |
Taxonomies on products
Taxonomy terms come from the OnixFeed collection CSV (taxonomy config is per collection in OnixFeed). The plugin registers:
| Taxonomy | Typical use |
|---|---|
| Collections | Store / series groupings |
| Series | Book series |
| Languages | Product language |
| Thema Subjects | Subject categories |
| Age Ranges / Grade Levels | When present in the feed |
| Thema place, language, time, educational, interest, style qualifiers | Thema extras |
Contributor roles are a taxonomy on the Contributors post type (ONIX role codes mapped to labels).
Languages
The plugin imports every ONIX language OnixFeed sends (ISO 639-2/B codes). Language variants, taxonomies, and storefront language tools work for any of those codes - not a fixed regional list.
That includes the official South African languages, among others:
| Code | Language |
|---|---|
eng | English |
afr | Afrikaans |
zul | isiZulu |
xho | isiXhosa |
nso | Sepedi (Northern Sotho) |
tsn | Setswana |
sot | Sesotho (Southern Sotho) |
ven | Tshivenḓa |
tso | Xitsonga |
ssw | siSwati |
nbl | isiNdebele |
See ONIX reference for more language codes. If a title uses another code (for example fra, deu, or zho), it imports and can have its own language variant the same way.
Shortcodes
Use these in a product template, page, or an Elementor Shortcode widget. This list is a starting point - new shortcodes are added regularly. The plugin itself always has the most up-to-date set. If you need the current list or a shortcode that is not here, contact us.
| Shortcode | What it does |
|---|---|
[language_version_buttons] | Buttons that link to other language versions of the same book |
[language_version_buttons display="list"] | The same links as a text list instead of buttons |
[onixfeed_author] | The main author on the current product |
[onixfeed_authors] | All authors as links (typically to contributor archives) |
[onixfeed_other_contributors] | Non-author roles on the title - illustrators, translators, editors, and similar |
[onixfeed_collections] | Collections or series the book belongs to |
[onixfeed_translated_title] | The title in the current language context (useful on language taxonomy pages) |
You do not need these for import or sync. They only affect how the shop displays data after products are in WooCommerce.
JetEngine (optional)
If JetEngine is installed, create these relations in JetEngine → Relations so listing grids and author pages work:
| Relation | Type |
|---|---|
| Product Contributors | Products ↔ Contributors (many to many) |
| Product Reviews | Products ↔ Reviews (many to many) |
| Product Publishers | Products ↔ Publishers (one to many) |
| Contributor Reviews | Contributors ↔ Reviews (many to many) |
Use JetEngine Query Builder with related-items macros (for example product contributors) to build author archives and “books by this publisher” grids.
The plugin may show an admin notice if expected relations are missing.
Troubleshooting
| Problem | What to check |
|---|---|
| Connection failed | API URL (https://), Woo access key, OnixFeed reachable; use Test Connection |
| Collection not found | Collection key matches the OnixFeed book list exactly |
| Access forbidden | Woo access key from this Woo channel; rotate and paste the new key if the old one was revoked |
| No files after Refresh List | Generate CSVs on the Woo channel first (or wait for the schedule) |
| Import not starting | Refresh the list; check WordPress error logs |
| Duplicates instead of updates | Enable Update Existing Products; ISBN/SKU must match |
| Missing covers | Enable Download Product Images; URLs must be public; WordPress must write to uploads |
| Stale covers | Enable Force Download Images and import again |
| Products not linking | Import order: contributors → publishers → reviews → books |
| Language URLs 404 | Settings → Permalinks → Save Changes; product must be variable with language attributes |
| JetEngine empty | Create the relations above; check admin notices |
Validate priority titles in OnixFeed before a large sync.
