Codelist Issue 56 for ONIX 3.0 has been released.* Complete listings of the ONIX codelists in PDF and HTML formats can be downloaded from the EDItEUR website:
Issue 56 stand-alone codelist documentation as an HTML file (open and read it in your web browser)
Issue 56 TXT, CSV, XML, JSON files for loading into your data management applications
Issue 56 XSD, RNG, DTD schema modules for use with existing XML schema files (but note that it is best to download the latest 3.0.8 schemas — they incorporate the new codes)
The ‘strict’ XSD 1.1 with Issue 56 (the strict XSD must be updated each time there is a new issue of the codelists, as It includes some codelists within the XSD itself)
The online browser for the ONIX codelists at ns.editeur.org/onix has been updated to issue 56
The new codelists have also been integrated into the documentation for the ONIX 3.0 Specification and the updated ONIX 3.0 Implementation and Best Practice Guide available from the EDItEUR website. These documents cover the latest ONIX 3.0.8:
Need help using the ONIX documentation? Read this.
It should go without saying that everyone should review the document summarizing the changes and update their systems, but we've highlighted some changes of particular note for you below.
List 30 Audience range qualifier
If you sell educational books in France, be sure to review the additions made to this list.
Code: 30
Label: French school cycles / classes
Note: Detailed French educational level classification. Values are defined by ScoLOMFR, see data.education.fr/voc/scolomfr/scolomfr-voc-022.
Code: 32
Label: French educational levels
Note: Basic French educational level classification. Values are defined by ScoLOMFR. For use in ONIX 3.0 only. See data.education.fr/voc/scolomfr/scolomfr-voc-022.
List 32 Complexity scheme identifier
Audiobooks are increasingly important and ONIX now supports the new Lexile code available for their assessment.
Code: 12
Label: Lexile Audio measure
Note: Lexile Audio measure from MetaMetrics’ Framework for Listening. The code in <ComplexityCode> indicates the difficulty of comprehension of audio material (for example 600L or 1030L). For use in ONIX 3.0 only. See lexile.global/the-lexile-framework-for-listening.
List 57 Unpriced Item type
We’re aware of a reluctance to implement this codelist. There are tales of retailers insisting they “need zeros” as prices that seem a bit tall to us, but if there are any data receivers who do, could you get in touch? BNC, BISG, or EDItEUR itself wants to know more.
The addition of a genuinely useful-to-our-market code in Unpriced Item makes a broader look worthwhile and it follows below.
*A note to ONIX 2.1 users
Remember Issue 56 cannot be used with ONIX 2.1. Issue 36 — the latest intended for use with 2.1 — can be obtained from the Archived Previous Releases page of the EDItEUR website or this online codelist browser. Note that for codelists shared by 2.1 and 3.0, any codes added after Issue 36 (List 74 Language is an example) are NOT available for use in ONIX 2.1.
BookNet Canada still recommends that you use and periodically update your copy of EDItEUR's best practices guide. It’s an essential ONIX 3.0 guide, but much of the information in it applies equally to ONIX 2.1.
List 57 Unpriced Item type
Price is mandatory in a Supply Detail in both ONIX 2.1 and ONIX 3.0. “Mandatory” in this context means that an ONIX file will fail validation against the XML Schema published by EDItEUR if a Supply Detail doesn’t contain some form of price and the reason for that is simple: A price is an expected part of a book record and needed by retailers. There are, however, exceptional cases where, for one reason or another, a price may not be available for a product and EDItEUR provides for these by allowing for it to be replaced by an Unpriced item type code using Codelist 57.
There are differences between ONIX 2.1 and ONIX 3.0:
ONIX 2.1 the <UnpricedItemType> / <j192> tag with its code replaces the Price composite. Only codes 01 to 06 are part of Issue 36 and available for use in ONIX 2.1.
In the always improved ONIX 3.0 version the <UnpricedItemType> / <j192> tag with its code can replace the Price composite OR it can replace the <PriceAmount> / <j151> tag within a Price composite. The latter allows for the preservation of details about the price that may be still needed or wanted by the data receiver.
Another improvement in ONIX 3.0 is that its XML schema fails files for providing zero as values as an Extent or Measurement value, or pretty much anywhere an integer is expected but zero isn’t an option. Why should retailers load a “0” sized depth or weight measure? It’s not usable data and shouldn’t be there. Similarly, page returns are only allowed within tags for XHTML-enabled elements — and anyone who creates CSV reports from ONIX data applauds. Better metadata is created because of these changes.
A zero value as a Price Amount is also a schema validation fail in ONIX 3.0 as well, and because price is mandatory, it should be replaced by an Unpriced item type tag and code. (Note that it was equally wrong and equally prohibited in ONIX 2.1 — it’s just that the ONIX XML schema is better developed for ONIX 3.0.)
The reason for using a code is twofold:
Mostly it’s because there are multiple reasons you might not provide a price, so your expectations and the receiver's actions might vary depending on why. A codelist can say why clearly but a value of >0.00< can only make you wonder.
Databases expecting numbers often default to a “0” if the data field contains anything that isn’t one. If an apparently normal book suddenly carries a zero price wouldn’t you like retailers to ask questions? How will a retailer identify an atypical book that should carry a zero and differentiate it from a problem? For reference, BiblioShare preserves your data and its Quality Reports will report a “001 Value in Element does not match data type” if you were to send “$25.95” as a price. Watch out for that citation as such errors are important to fix. Our client-facing data fixes this error as well. (Note on the File Quality Report. There is a full report, including the ISBN, available on your BiblioShare account’s website — ask if you are unsure or need help.)
List 57 Unpriced Item type
Code: 01
Label: Free of charge.
Code: 02
Label: Price to be announced.
Code: 03
Label: Not sold separately
Note: Not sold separately at retail.
Code: 04
Label: Contact supplier
Note: May be used for books that do not carry a recommended retail price; when goods can only be ordered “in person” from a sales representative; when an ONIX file is “broadcast” rather than sent one-to-one to a single trading partner; or for digital products offered on subscription or with pricing which is too complex to specify in ONIX.
Code: 05
Label: Not sold as set
Note: When a collection that is not sold as a set nevertheless has its own ONIX record.
Code: 06
Label: Revenue share
Note: Unpriced, but available via a pre-determined revenue share agreement.
Code: 07
Label: Calculated from contents
Note: Price calculated as sum of individual prices of components listed as Product parts. For use in ONIX 3.0 only.
Code: 08
Label: Supplier does not supply
Note: The supplier does not operate, or does not offer this product, in this part of the market, as indicated by <Territory>. Use when other prices apply in different parts of the market (e.g., when the market is global, but the particular supplier does not operate outside its domestic territory). Use code 04 when the supplier does supply but has not set a price for part of the market. For use in ONIX 3.0 only.
What I’d like you to note about this list is it starts from where you’d expect and maybe you might think:
“Whatever! It should be obvious that a book is free of charge, or that a forthcoming book without a price is TBA, or metadata for a series entry that can’t be sold hasn’t got a price. And why code for ‘contact supplier' when they’ll do that if they need to? I don’t need to support some code list.”
That’s fair enough, though I’m sure you’ll agree that five distinct scenarios done by assumptions and whim are a little ambiguous. I’ll just point out you’re making an assumption that trading partners like being in touch to track what you don’t tell them.
But the 06 and 07 involve alternate ways that get you paid. That’s the advantage of a codelist: It creates opportunities for coherent data exchange and supports new ways of selling books. You might need those.
And the new code, 08 allows for greater accuracy in describing markets which I’ll let EDItEUR explain — this is taken from the codelist document attached, but note that it is showing a Product Supply (one large market territory) that contains MULTIPLE Supply Details — that is to say more than one Supplier and likely Suppliers with different roles. Rather than set up a whole new Product Supply for one Supplier with atypical sub-market this technique allows that Supplier to be listed clearly stated where they do supply (CA, US & MX) AND where they DO NOT supply. Another use might be a supplier who normally handles all of Canada but for several books cannot distribute them to Quebec. Those ISBNs could have Quebec excluded.
Have a look. This allows for better and more accurate metadata. It simplifies the data by allowing exceptions to be handled, like a wholesaler who doesn’t supply the entire market that the other full distributors do.
Quoted from ONIX for Books codelists Issue 56
This new option for <UnpricedItemType> allows an explicit statement that a particular supplier does
not operate throughout the whole market, or is unwilling or cannot supply to a part of the market. It
may only be used with <UnpricedItemType> within <Price>.
The example below shows a market that consists of “the Americas” — North, Central, South America
and the Caribbean. However, this particular supplier — most likely a wholesaler rather than the
publisher’s primary distributor in the market — does not supply outside of the main three countries of
North America (for whatever reason) and “advertises” only US, Canadian, and Mexican prices.
Of course, there would normally be at least one other supplier — the publisher’s primary distributor,
for example — in a separate <SupplyDetail> composite, which does supply to the whole market.
<ProductSupply>
<Market>
<Territory>
<CountriesIncluded>CA US MX PM GL GT HN CR NI PA BZ SV AI AG BS CU DO HT JM KN LC GD KY VG VI MQ PR MF BL GP BB VC MS DM BM TC AW BQ CW TT SX BR AR CL PE EC CO VE BO PY UY SR GF GY FK GS</CountriesIncluded> <!-- market is “the Americas” -->
</Territory>
</Market>
. . . <!-- any market-specific details omitted for brevity -->
<SupplyDetail>
. . . <!-- name of supplier omitted for brevity -->
<Price>
<PriceType>01</PriceType>
<PriceAmount>7.95</PriceAmount> <!-- The supplier’s US price -->
<CurrencyCode>USD</CurrencyCode>
<Territory>
<CountriesIncluded>US PR VI</CountriesIncluded>
</Territory>
</Price>
<Price>
<PriceType>01</PriceType>
<PriceAmount>9.95</PriceAmount> <!--The supplier’s CA price -->
<CurrencyCode>CAD</CurrencyCode>
<Territory>
<CountriesIncluded>CA</CountriesIncluded>
</Territory>
</Price>
<Price>
<PriceType>03</PriceType>
<PriceAmount>195.00</PriceAmount> <!-- The supplier’s MX price -->
<CurrencyCode>MXN</CurrencyCode>
<Territory>
<CountriesIncluded>MX</CountriesIncluded>
</Territory>
</Price>
<Price>
<UnpricedItemType>08</UnpricedItemType> <!-- Unpriced Item Type coded for ”does not supply” -->
<Territory>
<CountriesIncluded>PM GL GT HN CR NI PA BZ SV AI AG BS CU DO HT JM KN LC GD KY VG MQ MF BL GP BB VC MS DM BM TC AW BQ CW TT SX BR AR CL PE EC CO VE BO PY UY SR GF GY FK GS</CountriesIncluded> <!-- supplier chooses not supply to South, Central America, or the Caribbean, even though other suppliers do-->
</Territory>
</Price>
</SupplyDetail>
. . . <!-- other suppliers omitted for brevity -->
<ProductSupply>
The format preferences of Canadian buyers, borrowers, and readers.