RSS Feed c9 logo Australia's best motorcycle shop retail software
Aggregated C9 Client Data April 5, 2020 barney

This post will remain sticky for next few months. For recent updates scroll down further.

Updated 17-May

From now on 3 new datasets. All, metro and regional. Metro and regional are curated datasets based on a subset of c9 clients. All clients in these datasets are franchised dealerships only. Metro/Regional is based on whether or not dealer is located in a capital city or not.




Weekly Events:

  • Week Starting March 15 : gov begins seriously warning of restrictions, c9's last onsite install before crisis is abandoned
  • Week Starting March 22 : state borders start to close. First non-essential services shutdown in Vic
  • Week Starting March 29 : increase in scope of vic services shutdown. Dealers reporting dramatic drop in store traffic. C9's first public email outlining our approach
  • Week Starting April 5 : week before Easter. JobKeeper assistance legislation passes
  • Week Starting April 12 : week proceeding Easter.
  • Week Starting April 19 : Qld State Gov announce modest wind back on social distancing.
  • Week Starting April 26 : National cabinet announce plan to review things like recreational sport towards end of following week
  • Week Starting May 3 : Week ends with fed gov announcing plan for staged easing of restrictions
  • Week Starting May 10: Vic Gov announces end of 'stay at home' from beginning of June
  • Week Starting May 17: increased discussion around issue of reopening state borders.

Current comments

Regional dealers show impressive sustained, Christmas period levels of gross sales activity. Metro dealerships very static.


Release 4.825 May 26, 2020 barney
  • Tweaks and Fixes
    • Workshop labour : you can now key in labour as a fraction into hours.  i.e. key in 1.5 will convert to 1 hour 30 minutes. Useful for managing warranty work
    • View web order from spares point of sale complete. Would not show web order for F12 pickup part of weborder. i.e. if order is originally parked onto a reserve/pickup.
    • Deal substitute. Substitute with blank unit now blanks out engine number and long form VIN.
Release 4.824 May 24, 2020 barney

Tweaks and fixes

  • Harley Davidson Magician check: now working again
  • View webs order from point of sale complete. Have a report from dealer it was blank. Not entirely sure how this happened, but made some code changes here that hopefully will improve things.
  • Increase screen size of date/time fields in post new journal. Previously was not fully visible on screen

Triumph UK have a system in play where your stock file is daily synced with their systems which allows them to implement their own magician like dead stock finder.

Following post explains how to enable this in c9.  Once setup in c9 it is all done and just automatically works every day without any further involvement.

To setup:


Release 4.823 May 19, 2020 barney

Tweaks and fixes

  • Fiche : "print Parts we stock" that fit a certain bike. Print both the superceded part and original diagram part if relevant (previously would only print diagram part). Example:
  • Install price file. Process stock file in part number order so resulting install report parts are ordered instead of being random-ish
  • AusPOST integration. On international shipments, when there are more than 20 parts on the order, coalesce data sent to AusPOST to be one line per franchise as AusPOST have a limitation of only 20 lines per package. i.e.:
Terrible PayPal Support May 12, 2020 barney


Release 4.822 May 6, 2020 barney

Regression Bugfix : annual leave type as a selectable payroll item was accidently dropped when garnished wages option was added in. Fixed.  LEave computations etc are all good, just meant you were unable to manually fiddle this (typically only done when transitioning to c9 for payroll)

Release 4.821 May 4, 2020 barney

The PayPal Rest API release

C9 now supports Rest based API.

Switching to Rest  you will gain and you will lose.

Gain: More reliable and faster txn processing.

Lose: During checkout stage, customers can no longer be able pick freight option in paypal itself as the Rest API doesn't provide any facility for c9 to let Paypal know what freight options are. So freight in paypal will lock in and default to first freight option in c9 if you go for express checkout.  Once user navigates to freight page, if they change their freight option  the website will advise them they'll need to redo paypal to capture new shipping option.  If this turns out to be a negative user experience one option is to drop the express checkout option for paypal on first checkout page, instead force user to key in all their particulars and then pick paypal on payments page.

How to switch to Rest API.

In c9 : setup -> main setup screen -> paypal tab. Are two new fields, Client and Secret. You need to fill these in. Make sure you leave existing settings alone : as these are still needed to finalise any existing orders feeding through. For brand new sites, skip over these.

So need client and secret. How to get this.

Firstly you need to login to a developer paypal website. This is not your normal paypal website! Address:

Click on 'Log into Dashboard'

Then click on 'My Apps and Credentials'

Set your app name to be C9 Website and click on create app. Next screen you'll see client and secret. Copy these into c9.

Once done, wait a few seconds and then jump on your c9 website and do a test order

Note: if you are enabling Paypal for the first time, contact barney. Paypal integration requires another step to be performed on the webserver to make it all happen.


  • Removed delete units not imported in advanced fiche import options. This option is way too dangerous given little/no guarantees EPC datasets are easily accessible.




Release 4.820 May 2, 2020 barney


  • More paypal changes. C9 would incorrectly include 'completed' order and 'fee reversal' txns in its attempt to compute how much paypal reports is captured so far (since paypal doesn't provide this directly). Would result in incorrect computation, particularly with very old backorder finalisation an inattentive operator could inadvertently refund the entire sale when clicking through defaults.
  • Added new income GL code for government subsidies / payments
  • Bugfix with clearing surcharge lines  on unit deals. A surcharge line (persisted by rolling back a  straight sale into a deal which had a surcharge) would crash c9 and not allow you to refinalise the deal until the surcharge line is manually deleted. Now fixed.
Release 4.819 April 29, 2020 barney
  • Tweaks and fixes
    • Qld Rego forms : updated new reg form to latest
    • General Ledger : Added a couple of  GL codes to track income tax
    • P/L : trading statement : cost of consigned units was not included in trading statement and instead showing as a P/L line expense, now adjusted.
    • Add parts to workshop job.  Record clerk on the workshop spares record as the entering clerk, not the original booking clerk.
    • Orderbook locking : would display wrong franchise name on a lock event.  C9 would try to lock the correct franchise, but on screen whould show wrong name giving misleading feedback to operator. Now fixed.

Paypal issues

Once again paypal have made 'changes' to their backend that introduce regressions. You'd assume because they are wildly successful their technology is excellent. You'd assume wrong.

The issue:  c9 does three things when it talks to paypal to capture money. (This is only necessary because of other issues BTW, if their API was designed sanely this would not even be necessary). It:

  1. Gets a list of txns
  2. Posts a capture
  3. Regets a list of txns

Now step 2 to to 3, c9 assumed the txn you add in step 2 appears in step 3 straight away and made calculations based on this. As to two weeks ago this is not the case. Step 2 to 3 can be delayed by upto a minute. Txns you post are not visible when you query them initially. From a finances services systems architecture/design perspective this is quite an incredible situation. Yet here we are.... Again.

So previously, c9 would then try to recapture assuming the prior capture failed since the txn didn't appear in txn list. C9 can only assume sum of txns is what is in the list, but paypal doesn't give us the full list, or any other way to tell what has been billed so far. That capture would bork with an error. You'd need to bail out and reenter so c9 sees the eventually updated txn and computes things accurately.

So two things this ver of c9 now does:

  1. it provides a manual refresh button so you can refresh
  2. After you post a capture, c9 will go into an infinite loop  waiting until # of txns paypal reports is one more than what it was before. Until it does it stays in a retry loop. With a screen that looks like this:

So I contact PayPal to raise an issue. Their reply, 6 hours later: "due to coronavirus (COVID-19) safety precautions, we currently have limited customer service staffing".  Since this only started happening consistently two weeks ago, when we were already deep in the pandemic, so they have the capacity to make changes that inadvertently introduce regressions, but not fix them. Dickheads.




Consider the following set of variation data.

BLACK/BLACK 2113439 2113447 2113436 2113434
BLACK/GREEN 2113457 2113455
BLACK/ORANGE 2113476 2113474
BLACK/RED 2113450 2113448
BLACK/WHITE 2113443 2113442 2113441
BLACK/YELLOW 2113462 2113460 2113463


Focusing on part 2113441, which is SMALL BLACK / WHITE.  THere is no part which is BLACK / WHITE and XL:

BLACK/BLACK 2113439 2113447 2113436 2113434
BLACK/GREEN 2113457 2113455
BLACK/ORANGE 2113476 2113474
BLACK/RED 2113450 2113448
BLACK/WHITE 2113443 2113442 2113441
BLACK/YELLOW 2113462 2113460 2113463


So on website: when you drop down option, XL is greyed out. Because there is no way to get to it by changing size alone. For black white items : we only have LARGE, MEDIUM, SMALL. XL doesn't exist.

To work around this, whenever this happens on website  there is a dropdown called variations where you can eyeball stuff that is not directly reachable as matrix is not complete.


The variations drop down picks up anything which cannot be accessed at all from currently viewed part.


Consider this.

BLACK/BLACK 2113439 2113447 2113436 2113434
BLACK/GREEN 2113457 2113455
BLACK/ORANGE 2113476 2113474
BLACK/RED 2113450 2113448
BLACK/WHITE 2113443 2113442 2113441
BLACK/YELLOW 2113462 2113460 2113463

Yellow 2113411 is where we start.

Green parts are ones we can get to just by changing One thing, size or colour. So from 2113441 to 2113448 we change from black/white to black/red. Size stays on 'small'

Orange parts are ones we can get to by changing two things. So from 2113441 to 2113450 we need to firstly change size to 'LARGE' (2113443) then change color to 'BLACK/ RED'

The red item is all by itself there is no way to get to it. Even though it is flagged as a variation, it has nothing in common with other items at all. So c9 website parks it in its own 'variations' catchall group.


For variations you pretty much want a matrix where every cell contains an item.  IF this is not possible c9 does its best to create an interface which allows users to move to variations.



Next Page »