There are many ways to skin a c9 powered website. Various options available to you to help the dealer you are working with differentiate their online web business beyond the basic controls built into c9 itself.
Option 1 - build your own
C9 exposes a programming API that allows you to create a website that connects into the dealers database. The API is based on http/json documents, an increasingly popular system used by many web providers, such as Facebook. http/json is attractive because it is thin and relatively simple to build and extend. In your web app, the Model Layer in your MVC framework instead of connecting to a backend database, it connects to our database via our API. This method is complex and requires a high level of professional comfort with programming in general and web service integration in particular; but provides you the maximum possible in terms of flexibility.
Details on this can be found here.
http://c8software.com.au/wp/2011/11/integrate-your-website-into-c9-for-seamless-online-shopping/
Option 2 - insert an iframe
Some dealer websites contains iframe links to c9 hosted sites. We are able to perform basic styling to remove things such as headers etc in order to create a better visual integration between your solution and ours. Contact us for more details and some URL links of existing sites that do this.
Option 3 - provide c9 custom css
A c9 powered website has a very basic CSS structure. A number of base css files are loaded and then a custom css where site specific styling can be added. Inspecting HTML you can see following:
<link rel="stylesheet" type="text/css" href="/shop/static/css/base.css" /> <link rel="stylesheet" type="text/css" href="/shop/static/css/staticpages.css" /> <link rel="stylesheet" type="text/css" href="/shop/static/css/nivo-slider.css" /> <link rel="stylesheet" type="text/css" href="/shop/static/prettyPhoto/css/prettyPhoto.css"/> <link rel="stylesheet" type="text/css" href="/shop/static/css/trooperlu.css" />
You can save as the web pages from our site, make changes to css file and then send us the changes you made. We will then incorporate those changes, including any images assets you add etc, into the website.
Let us know if you intend to use this approach, we will provide direction on what you need to do to help us make the task as simple and error free as possible. I.e. creating a before .zip and after .zip archive of the site design so that we can more easily identify changes made using diff tools.
Option 4 - work on our provided development host
We have a development host that we can share with you. It is a running system that uses live data so you are able to see results of your work precisely as they would appear in a live environment. We we do is synchronize the version on development to live, provide you with FTP and ssh access details to our development server and allow you to make changes to the system anywhere as you see fit. Once you have finished your work we then use change management/diff tooling to integrate your work back into our core codebase and then deploy to the live web server infrastructure.
This options requires you develop a bit of an understanding of how our web solution is constructed. The following explains this.
Our web site uses a basic LAMP stack variant.
L | linux (CentOS) |
A | apache |
M | postgresql. The database on our live webserver is a read-only mirror of the customer database; so changes to dealer system in the shop automatically propagate to read-only mirror within a few seconds. Website content is within a few seconds consistent with dealer inventory, pricing etc. The reason for using a mirror is motivated by following principal concerns:
|
P | php. We use a MVC micro framework called codeigniter; actual code is c9 code developed internally. |
One key point of complication with the c9 web solution is that the web database and code base co-hosts multiple dealer sites. Sites are differentiated by differing database keys in the mirrored database and different web access URLs. Yet the underlying database and MVC code is exactly the same. So single database stores data from dozens of dealerships. Main impact of that is when modifying code to work to support your project, your freedom to modify the site is constrained by considerations for not impacting other dealer websites serviced by the same system.
The reason why we do this is to simplify change management across the many sites we maintain and permit automatic rollout of new features to all our customers whenever we deploy a new version of the website (exactly as we do with our DMS product). This of course constrains our degrees of freedom for implementing different designs, though there are always ways to formally engineer in new degrees of freedom via setup and configuration. We are always open to discussing ways to make this happen.
The website is a basic CMS, where management of content is done via our c9 dealer management software. Which runs on premises at the dealership. This system manages inventory, ordering, prices etc. It's architecture is a typical client/server rich client, like MYOB/Quickbooks etc. The system mirrors the local server database in near realtime to online web servers. So there is no need to equipment at a dealership to be on and Internet accessible for website to function. If the dealers computers are currently offline, the website will simply serve data from the mirror, as was current upto the point where the link between database and mirror was broken.
Most of the work done to skin a website is represented in .css files as previously mentioned in a prior option for skinning. Each dealer has their own css file that overloads base css files.
Along with accessing css, you are free to inspect the PHP too and make and suggest modifications. i.e. typically in view layer of the PHP codebase.
We are able to grant you access to our development system. It is completely isolated from live system, including the database which is a secondary mirror. (A mirror of a mirror). You will be able to access this system, make changes as you see fit. Once you are ready we then merge those changes back into our central repository; performing change audit/control/management as necessary. Once this is complete a new version of the site is deployed to our live infrastructure. and deploy to live site. The dev site has access to a backup database. (A mirror of a mirror) so you can see how website looks in context of the dealerships actual data.
Our dev url is here (the actual URL will vary depending on the dealership):
http://dev.c8software.com.au/shop/test/
FTP access is available.
username is apache
Password is xxx
ftp://apache:xxx@dev.c8software.com.au/html/shop/
root ssh access is also available.
password is also xxx
Note that password will be reset on a per project basis. In above, xxx is merely a placeholder not the real password.
Look in /var/www/html/shop/ for site code. Main items of interest:
/var/www/html/shop/static/css/ | css files |
/var/www/html/shop/static/images/ | static images supporting css. Including css for Trooper lu etc. |
/var/www/html/shop/system/application/view/ | View layer PHP code |
/var/www/html/shop/system/application/ config/dealer/*.php |
Per dealer configuration file. Some things like custom footer and header HTML are expressed here. |