Custom Search

BakeSale Blog - Simply shopping cart

BakeSale 1.2 final released

August 16th, 2008

With CakePHP RC2:
http://bakesale.googlecode.com/files/bakesale_1.2_final.with.cakephp.zip

Very easy speed enhancement for CakePHP

August 6th, 2008

Add this to bottom of your config/bootstrap.php just before the closing ?>

ob_start ('ob_gzhandler');

Your output is now gzipped. As BakeSale delivers CSS and Javascript thru an controller, these are Gzipped automagically too.

Edit: Trade-off is CPU load. However you can always upgrade your server easier than the visitors upgrade their bandwidth.

Mobillcash payment module added to SVN

August 6th, 2008

Mobillcash is an m-commerce billing platform that integrates with network operators around the world, making it possible for consumers to pay for online services and products with their mobile phone.

On a personal note: pretty much every other payment method provider could use Mobillcash as an example on how to handle developers as this was pretty much an perfect experience.

  • Extremely helpful support person (thanks Waseem) who contacted me personally thru Instant messenger.
  • 2 tier affiliate program with recurring payments, not just for a signup.
  • The payment method was extremely easy to implement, as can be seen from the code.

SEO enhancement: validateUrl function

August 6th, 2008

By default the Search Engine optimized URLs in BakeSale use the brand/product/category/content name as a base for writing the url.

Example:
http://demo.bakesalehq.com/dont-make-me-think-p-5.html

Basically you can use:
http://demo.bakesalehq.com/whatever-whenever-p-5.html

And it still points to correct page. Only -p-5.html part matters. p is for product and 5 is the id of the product.

However with the duplicated content hunt going on there is a small problem. If you change the product name Google might see this as two different pages having the same content.

Solution in the latest BakeSale release

Example (from categories_controller:show):

$this->_validateUrl($data['Category']['name']);

The function itself (in app_controller):


function _validateUrl($name) {
    $name = format_seo($name);

    $url = ltrim($_SERVER['REQUEST_URI'], "/");
    if(strstr($url, '.html')) {
        $urlArray = explode('-', $url);
        $urlArrayCount = count($urlArray);
        $end = $urlArray[$urlArrayCount - 1];
        $type = $urlArray[$urlArrayCount - 2];
        if($url != $name . '-' . $type . '-' . $end) {
            $this->redirect('/' . $name . '-' . $type . '-' . $end, 301);
        }
    }
}

What does it do ?

It checks if the current name in url is the correct one and redirects with 301 header (permanent redirect) to the correct address.

Demo updated to RC1

August 5th, 2008

http://demo.bakesalehq.com/

Please report any possible bugs to http://trac.assembla.com/bakesale/. No login is needed but this may change in the future if spam becomes a problem.

BakeSale 1.2 RC1 available

August 4th, 2008

Download (includes CakePHP):

http://bakesale.googlecode.com/files/bakesale_1.2_rc1.with.cakephp.zip

BakeSale SVN moved to assembla

August 4th, 2008

I just had to have all on Trac…

http://trac.assembla.com/bakesale/timeline

Import was a bit messy but it did give me chance to do some cleaning up.

Duplicated content: what should Google do ?

July 3rd, 2008

Google does not like duplicated content, which is understandable. Unfortunately there is (AFAIK) no way to mark that your content is from somwhere else that search engines would understand.

This came up in my own project where BakeSale was used in a multishop scenario. One main shop that has all products available from a company and several brand sites showing only some products. While both (of course :) ) product pages have top positions on SERPs I would like to have the brand pages come up first.

What I would do

Allow site authors to setup an link relationship in html header, like:

<link rel=”original” href=”http://original-source.com”>

CakePHP RC2 out

June 30th, 2008

Just in case someone has not noticed :)

Just did a fresh install of Bakesale using CakePHP RC2 and the new online installer. Took about 5 minutes including the file transfer.

BakeSale blog started

June 30th, 2008

A pretty new experience for me., will see where this leads…