Skip to content

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
  1. An administrator prepares titles in OnixFeed and runs store readiness.
  2. Those titles sit in a store collection with a Woo channel. CSVs can rebuild on a schedule on that channel.
  3. In WordPress, open OnixFeed Woo → Book Import, click Refresh List, then Import each file.
  4. 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 ​

  1. Upload the plugin folder to /wp-content/plugins/.
  2. Activate it under Plugins.
  3. Confirm WooCommerce is active.
  4. 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.

SettingWhat it does
API URLOnixFeed frontend / API base URL (include https://)
API TokenWooCommerce access key generated on the Woo channel (shown once). WordPress sends this with the collection key
Collection KeyExact collection key on the OnixFeed book list
Batch SizeHow many products to process per batch (default 50, max 100)
Update Existing ProductsMatch existing products and update them (keep this on for sync)
Download Product ImagesDownload covers from CSV URLs into the media library
Force Download ImagesRe-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 ​

  1. Go to E-commerce → Store collections (admin).
  2. Create or open a collection, Manage Books, and add a WooCommerce channel if there is none.
  3. On the Woo channel, generate Contributors, Publishers, Reviews, and Books - or wait for Regenerate CSVs on schedule.

See Store collections.

2. Import in WordPress ​

  1. Open OnixFeed Woo → Book Import.
  2. Click Refresh List so the latest CSVs appear.
  3. For each file, Download (optional) or Import. Confirm when asked - import creates or updates products.
  4. Import in this order so links resolve:
    1. Contributors
    2. Publishers
    3. Reviews
    4. 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 ​

TypePurpose
ContributorsAuthors, illustrators, editors, translators
PublishersPublishing companies
ReviewsReview quotes and endorsements

Taxonomies on products ​

Taxonomy terms come from the OnixFeed collection CSV (taxonomy config is per collection in OnixFeed). The plugin registers:

TaxonomyTypical use
CollectionsStore / series groupings
SeriesBook series
LanguagesProduct language
Thema SubjectsSubject categories
Age Ranges / Grade LevelsWhen present in the feed
Thema place, language, time, educational, interest, style qualifiersThema 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:

CodeLanguage
engEnglish
afrAfrikaans
zulisiZulu
xhoisiXhosa
nsoSepedi (Northern Sotho)
tsnSetswana
sotSesotho (Southern Sotho)
venTshivenḓa
tsoXitsonga
sswsiSwati
nblisiNdebele

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.

ShortcodeWhat 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:

RelationType
Product ContributorsProducts ↔ Contributors (many to many)
Product ReviewsProducts ↔ Reviews (many to many)
Product PublishersProducts ↔ Publishers (one to many)
Contributor ReviewsContributors ↔ 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 ​

ProblemWhat to check
Connection failedAPI URL (https://), Woo access key, OnixFeed reachable; use Test Connection
Collection not foundCollection key matches the OnixFeed book list exactly
Access forbiddenWoo access key from this Woo channel; rotate and paste the new key if the old one was revoked
No files after Refresh ListGenerate CSVs on the Woo channel first (or wait for the schedule)
Import not startingRefresh the list; check WordPress error logs
Duplicates instead of updatesEnable Update Existing Products; ISBN/SKU must match
Missing coversEnable Download Product Images; URLs must be public; WordPress must write to uploads
Stale coversEnable Force Download Images and import again
Products not linkingImport order: contributors → publishers → reviews → books
Language URLs 404Settings → Permalinks → Save Changes; product must be variable with language attributes
JetEngine emptyCreate the relations above; check admin notices

Validate priority titles in OnixFeed before a large sync.

OnixFeed - Book Metadata Management