RSS Feed c9 logo Australia's best motorcycle shop retail software
Release 4.788 July 17, 2019 barney

Not yet released. In a week or two

Includes database changes. You need to log all terminals out during upgrade.

Cash Rounding Changes

This version of c9 overhauls the price/invoice rounding model in c9.   Previously c9 would apply a single global rounding and this is generally configured to be $0.05 or $0.10. (this was partially extended in the past to allow tweaking rounding on surcharges, but the surchange enhancement is very superficial, this goes well beyond).

The new version of c9 allows you to configure rounding at various levels:

  • Default rounding as was previous. To be used now to set ideal per item pricing. So for example you can configure spares to round to 0.05 ideally
  • Then rounding on a per invoice basis. So invoice can for example round to 0.01 cent boundaries to accommodate custom pricing, discounting schemes etc
  • Then rounding on basis of payment method. so cash payments will round to 0.05 (default) and others 0.01 (default).

Other changes related to this:

  •  Spares discounting, previously would round the discount figure which contains an implicit assumption that the amount being discounted is already rounded. Tweaked so that discounting can work and round even though the core price being discounted is not rounded: works by making sure discount, once applied yields a inv total that meets rounding criteria.


Shopify Integration & Paypal changes

This version of c9 includes ability to automatically sync shopify orders into c9's own web order pipeline for processing/fulfillment in c9. The integration only reads data from shopify at this time and only requires read permission. You'll still need to manually close out orders in shopify at this time but this will dramatically streamline/simplify the process of fulfilling orders through c9.Setup process:

  • In shopify. Under apps create a new private app for c9, all options you see during this process leave on their defaults.
  • Feed resulting  shop name, app key + password into c9 in business -> website -> settings. (Note shop name will be something like

Warning,  part of changes made to accommodate shopify resulted in heavy modifications to existing code for managing paypal processing for c9 based web orders and c9 weborders in general. These changes have been thoroughly tested but please be mindful of processing in this part of c9 has changed in this version. The changes are low level technical and non functional.

  • Supplier return tweaks
    • Update : allow edit of tracking field
    • Update : tweak naming of options a bit to make it clearer that finalization will automatically post a supplier credit within c9
    • Browse : allow view invoice from here
    • allow input of credit note reference # on finalization
  • Other
    • Browse Workshop warranty. Show reference # entered on finalization.
    • Workshop scheduler, recent version changes killed ability to drag and drop.  Now restored this lost functionality
    • Unsupercede bugfix. Under some circumstamces unsuperecede might delete a random part, completely unrelated to the supercession you are removing, out of stock. Now fixed
AusPOST C9 Integration Guide July 17, 2019 barney

This page explains how to setup and drive c9's AusPOST integration.

What it does: automatically query prices from auspost. Print AusPOST/Startrack labels and generate shipping manifests.

Basic Workflow: How you manage your spares will influence how things will flow through c9. The general process is:

  • Raise invoices in c9 as per normal but with some slight tweaks to indicate the invoice needs dispatching and optionally get shipping costs
  • Package your invoices into boxes/parcels etc. Feed info about box sizes and weights into c9.
  • Print labels for things you need to ship. Stick labels on boxes/parcels
  • Indicate you are ready to ship. Generate/print a manifest. Either take parcels to local shop or wait for pickup (whatever arrangement you have in play)

Alot of variations are possible. Such as:

  • Whether or not to package at point of invoicing or delay to a later 'dispatching' stage. Depends on your preferred workflow
  • Whether or not to print labels one at a time as jobs come in or do a bulk/ batch print.

Initial Setup


Release 4.787 July 11, 2019 barney

Includes database changes. You need to log out of all terminals during upgrade

Spare parts supplier returns

This version of c9 provides a new streamlined process for managing spares returns. In point of sale return screen you'll now see this.

Process now not only lets you fine tune amounts but also allows you to flag return process as in progress with invoicing to happen later. Invoicing happen later is now tracked in a new section. Pending Supplier Returns. Spares -> Spare Parts -> Supplier Returns.

  • Other Fixes and Tweaks
    • Spares. Logic added earlier in year to cope with c9 auto adjusting eaten customer deposit as operator tweaks things like freight etc broken under some circumstances and would auto amount to use incorrectly. Now fixed.
    • Trading statement was not rolling Goods in AP invoices into spares purchases. Instead was showing a weird computer code like line. Now fixed.
    • Bank Rec : on loan accounts allow full gamut of txns you can normally see on a bank account with other/misc. Previously would only let you access transfer functions
    • KTM Factory importing
      • Fiche & Parts : login not working. Working again
      • Fiche : redesign the screen a bit to show more of models to import / ignore.
    • Other supplier return polish
      • On selecting supplier return preset supplier based on parts being returned.
    • do not print label flag on some stocked parts. Option is toggled in F6 view/change part. The option is manually ignored when individually printing an item or manually adding to list to print.
    • No supplier selected nag on key screens when added rebate, on road costs, other costs etc on a unit
    • WA Form tweaks
      • Transfer form : swap VIN and engine number, was back to front
      • Transfer & Reg forms : tweak font kerning/spacing a bit to make fixed point font items like VIN fit better.
Release 4.786 July 10, 2019 barney
  • Tweaks and fixes
    • Honda Magician check : Honda SAP can sometimes return -ve results. Clip to zero. This behaviour is also affecting bulk magician check : as this check cannot cope with -ves and assumes -ve items are supplyable.
    • Print Labels - some more UI design tweaks to minimize clicks and effort.  On print screen allow user to select layout format from existing formats, same way they can sue different layout sizes. See below.
    • More UI design tweaks for cust order select
      • Allow pgdown/pgup/home/end keys to scroll list while keyboard focus is in search box
      • Memorize whether or not last cust order ended at bottom or top or the list and apply that next time (this functionality was lost in recent UI changes, readded)
    • Unit sale and purchase. Add a number of guards to protected against simultaneous scenarios run across different terminals/instances. Such as:
      • Purchase, purchase factory unit with same reference #
      • Purchase, previously non existent unit from a customer which is simultaneously added on another terminal
      • Sell unit simultaneously on two different terminals
    • Print pay slip. Print full name instead of screen name if set.



Label Configuration July 8, 2019 barney

Label config is complex. Though the underlying problem is complex.  Recent changes have make labels more flexible and logically consistent workflow but also more complex to setup. This post explains what is going on and a couple of suggested setups for simple workflows.

The core problem is we have potentially multiple printers, multiple label sizes, multiple label layouts/styles and multiple terminals. The complexity involves defining paths through al these. Illustrating.


Release 4.785 July 3, 2019 barney

Requires DB changes. You need to log all terminals out during upgrade

  • Payroll tweaks
    • Added a 'Uploading data to STP screen'. Typically STP upload is sub second, but I have seen some slight delays so added a screen to show things are happening.
    • Staff permissions, renamed payroll declaration permission to 'Payroll Manager' .  Prior naming was potentially misleading.
    • Payment summary printout : include biz name + ABN
    • Slight bugfix with setting up staff. If you key in a state which isn't uppercase would cause STP export to flip out with a XSD validation error. C9 now forces state to uppercase.
  • Payments/Bills stuff
    • Select bank for payment. Option to expose loan accounts to allow payment against a loan record.
    • Add invoice: ability to select GL code . e.g. for quarterly sales targets kickbacks you can now record against spares income instead of default (other income)
  • Financial year report tweaks
    • Tweaks/fixes to supporting reports used to validate data in Financial year report
      • Historical Recv report : was not capturing parts on reserve. Now fixed
      • Workshop history report : was ignoring internal/PD/warranty stuff. Now fixed
    • Trading statement / P&L : stock figures did not include units. Now fixed.
    • Business -> Activity. Added some type/taxtype filter options to make searching/diagnostic work in this screen easier
    • Way bank fees were written into c9 from bank rec was broken. Was being pulled into P&L as tho it was profit (bank interest). Fixed and added code to retroactively fix older records.
    • trial balance printout from General Ledger.
  • Profit summary report bugfixes which cause profit to be understated.
    • Generic Expense items was showing expense including GST, overstating the cost. Modified to so ex GST only figure.
    • Profit summary was not reporting on generic income : failing to report on additional income. Now added.
  • Customer Order selection UI redesign
    • Search mechanics now work similar to orderbook. Type and it jumps to right section, instead of filtering output. Next button to cycle through options
    • Display deposit remaining
    • Sort order ui system now has a sort drop down instead of fake columns to click on.
  •  Other
    • Bulk stock take import. Was ignoring location in uploaded file, and only accepting global location setting. Now repaired.
    • Mcleods image import, working again.
    • Auto stock take received items option was not actually working and was not flagging items stocked as stock taken. Now fixed.
    • Labels : add option to quickly clone an existing label config. Useful for duplicating configs with intent of binding different 'labels' to different label layouts for rapid selection of layout.
    • Cancel order invoice / cancel part on order : Show deposit remaining on nag and confirm screens.
    • View Contacts : new tab to browse trade customers.
    • Tweak to accommodate one C9 user who is now de-registered for GST. Option to default point of sale screen to GST Exempt.
    • Import C9 E-Ref spares order from another dealer. Will pre-populate order number field. e.g.:
  • Unit Sale Paperwork
    • Victoria T&C
      • Minor legislative changes in 2018 (minor change in wording)
      • Different versions of contract for new vs used vehicles
      • Particulars page modified to include a declaration as to whether or not the odo reading is considered accurate. (only prints on used units and if odo is non zero)
    • NSW T&C - minor changes to accommodate either/or new/used sales and updates on references to state legislation
    • QLD T&C - minor changes to accommodate either/or new/used sales + a couple of other minor tidies.
    • WA Paperwork - new forms. Rego, transfer & Stat warranty.
    • Paperwork preview : reworked. Generates more accurate looking result, but is slower.

Single Touch payroll support in c9 is substantially automated and normally processing payruns STP only adds a couple of extra clicks to capture authority to send.  Though there are a couple of things to setup and manage:

  • Initial setup
  • Submit on pay run
  • Dealing with errors and issues

Initial Setup

Making sure all staff are setup correctly

For existing staff you need to make sure following information is in play

  • Their Tax File Number
  • Correct full name and address. (Name can be either in 'name' field' or broken apart into firstname/lastname fields. If firstname/lastname are empty c9 will break name into firstname/lastname for you)
  • Date of Birth.
  • Suggest : put in staff email address and phone numbers as these will be sent to ATO,

For new staff, from now on their first payrun will transmit alot more information. Critical things you must put in for their first pay run:


Release 4.784 June 25, 2019 barney

Single Touch Payroll now supported within C9

This version of c9 provides single touch paypal support and has been whitelisted by the ATO. The function is substantially automated. I will provide a followup post on a couple of things to get started with STP and c9.

  • Other Payroll tweaks
    • Tweaked STP transmission, on advise from ATO : make sure summary gross payment figure is inclusive of allowances (such as tool allowance).
    • Subtle bug with computation of leave benefits like holidays which span multiple pay periods. Normally these should be constrained to duration of pay period, but there are rules where it sometimes needs to consider outside period for 'backdated' activity. i.e. you run up sick leave for last pay but it wasn't record on last pay so it needs to be backdated. Normally c9 handles this correctly but there are some conditions, too complex to get into here, where this fails and c9 fails to correctly constrain leave to pay run period when it should. Substantially more likely to be an issue for salary only payrolls. Now fixed.
Release 4.783 June 25, 2019 barney

Bugfix with version 4.782 just released an hour ago: label printing would crash with a system error under following condition. Now repaired

  • Part label configured to print a location, but part in question doesn't have a location.
Release 4.782 June 20, 2019 barney
  • Tweaks and fixes
    • AusPOST API integration.  AusPOST require clients to transmit a product/app ID on all API calls. Now added.
    • Single Touch Payroll UI tweaks
      • Fine tune STP poll for replies logic. Ensure minimum wait for 30 seconds before poll
      • Configure messenger to do pro-active STP reply polls
      • Tweak authorization confirmation page to reference our actual ssp (OzEDI, not SingleTouch).
      • When logged in as a payroll user, provide screen alert if a async STP reply returned an error for any payrun in last 14 days
      • Tweak display of error replies to show staff code (if any) that triggered the error
    • Receive order bugfix : was possible to deselect either tax invoice or goods only resulting in an undefined receival been written to DB (was handled as tax invoice and ignored creditor selection). Now fixed
    • Fixed a long standing bug which I assumed only affected Barney (linux) computer but got a report of problem happening on a dealer (Win 10) machine. When printing landscape reports, printout looks completely messed up, but if you save as PDF and print PDF it is okay, also portrait reports work fine.  Root cause known Java bug (, which I've found a workaround for. Suspect issue only affects Open JDK, not oracle Java, and dealer in question might have OpenJDK installed on their computer.
    • QLD TMR rego details web scrape. Bring year into compliance plate field ( with month sent to Jan), not model year.
    • Added 2019-2020 Payroll tax rate stuff (only HELP rates have changed)
    • Mcleods Magician working again. (they moved their website).
    • Generic order file export. Include options to export retprice and costprice.  Put in play for Monza. Now monza tell me they ignore cost price but just to be thorough will include option to export in c9 all the same. (updated this page )
      • Monza suggested format.
        • Mask: FD""QC
        • Header: ItemNumber,Name,Description,OrderQty,Price
        • Separator: ,
        • Escape if needed
    • Generic file export format. Tweak UI design on basic screen so it is obvious if a custom format is in play
    • Tweak profit summary to also show gross revenue (price less discount)
    • Weekly planner.  Option to print planner output.
    • Add transaction: all txns to be forward dated. Warn operator if they have entered in a forward date
    • View invoice : show summary of parts on order. i.e. qty # active, sent, received, invoiced, cancelled etc.
    • Print Preview : memorize zoom setting. Memorize for either portrait or landscape based reports.
    • Browse rebates: show tally of uncollected rebates
    • View / Edit Contact. If contact has an alternate address then make the details/alt address tab stand out
    • Finance/Floorplan Settlement tool : was unable to cope with a sale involving multiple units. Now working.  Settlement screen provides a unit tab which breakdown costs and allow you to assign origination fees on a per unit basis etc.
    • New config option in setup units tab to suppress printing short notes for dealers that use this field mainly to help internally organise their deal list
    • Add/Modify Sublet. On setting cost price if sale price is $0 then default sale price to cost price.
    • Could not bank rec / cash rec web based Paypal payments : option to select for cash rec no there and bank reco would not merge in paypal instrument txns. Now fixed

Heavy reworking on label printing

This version of c9 is a deep rewrite of label printing subsystem.  Functionally visually changes are modest. Visual/functional changes:

  • Layout rules completely rewritten and should yield better looking labels, especially for labels which are space constrained : with improved logic to handle competition for layout space. So generally only changes behaviour at the margins as prior code was reasonably okay.
  • For parts based labels. A number of changes
    • You can now configure / preset multiple label formats. e.g. some with pricing, some without etc, with label config now accessed in print labels screen
    • Label based configuration allows for some power customization. For example, configure price to be bold and a larger font size, below example makes the price bold and the font size x1.3 (30%) larger

Comprehensive list of Label commands

Parameterized commands can take form of either <key>=<value> or <key>(<value>).  List below is written in <key>(<value>) format

Basic math operations are possible. e.g. 10+5/2. Mostly relevant for adjsize command

Strings must be wrapped in single quotes.

Command Description Example
font Font name font(‘Arial’)
size Font Size size(12)
adjsize And adjustment to apply to already set size. e.g. to make bigger or smaller adjsize(+2)
value Hard code what the value is to be. value(‘Test Motorcycles’)
row Row # to put item on row(4)
vertalign Vertical alignment. 1=top. 2=center. 3=bottom vertalign(2)
textblock Allow entry to word wrap textblock(1)
show Make visible
hide Make hidden
bold make bold
italic make italic
bolditalic make bold+italic
left left justify
center center text
right right justify
format Clarion Language reformat format(‘@n$12.2’)
col Justify column. 1= left. 2=middle. 3=right col(3)
style Clarion Language font style style(1)
splitmerge Forced gap close on word wrapping, in 1/1000th of inch. Used mainly for tall barcodes. splitmerge(40)
visible Make item visible/invisible visible(0)


bold adjsize=*1.3

Next Page »