Manual
We can manually hide products on request via tickets. Though it is recommend that automatic rules are setup.
Automatic
There are multiple ways the feed can be setup to automatically remove titles using these onix nodes.
For each option below, the PHP time would be about 2-3hrs depending on the complexities.
Example of complex rule might be:
use <PublishingStatus><b394> in case A
use <Availabilitycode> <j141> in case B
Unless case C
(1) ProductAvailability (Onix 3.0 only)
We can use
<ProductAvailability> <j396>
We will need to know which from the following codes to include or exclude:
https://onix-codelists.io/codelist/65
(2) Availabilitycode (Onix 2.1 only)
We can use
<AvailabilityCode> <j141>
We will need to know which from the following codes to include or exclude:
https://home.bic-media.com/onix_info/2-1-4/codelists/onix-codelist-54.htm
(3) PublishingStatus
Finally we can also use
<PublishingStatus><b394>
We will need to know which from the following codes to include or exclude:
https://onix-codelists.io/codelist/64
(4) Default rules
These are the rules we should be applying in config.php by default when setting up a new catalog
For Onix 2.1: In the <j141> ("availability code") node we look for values 'IP', 'NP', 'MD'. Titles that do not have these values will be hidden - https://home.bic-media.com/onix_info/2-1-4/codelists/onix-codelist-54.htm
For Onix 3.0: In the <j396> ("ProductAvailability") node we look for values '10', '12', '20', '21', '22', '32'. Titles that do not have these values will be hidden - https://home.bic-media.com/onix_info/3-0-2/codelists/onix-codelist-65.htm
For Onix 2.1 AND 3.0: In the <b394> ("PublishingStatus") node we look for values '02', '04', '13'. Titles that do not have these values will be hidden - https://onix-codelists.io/codelist/64
Any ISBN with a pub date more than 9 months in the future will be hidden.
Backend developer info:
Default in this context doesn’t mean that the feed contains program code to enforce these rules - it means that backend developers will add configuration code to the feed’s config.php to instruct the feed to implement them.
Some examples of how we code these rules in a feed's config.php:
Onix 3.0 long:
1 'include' => array(
2 'active' => array(
3 'ProductAvailability' => array('10', '12', '20', '21', '22', '32'),
4 'PublishingStatus' => array( '02', '04', '13' )
5 ),
Onix 3.0 short:
1'include' => array(
2 'active' => array(
3 'j396' => array('10', '12', '20', '21', '22', '32'),
4 'b394' => array( '02', '04', '13' )
5 ),
Onix 2.1 short:
1'include' => array(
2 'active' => array(
3 'j141' => array('IP', 'NP', 'MD')
4 ),
If a catalogue has multiple feeds that comprise a both 2.1 and 3.0 in long and short flavours, then it will be necessary to add the corresponding tags and their values as appropriate.
To turn off the rule that hides ISBN’s with a publishing date more than 9 months in the future, we can code the following:
1'exclude' => array( 'ninemonthrule' => true,),
(4) Pricing
If a product comes through the feed with a price of $0 we will automatically hide the buy button for that product. This is to ensure we don’t allow free books to be sold in error.
* If a client would like to allow customers to purchase books with a price of 0, then we can make exceptions on a case by case basis.