My son has a business idea that needs a shopping cart and so I ventured into GitHub to see what open source options were available. I happened upon "CartFusion" which was uploaded to GitHub last month. This name triggers a memory, and I'm wondering CartFusion was once an actual product-now-turned open source. The readme notes reference SQL 2000/SQL 2005 Management Studio so I imagine this being a resurrected codebase. I downloaded the source, executed the SQL Scripts and fired it up.

Since I am using CommandBox, I recall that I need to either (a) fire up Lucee from CommandBox's system tray icon of the same name and enter my data source and coldfusion mapping as instructed by the GitHub readme, or (b) box install commandbox-cfconfig. I will start out with the former and save the latter for future plans.

Opening Lucee for the first time in order to add these settings requires me first to save a txt file with the password in it. In order to find out where CommandBox has installed Lucee, I refer again to the system tray and find my way to

C:\Users\my.name\.CommandBox\server\9F325F4B505763A72EF735FABF2CE83D-wwwroot\lucee-5.3.8.206

Because this is a brand-new setup of SQL Server Developer Edition, I had some issues to work through. The TCP/IP connection to the host 127.0.0.1, port 1433 has failed. Running SQL 19, I opened Sql Server Configuration Manager (yes, it is spelled "Sql"), expanded SQL Server Network Configuration > Protocols for MSQLServer, and sure enough, TCP/IP was disabled. I enabled and restarted SQL Server, and the connection was successful.

Next, I received a configuration error. There is a path, c:\web\cartfusion\4_8_0\_config\_serverSpecificVars.cml.cfm that has to be configured correctly as CoreFolder to point in my file structure as C:\Web\cartfusion\core\4_8_0\_config . So, where the GitHub instructions state to leave the value in CoreFolder as blank ( = ''), I think it should remain 'core' as the value, which is the value received originally in the code. I needn't change it. Correct is below

<cfscript>
SoftwareVersion = '4_8_0' ;
CoreFolder = 'core' ;
ApplicationName = 'cartfusion' ;
if ( CGI.HTTP_HOST CONTAINS 'localhost' ) {
ConfigurationFile = '_config\_serverSpecificVars2.xml.cfm' ;
SubDomainLevels = 1 ;
} else {
ConfigurationFile = '_config\_serverSpecificVars.xml.cfm' ;
SubDomainLevels = 1 ;
}
</cfscript>

After fixing that issue, the next item to tackle is the "invalid component definition, can't find component error on line 99 of application.cfc:

application.Config = CreateObject("component", "#application.Components#.config.config").init(dsn=application.dsn,SiteID=application.SiteID) ;

So, application.components is somewhere set to "CartFusion48_core.4_8_0.com:" The issue is the CartFusion48_core. The actual file path is C:\Web\cartfusion\core\4_8_0\com\config

After some digging, I found this value in line 13 of _serverSpecificVars.xml.cfm.

 

<Components>CartFusion48_Core.4_8_0.com</Components>

 

After changing the "Components" xml node value to "core.4_8_0.com", and created/updated the Lucee Virtual Mapping with a virtual value of /core and a resource of c:\web\cartfusion\core, I was up and running with "CartFusion Ecommerce Software."

I'm looking forward to digging a bit deeper in my next blog post.