<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>scriptygoddess &#187; cubecart</title>
	<atom:link href="http://www.scriptygoddess.com/archives/category/cubecart/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.scriptygoddess.com</link>
	<description></description>
	<lastBuildDate>Thu, 08 Dec 2011 18:23:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Submit is Not a Function (and getting links to submit all forms in CubeCart)</title>
		<link>http://www.scriptygoddess.com/archives/2008/03/15/submit-is-not-a-function-and-getting-links-to-submit-all-forms-in-cubecart/</link>
		<comments>http://www.scriptygoddess.com/archives/2008/03/15/submit-is-not-a-function-and-getting-links-to-submit-all-forms-in-cubecart/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 14:57:30 +0000</pubDate>
		<dc:creator>Jennifer</dc:creator>
				<category><![CDATA[cubecart]]></category>
		<category><![CDATA[Javascript Related]]></category>

		<guid isPermaLink="false">http://www.scriptygoddess.com/archives/2008/03/15/submit-is-not-a-function-and-getting-links-to-submit-all-forms-in-cubecart/</guid>
		<description><![CDATA[&#034;Why am I getting that Javascript error?? WTH is it talking about &#8211; submit IS a function!!&#034; So here&#039;s the deal &#8211; if you have a form and an element in the form is named &#034;submit&#034; &#8211; if you try to call document.myform.submit() &#8211; you&#039;ll end up getting the &#034;submit is not a function&#034; javascript [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>&#034;Why am I getting that Javascript error?? WTH is it talking about &#8211; submit IS a function!!&#034;</p>
<p>So here&#039;s the deal &#8211; if you have a form and an element in the form is named &#034;submit&#034; &#8211; if you try to call <strong>document.myform.submit()</strong> &#8211; you&#039;ll end up getting the &#034;submit is not a function&#034; javascript error. (Because to javascript &#8211; &#034;submit&#034; is now that object element in your form &#8211; not a function)</p>
<p>So the simple solution is if you plan on using the javascript function submit() &#8211; do not name any of your form elements &#034;submit&#034;.</p>
<p>That&#039;s all well and good except if you&#039;re working on code that isn&#039;t completely yours &#8211; and if the PHP code to process the form is specifically looking for $_POST['submit'] like so:</p>
<p><code>if (isset($_POST['submit'])) { // process form }</code></p>
<p>then you now have another problem.</p>
<p>This was the case I ran into with CubeCart recently. Most of the forms do not require a submit element to be in the form in order to process it &#8211; but a handful did. The design I was working on needed all the buttons designed and to look the same. So my options were:</p>
<p>1) Just use the regular <strong>input type=&#034;submit&#034;</strong> button on those forms. (Ok &#8211; but then the site is inconsistent)</p>
<p>2) search for all instances of (isset($_POST['submit']) in the code and change it to some other element I can add to the page&#8230; ie:</p>
<p><code>&lt;input type="hidden" name="formsubmitted" /&gt;</code></p>
<p>and then in the code:</p>
<p><code>if (isset($_POST['formsubmitted'])) { // process form }</code></p>
<p>(Obviously this is not recommended in the case of CubeCart as it will make it really annoying to maintain/upgrade the cart!)</p>
<p>3) add that other &#034;formsubmitted&#034; element I noted above to the pages that need it &#8211; then towards the top of the MAIN index.php page (which is called with all pages on the store) add the following:</p>
<p><code>if (isset($_POST['formsubmitted'])) $_POST['submit'] = 1;</code></p>
<p>Thereby setting the value of $_POST['submit'] so it will process the form&#8230;</p>
<p>Another tip with using css-styled links for buttons that will submit forms in CubeCart &#8211; you don&#039;t need to use document.FORMNAME.submit() &#8211; from any form you can use their &#034;submitDoc(&#039;FORMNAME&#039;)&#034; function like so:</p>
<p><code>&lt;a href="javascript:submitDoc('FORMNAME');" class="myButtonStyle"&gt;Send Form&lt;/a&gt;</code></p>
<p>Just make sure the form has a name (some of them don&#039;t).</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.scriptygoddess.com/archives/2008/03/15/submit-is-not-a-function-and-getting-links-to-submit-all-forms-in-cubecart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some CubeCart 4 minor mods (including select box image changer)</title>
		<link>http://www.scriptygoddess.com/archives/2008/01/05/some-cubecart-4-minor-mods-including-selectbox-image-changer/</link>
		<comments>http://www.scriptygoddess.com/archives/2008/01/05/some-cubecart-4-minor-mods-including-selectbox-image-changer/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 20:02:39 +0000</pubDate>
		<dc:creator>Jennifer</dc:creator>
				<category><![CDATA[cubecart]]></category>

		<guid isPermaLink="false">http://www.scriptygoddess.com/archives/2008/01/05/some-cubecart-4-minor-mods-including-selectbox-image-changer/</guid>
		<description><![CDATA[I&#039;ve now used CubeCart 4 for a number of clients recently, and I have to say I&#039;m pretty impressed. As with any cart &#8211; the features still have to match your needs, but for the most part, the clients I&#039;ve implemented this for were able to get the features they had wanted. Then add in [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve now used CubeCart 4 for a number of clients recently, and I have to say I&#039;m pretty impressed. As with any cart &#8211; the features still have to match your needs, but for the most part, the clients I&#039;ve implemented this for were able to get the features they had wanted. Then add in a few mods, and we&#039;re in even better shape. I also want to mention that CubeCart 4&#039;s support has been fantastic! Great customer service, helpful responses, with reasonable response time. They&#039;re in a different time zone than me, but normal requests would be answered within a day &#8211; when I had a critical issue it was responded to within a few hours that same day. And as before, customizing their template has been pretty painless. I&#039;ve been really happy with them and they&#039;ve moved up to the top of my recommended list for cart software.</p>
<p>So to get things working just so with a few of my recent implementations, here are a some tricks I did: (Some of these little hacks were actually given to me by CubeCart&#039;s support, although they do specifically say they don&#039;t support changes to core application files.)<br />
<span id="more-1504"></span><br />
<strong>Alternating background row colors on home page:</strong><br />
I wanted to list the &#034;latest products&#034; and alternate background row colors &#8211; but this isn&#039;t something that&#039;s done automatically (it is on other pages, but for some reason it&#039;s not on the home page).</p>
<p>In this file:<br />
<em>includes/content/index.inc.php</em></p>
<p>After this line:<br />
<code>$index-&gt;assign("VAL_PRODUCT_NAME", validHTML($latestProducts[$i]['name']));</code></p>
<p>I added the following:<br />
<code>if ($i % 2) {<br />
$index-&gt;assign("ROWCLASS", "altrow");<br />
} else {<br />
$index-&gt;assign("ROWCLASS", "normrow");<br />
}</code></p>
<p>Which gives you<strong> class=&#034;{ROWCLASS}&#034;</strong> and thye styles &#034;altrow&#034; and &#034;normrow&#034; to customize in use in your <em>yourskin/styleTemplates/content/index.tpl</em> template file where the &#034;latest products&#034; are listed.</p>
<p><strong>Stopping the &#034;Order received, awaiting payment&#034; emails</strong><br />
The store sends out a lot of emails (in my opinion). When you&#039;re in the checkout process &#8211; and you&#039;ve submitted your order but haven&#039;t filled out the credit card page yet &#8211; the store sends an email because at that point, the order is saved. It&#039;s kind of unnecessary &#8211; because I think most people are either going to fill out their credit card information right away &#8211; or just completely abandon making their purchase. In any case, to turn off those emails I did the following:</p>
<p>In this file:<br />
<em>/classes/cart/order.php</em></p>
<p>At about line 688 is the following:<br />
<code>$mail-&gt;send(array($this-&gt;orderSum['email']), $config['mailMethod']);</code></p>
<p>Comment it out by adding &#034;//&#034; before the line, like so:<br />
<code>//$mail-&gt;send(array($this-&gt;orderSum['email']), $config['mailMethod']);</code></p>
<p><strong>Stopping the &#034;Order canceled&#034; emails</strong><br />
The other kind of annoying email that goes out is whenever an order gets canceled (whether it&#039;s because the customer never followed through and entered their payment &#8211; or the store owner was clearing out orders that got abandoned). To turn those off:</p>
<p>Again in this file:<br />
<em>/classes/cart/order.php</em></p>
<p>At about line 390 is the following:<br />
<code>$mail-&gt;send(array($this-&gt;orderSum['email']), $config['mailMethod']);</code></p>
<p>Again, comment it out by adding &#034;//&#034; before the line like so:<br />
<code>//$mail->send(array($this->orderSum['email']), $config['mailMethod']);</code></p>
<p><strong>Cart navigation</strong><br />
When you&#039;re on one of the cart pages, the cart navigation is reverse of what is typical (I think) &#8211; I also think this caused some usability problems with one of the customers. For example, on all the other store pages, &#034;Homepage&#034; is the top link, but on the cart page &#034;Empy cart&#034; is the top link, and &#034;homepage&#034; is the LAST link. The customer said that the cart would empty everytime he&#039;d go back in the store to add additional items to his cart. I tried to duplicate his error and couldn&#039;t &#8211; but I did notice myself almost clicking &#034;Empty cart&#034; when I meant to go back to the homepage&#8230; heh. To change the order of the navigation items in the cart, I did the following:</p>
<p>In this file:<br />
<em>/includes/boxes/cartNavi.inc.php</em></p>
<p>Around line 89, is the following code:<br />
<code>if($_GET['_a']!=="step3") {<br />
$links[] = array (<br />
'link' =&gt; "index.php",<br />
'text' =&gt; $lang['cartNavi']['homepage']<br />
);<br />
}</code></p>
<p>Added this line after that section:<br />
<code>$links = array_reverse($links);</code></p>
<p><strong>Change product image based on option selection</strong><br />
One of my clients wanted to change the main product image based on the option selected. (i.e. the options were different colors of the product, and they wanted the image to show the image of the color selected in the option list). This was a little trickier because there is no association in CubeCart of options to images. So this had to be done manually &#8211; they uploaded all the images &#8211; and added all the options to the catalog. Then I created a javascript file that had all of it set up in an array.</p>
<p>initialize the array:<br />
<code>var optionimages = new Array();</code><br />
Then for each option:<br />
<code>optionimages[OPTION-ID-GOES-HERE]="PATH-TO-IMAGE-FILE-HERE";<br />
(here's an example)<br />
optionimages[3] = "/store/images/uploads/redoption.jpg";</code></p>
<p>(I actually first set it all up in an excel file to organize it all (copied from the cubecart admin screen and pasted into excel) &#8211; and then used CONCATENATE to combine it all together.) This list will need to be udpated if/when they add more products/options.</p>
<p>Also in that javascript file I had the following function:<br />
<code>function changeProdImage() {<br />
var prodoptions = document.getElementById("productionOpts");<br />
var optionChoice = prodoptions.options[prodoptions.selectedIndex].value;<br />
	if (optionimages[optionChoice] &#038;&#038; optionimages[optionChoice] != "") {<br />
		document.images.MainProdImage.src = optionimages[optionChoice];<br />
		document.getElementById("optionname").style.display="block";<br />
		document.getElementById("optionname").innerHTML = prodoptions.options[prodoptions.selectedIndex].text;<br />
	}<br />
}</code></p>
<p>To get just the images for the options on the particular product page you&#039;re on, I added this function to that javascript file as well:<br />
<code>function preloadOptionImages() {<br />
	var prodoptions = document.getElementById("productionOpts");<br />
	var imagearray = new Array();<br />
	for (var i =0; i &lt; prodoptions.options.length; i++) {<br />
		imagearray[i] = new Image();<br />
		imagearray[i].src = optionimages[i]	;<br />
	}<br />
}</code></p>
<p>This javascript file gets included on the yourskin/styleTemplates/global/index.tpl file. Like this in the head section:<br />
<code>&lt;script type="text/javascript" src="/js/options.js"&gt;&lt;/script&gt;</code><br />
(which assumes you have a directory in your root named &#034;js&#034; with this javascript file in it, and you have named it &#034;options.js&#034;)</p>
<p>And on the <em>yourskin/styleTemplates/content/viewProd.tpl</em>, I added the following:</p>
<p>Where the select drop down box shows up like this:<br />
<code>&lt;select name="productOptions[]" class="OptionsStyle"&gt;</code></p>
<p>I changed it to this:<br />
<code>&lt;select name="productOptions[]" class="OptionsStyle" <strong>id="productionOpts" onchange="changeProdImage();"</strong>&gt;</code></p>
<p>And to have the &#034;name&#034; of the option displayed under the photo I have this:<br />
<code>&lt;div id="optionname"&gt;&lt;/div&gt;</code><br />
And hide it until we start changing options by doing this in the stylesheet:<br />
<code>#optionname {<br />
display: none;<br />
text-align: center;<br />
font-size: 14px;<br />
font-weight: bold;<br />
}</code></p>
<p>(that div will get populated with whatever text is shown in the options box&#8230; so if they select the option that says &#034;red polka dots&#034; &#8211; then it will switch out the main photo for whichever photo was associted with that option, and will display the text &#034;red polka dots&#034; underneath it.)</p>
<p>To get the image preloader going, I add the following somewhere on the product template page (<em>yourskin/styleTemplates/content/viewProd.tpl</em>) after the option select box:<br />
<code>&lt;script type="text/javascript"&gt;<br />
preloadOptionImages();<br />
&lt;/script&gt;<br />
</code></p>
<p><a href="http://www.scriptygoddess.com/resources/1504/imageChanger.htm">Here&#039;s a (static) example of the product/option/photo changer thigy&trade;</a> lol!</p>
<p><strong>Add text to Order Complete email</strong><br />
One of my clients wanted their terms and conditions included in the email that goes out when the order is complete.</p>
<p>In this file:<br />
/classes/cart/order.php</p>
<p>after this:<br />
<code>$macroArray = array(<br />
		"PRODUCT_QUANTITY" =&gt; $this->orderInv[$i]['quantity'],<br />
		"PRODUCT_CODE" =&gt; $this-&gt;orderInv[$i]['productCode'],<br />
		"PRODUCT_PRICE" =&gt; priceFormat($this-&gt;orderInv[$i]['price'],true)<br />
	);<br />
	$text .= macroSub($lang['email']['order_breakdown_6'],$macroArray);<br />
	unset($macroArray);<br />
}</code></p>
<p>That should end at about line 309. To add text to that email I added this<br />
<code>$text .= "ADDITIONAL TEXT GOES HERE, etc. etc. etc.";</code></p>
<p><strong>Purchased Mods</strong><br />
A few mods I purchased in some cases:<br />
<a href="http://cubecart.expandingbrain.com/cubecart-4-mods/-all-in-one-shipping-module-cc4/prod_76.html">Estelle&#039;s All In One Shipping Mod</a>. This adds some functionality to the shipping options &#8211; allowing you to specify more zones, to a more detailed level than the one that comes default with CubeCart. (An additional note about that Mod Store. There was a small problem I had with the mod after installing it &#8211; I contacted the developer, got a quick reply and it was fixed within a day. A+ customer service and the mod was perfect!)</p>
<p>Another mod from Estelle &#8211; <a href="http://cubecart.expandingbrain.com/cubecart-4-mods/stock-levels-for-product-options-cc4/prod_77.html">Stock Levels for Product Options</a>. It makes no sense to me why this isn&#039;t built into CubeCart, but ok. This mod was a bit tricky to install, but as the instructions say &#034;take it slow, and read the instructions carefully&#034; and I was fine.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.scriptygoddess.com/archives/2008/01/05/some-cubecart-4-minor-mods-including-selectbox-image-changer/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Working with CubeCart</title>
		<link>http://www.scriptygoddess.com/archives/2007/07/06/working-with-cubecart/</link>
		<comments>http://www.scriptygoddess.com/archives/2007/07/06/working-with-cubecart/#comments</comments>
		<pubDate>Fri, 06 Jul 2007 16:56:18 +0000</pubDate>
		<dc:creator>Jennifer</dc:creator>
				<category><![CDATA[cubecart]]></category>

		<guid isPermaLink="false">http://www.scriptygoddess.com/archives/2007/07/06/working-with-cubecart/</guid>
		<description><![CDATA[As I wrote in the comments on this post, I have a new project that needed a shopping cart again. I tried Zen Cart again, and again I quickly remembered why I hated it so much. If I ever even so much as think of trying that package, just hand me the spork to remind [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>As I <a href="http://www.scriptygoddess.com/archives/2006/12/28/cube-cart-vs-zen-cart/#comment-520862">wrote in the comments on this post</a>, I have a new project that needed a shopping cart again. I tried Zen Cart again, and again I quickly remembered why I hated it so much. If I ever even so much as think of trying that package, just hand me the spork to remind me how I wanted to spork my eyes out everytime I use it.* Last time I really liked working with Cube Cart but ran into a problem with shipping and then went on a long hunt for something that did what I needed with shipping, was easy to modify templates, etc. etc. Since this time I didn&#039;t have the same kind of shipping restriction, I figured I&#039;d give Cube Cart another go. So far so good. Customizing has been a breeze. Very intuitive. I&#039;ll be updating this post over the next few days with things I find useful as I work on the project (due next week! Wish me luck! heh)<br />
<span id="more-1489"></span><br />
From the Cube Cart forums, a list of tutorials:<br />
<a href="http://www.cubecart.com/site/forums/index.php?showtopic=12497">Skining, Templates and Layout Modification, Skining Tricks, Tips and more advanced</a></p>
<p><a href="http://www.practicalecommerce.com/blogs/developers-diary/archives/63">This has a small explanation on how to add PHP code to your template.</a> For example &#8211; adding a date generated by PHP</p>
<p>And this one is really ironic. /cry<br />
<a href="http://cubecart.expandingbrain.com/cubecart-3-mods/shipping-by-item-quick-easy-/prod_61.html">This mod (for a reasonable fee) would have solved my problem that I had with shipping last time I tried Cube Cart.</a></p>
<p>From the same people that made the shipping mod mentioned above:<br />
<a href="http://cubecart.expandingbrain.com/cubecart-3-free-mods/redirect-to-basket/prod_14.html">This free mod will redirect the user to the shopping cart basket after they add a product.</a></p>
<p>Here&#039;s a mod to <a href="http://www.rukispot.com/cube-cart-cc3-seo-mod-search-engine-friendly-urls-custom-urls-meta-tags-robotstxt-php-session-killer/">make CubeCart more SEO friendly</a> (Haven&#039;t tried it, but thinking about it&#8230;)</p>
<p>If you&#039;re allowing users to ship product to addresses other than the address on file, you&#039;ll get a step where it wants you to specify the shipping address. If the user is NOT going to take advantage of this, it&#039;s kind of annoying &#8211; and I think probably you&#039;ll more likely want those users that want a different shipping address to take the step of clicking a line to change the shipping addres&#8230; this mod will skip that annoying step:<br />
<a href="http://cc3.biz/cubecart-mods/cubecart-free-mods/do-not-force-step-3/prod_102.html">Do Not Force Step 3</a></p>
<p>*****************************************<br />
I&#039;ll list below any mods I made myself:<br />
<strong>**PLEASE NOTE &#8211; I strongly recommend you either make a backup copy of any file you edit and/or indicate in the file you&#039;re making changes where your change begins and ends using PHP comments.</strong></p>
<p><strong>If there is no text for a product &#8211; do not show just the &#034;&#8230;&#034; on the category page.</strong><br />
Open up viewCat.inc.php (found in the YOURSTORE/includes/content/ directory) and find this line:<br />
<code>$view_cat-&gt;assign("TXT_DESC",substr(strip_tags($productResults[$i]['description']),0,$config['productPrecis'])."&hellip;");</code><br />
Replace with this:<br />
<code>if ($productResults[$i]['description']  == "") {<br />
$view_cat-&gt;assign("TXT_DESC","");<br />
} else {<br />
$view_cat-&gt;assign("TXT_DESC",substr(strip_tags($productResults[$i]['description']),0,$config['productPrecis'])."&hellip;");<br />
}</code></p>
<p><strong>If there is no text for a product &#8211; do not show the &#034;Product Information&#034; header on the view product page</strong><br />
Open up viewProd.inc.php (found in the YOURSTORE/includes/content directory) and find this line:<br />
<code>$view_prod-&gt;assign("LANG_PRODINFO",$lang['front']['viewProd']['product_info']);</code><br />
Replace with this:<br />
<code>if ($prodArray[0]['description'] == "" || $prodArray[0]['description'] == " ") {<br />
$view_prod-&gt;assign("LANG_PRODINFO","");<br />
} else {<br />
$view_prod-&gt;assign("LANG_PRODINFO",$lang['front']['viewProd']['product_info']);<br />
}</code></p>
<p><strong>Make it so that you can pull in feature product descriptions on the home page</strong><br />
Open up index.inc.php (fround in the YOURSTORE/includes/content directory) and find this line:<br />
<code>$latestProducts = $db-&gt;select("SELECT productId, image, price, name, sale_price FROM ".$glob['dbprefix']."CubeCart_inventory WHERE `showFeatured` = 1 ORDER BY productId DESC LIMIT ".$config['noLatestProds']);</code><br />
Replace with this:<br />
<code>$latestProducts = $db-&gt;select("SELECT productId, image, price, name, sale_price, description FROM ".$glob['dbprefix']."CubeCart_inventory WHERE `showFeatured` = 1 ORDER BY productId DESC LIMIT ".$config['noLatestProds']);</code><br />
Then, locate this line:<br />
<code>$index-&gt;assign("VAL_PRODUCT_NAME",validHTML($latestProducts[$i]['name']));</code><br />
and add this line below it:<br />
<code>$index-&gt;assign("TXT_DESC",strip_tags($latestProducts[$i]['description']));</code><br />
Now you can use the {TXT_DESC} tag in your index.tpl template file (found in the YOURSTORE/skins/YOURSKIN/global/ directory)</p>
<p><strong>Sort products on category page by product ID #</strong> (this ID is only shown in the Admin &#8211; this is NOT the same as the product code)<br />
Open up viewcat.inc.php (found in YOURSTORE/includes/content directory) and find this line:<br />
<code>$productListQuery = "SELECT ".$glob['dbprefix']."CubeCart_cats_idx.cat_id, ".$glob['dbprefix']."CubeCart_cats_idx.productId, productCode, quantity, description, image, price, name, popularity, sale_price, stock_level, useStockLevel FROM ".$glob['dbprefix']."CubeCart_cats_idx INNER JOIN ".$glob['dbprefix']."CubeCart_inventory ON ".$glob['dbprefix']."CubeCart_cats_idx.productId = ".$glob['dbprefix']."CubeCart_inventory.productId WHERE ".$glob['dbprefix']."CubeCart_cats_idx.cat_id = ".$db->mySQLSafe($_GET['catId']);</code><br />
Change it to this:<br />
<code>$productListQuery = "SELECT ".$glob['dbprefix']."CubeCart_cats_idx.cat_id, ".$glob['dbprefix']."CubeCart_cats_idx.productId, productCode, quantity, description, image, price, name, popularity, sale_price, stock_level, useStockLevel FROM ".$glob['dbprefix']."CubeCart_cats_idx INNER JOIN ".$glob['dbprefix']."CubeCart_inventory ON ".$glob['dbprefix']."CubeCart_cats_idx.productId = ".$glob['dbprefix']."CubeCart_inventory.productId WHERE ".$glob['dbprefix']."CubeCart_cats_idx.cat_id = ".$db->mySQLSafe($_GET['catId'])." ORDER BY ".$glob['dbprefix']."CubeCart_cats_idx.productId ASC";</code></p>
<p><strike>**THIS POST IS A WORK IN PROGRESS &#8211; I WILL BE MAKING UPDATES OVER THE NEXT FEW DAYS &#8211; I&#039;LL UPDATE THIS LINE WHEN I&#034;M DONE**</strike> (See latest update below)</p>
<p>Disclaimers:<br />
* I know there&#039;s a bunch of people that use Zen Cart and love it &#8211; more power to you. This is nothing against you personally &#8211; it just doesn&#039;t do it for me. It was pretty easy to install, but customizing the templates was a real pain in the ass for me and I personally never want to look at another Zen Cart template again. LOL</p>
<p><strong>Update 7/8/07: </strong>After only a few days, the cart is running and the template is roughly 95% complete. I have some minor tweaks to do  &#8211; but this took very little time overall. Now my 20/20 hindsight on CubeCart &#8211; it&#039;s GREAT for what I&#039;m using it for &#8211; a few products, don&#039;t need a lot of features &#8211; and the cart is free (with the copyright on the bottom). If I was working on a larger store, I&#039;d probably want something different that had more geek-knobs. (Of course, I&#039;d still want them in a better admin-UI than Zen Cart had) There are quite a number of mods out there for Cube Cart &#8211; most of them seem to be pretty inexpensive, but I think some of the more expensive shopping carts still end up ahead in the feature-department.</p>
<p><strong>Update 7/19/07:</strong> My CubeCart installation is all set now. There was one VERY large hack that I made that I still need to document and post here. The client wanted to accept donations through the store. There is no add on, or setting that I could find, that would make it so that the price field was &#034;open&#034; and user-determined. I did see two methods for taking donations: One was to set up &#034;products&#034; of specific donation amounts ($10, $20, $50, etc). The other was to set up a &#034;$1&#034; product, and ask users to enter the number of dollars of their donation in the &#034;quantity&#034; field. Both of these options, we felt, weren&#039;t terribly usable. So what I did was hack a number of pages to hide the fact that, for that particular (donation) &#034;product&#034;, the quantity field was not in fact the quantity field, and made it look as if it was a &#034;donation amount&#034; field. It relied on the fact that there were no other &#034;$1&#034; products in the inventory &#8211; so if the product&#039;s price was $1 &#8211; it had to be the &#034;donation&#034; product. I also hacked the supporting pages, like the category page, cart page, to change how they looked as well to be consistent with how we were treating that product. It&#039;s A LOT of hacking. (Yes, I know this will make upgrades more difficult, but the client really really really wanted it this way)</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.scriptygoddess.com/archives/2007/07/06/working-with-cubecart/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

