osCommerce has been trademarked ™

On August 14th at 5 pm UK time the name ‘osCommerce’ became the registered trademark of eCommerce Ventures Ltd (owners and operators of the new osCommerce Project). It is not due for renewal until 2019.

This registration is valid within the United Kingdom, but it is also the only instance world-wide of a legally registered ‘osCommerce’ trademark. We are now entitled to be notified of any attempt by anyone else to register the name ‘osCommerce’ as a trademark elsewhere in the world.

This will allow us to proceed now to officially licence the use of our trademark, and ends the confusion over who is and is not entitled to legaly [sic] use the name osCommerce.

We shall be in touch officially with the owner of this forum about continued use of the name “Club osCommerce”.

Miss Rhea Anthony (a.k.a. Vger)
Managing Director
eCommerce Ventures Ltd

http://www.ipo.gov.uk/domestic?domesticnum=2512693 for anyone who is interested.

Half Kilos in osCommerce shipping

Yesterday I was asked by a client to create quite a complicated shipping module. The module (now it’s completed) is a mash up of zones (but by states not countries), by weight per kilo and half kilo, via two separate couriers. It basically covers 3 different zones, in zones 1 and 2 are a number of states – these are charged by the kilo at $x and the first 3 kilos are charged at $y.

Example:

Zone 1:
First 3 kilos (or part thereof): $10
Extra Kilos above 3: $2.50 per kilo

Similar for Zone 2. Zone 3 is different in that the first 3 kilos are charged at $20, and each HALF kilo (or part thereof) thereafter is charged at $3. This brought a difficulty to the codebase – as if the total weight was say 5.8kgs, the charge should be:

First 3 kilos: $20
Next 3 kilos: $3 per half kilo
Total: $38

What was actually being charged was:

First 3 kilos: $20
Next 2.8 kilos: $3 per half kilo
Total: $36.80 [being $20 + ((2.8 * 3)*2)]

So what I had to do was find a way to round up any weight to the next nearest 1/2 kilo (unless of course the total weight is already a full kilo or a half kilo. So, for example:

3.0 stays at 3 kilos
3.1 is increased to 3.5 kilos
3.2, 3.3, 3.4 all increased to 3.5 kilos
3.5 stays at 3.5 kilos
and so on

This proved more difficult than I thought, but after a bit of lateral thinking I came up with:

[php]$num = 3.2;
$down = $num/0.5;
echo ceil($down)*0.5;[/php]

In the code, we are doing the following…

Assuming that we are looking to round 3.2, we divide 3.2 by 0.5. This gives us 6.40. Then we use the ceil function of PHP to automatically increase this to the next nearest integer which is 7. Then we multiply 7 by 0.5 to get the end result which is 3.5.

Sounds more complicated than it is! What this enabled me to do was set up zones differently for charging the correct amounts. Here is some of the codebase of the new shipping module that I created;

[php]// dest zone = 1 or 2
$shipping_cost = (($shipping) * (ceil($shipping_weight)-3)) + $handling;

// dest zone = not 1 and not 2
if ($dest_zone == 0) {
$the_weight = $shipping_weight-3;
$down = $the_weight/0.5;
$up = ceil($down)*0.5;
$shipping_cost = (($shipping) * (($up)*2)) + $handling;
}

$shipping_method = MODULE_SHIPPING_ZONES_ZCBK_TWO_TEXT_WAY . ‘ ‘ . tep_get_zone_name($order->delivery[‘country’][‘id’], $order->delivery[‘zone_id’], ”) . ‘: ‘ . $shipping_weight . ‘ ‘ . MODULE_SHIPPING_ZONES_ZCBK_TWO_TEXT_UNITS . ‘ (‘ . $way . ‘)’;[/php]

The above won’t mean much to non-coders, but it’s possible to see that I am doing a number of things within this module that are completely non-standard osCommerce. Shipping Modules are quite straightforward to code from scratch – I suppose that it’s one of my specialities!

So, if you need some complicated method of shipping coded up, feel free to contact me.