Zen Follower
- Join Date:
- Sep 2010
- Posts:
- 449
- Plugin Contributions:
- 0
Royal Mail Basic UK Shipping Modules
Chuck
Any plans for releasing an update with the new Royal Mail pricings especially for parcels due in April?
Views: 29,782
Zen Follower
Chuck
Any plans for releasing an update with the new Royal Mail pricings especially for parcels due in April?
Totally Zenned
Hi Rizla, Yes I've donwloaded the shiny brochures from RM and I'm working through the changes (my annual penance...) :)
Zen Follower
Very much apreciated...
Totally Zenned
I have uploaded a first pass of the modules updated with the 2013 changes to the Plugins section. SHould be available in a few days.
Please note that it is NOT final as there are still some grey areas regarding extra compensation/insurance that I'll only be ale to resolve once the RM website shows the new prices. Also, please report any errors, omissions etc that you encounter with the changes.
There are a LOT of changes (how unusual), and I strongly recommend that you download the new 2013 'Our Prices' and 'Our Services' brochures from the Royal Mail website. In particular note that the parcel services have size limits as well as reduced compensation, so you may want to review exactly which shipping modules you offer on your website.
Please uninstall ALL existing Basic UK modules in admin before installing the new ones. There are a number of new modules as well as name changes in the modules and you REALLY don't want a mixture of old and new there.
If you'd rather not wait a few days, you can download the revised modules here -
http://accompaniments.co.uk/pub/Basic_UK_Mail.zip
Regards,
Chuck
Zen Follower
Chuck
Think I found one small error with 2nd Class Small Parcel.... Weight to ship should be 2 (not 1)
Why do they make it so complex. There is no current way to set shipping of an item to small, med or large within Zen (as far as I can see)
A lot of my items will be covered by the 'small parcel' but some will need the medium because of the stupid 8cm Depth LOL
Totally Zenned
Thanks for that Rizla, I'll update the files for and submit when I'm reasonably happy that we've found 'all' the obvious bugs.
Seems my typing finger slipped when I was changing that one...
Regards,
Chuck
Totally Zenned
And yes, the small/medium thing is a nightmare. Do you think I should add some extra text about dimensions to the descriptions? Unfortunately it still wont prevent anyone selecting the wrong one, and one of the 'executive guesses' I made when updating was that the wright limit on small would hopefully solve most of that.
I'm looking at adding dimensional support, it's not too involved, but it would involve a LOT of extra work for shop owners to update existing sites.
There is also the concept of 'dimensional weight' used by some couriers that could be used here?
Chuck
Zen Follower
Chuckl:
And yes, the small/medium thing is a nightmare. Do you think I should add some extra text about dimensions to the descriptions? Unfortunately it still wont prevent anyone selecting the wrong one, and one of the 'executive guesses' I made when updating was that the wright limit on small would hopefully solve most of that.
I'm looking at adding dimensional support, it's not too involved, but it would involve a LOT of extra work for shop owners to update existing sites.
There is also the concept of 'dimensional weight' used by some couriers that could be used here?
Chuck
Be aware of the small print for posting. If it fits in a carton size 16x16x16cm it is classed as a small parcel. Also there's a bit about postal tubes as well as long as the diameter is less than 8cm.
https://www.candlewithcare.co.uk
Luxury Scented
Candles at great prices!
Zen Follower
Chuckl:
And yes, the small/medium thing is a nightmare. Do you think I should add some extra text about dimensions to the descriptions? Unfortunately it still wont prevent anyone selecting the wrong one, and one of the 'executive guesses' I made when updating was that the wright limit on small would hopefully solve most of that.
I'm looking at adding dimensional support, it's not too involved, but it would involve a LOT of extra work for shop owners to update existing sites.
There is also the concept of 'dimensional weight' used by some couriers that could be used here?
Chuck
Hi Chuck
Yes I do think the time is now with us where wwe will 'need' some control over dimentional aspects when entering product details. Maybe a dimention code number for each product that needs it and then the module selects the correct options?? Yes it would be a pain for very large sites to update all items but I can see this new Royal Mail thing costing us money if we don't.
CandleMan: Thanks for pointing that out... unfortunately I send a lot out that are 'just' outside that measurement lol (14x14x17) Just my luck!
We really do need a way that prevents the customer ripping us off along with Royal Mail.... Not an easy task I imagine.
Any thoughts??
Totally Zenned
With current options, one way to handle the problem is to review all your products and set some 'cutoff points ' in the shipping options. e.g. If you have a subset of very small products like flash memory cards for phones and cameras, and the rest of your product range is much bulkier and heavier, set the 'Small Parcel' weight limit at 200 grams, or whatever value suits your needs.
Obviously, this is not always possible, but it can minimise potential losses.
Another option is to play with the 'shipping and handling' charges for the individual modules, or similar settings.
And of course you can include the shipping charges in all products and 'free-ship' everything...
As installed, the modules are all default options, and my wild guesses as to what will be the best overall fit, but the over-riding philosophy is to have a set of modules that will work easily and get you going with reasonably accurate numbers for the shipping. I've also tried to stick with the prices that would be charged at the counter, rather than the account prices or similar, since it's aimed at the small startup, rather than the large going concern.
On the 'dimensions' front, there are a lot of ways to play it, but I'd always go with the least work for the shop owner.
That said, we still have a lot of approaches that could be used, and all approaches require additional info to be captured for each product offered. it can get very nasty very quickly when products are built up from attributes or options, and these modify the product size. At a minimum it would be the product dimensions.
Taking those raw dimensions for each product and trying to 'jigsaw puzzle' the items in an order into available boxes is a non starter, and the computation will stop your website cold.
Rather, we would add up the volumes,and simply pick a box they would fit in, as this is likely to give a reasonable guess. Or we could simply assume shipping in individual boxes, and up the max number of boxes from the default 3.
Possible approaches are as follows -
Use dimensional or volumetric weights, as noted in an earlier post. All this means is that you are picking an average density for your products, and the modules multiply the 3 dimensions in e.g. cm, and divide by a constant. It's much used by courier companies and similar, and by way of example (from memory), DHL divide by 5000 or 4000, UPS and Fedex by 6000 or 5000 (all rounded up), depending on destination and category of product.
This is then compared to the actual weight, and the larger is used. This means that light bulky items cost a LOT more to ship.
Another approach is to add an admin module for box definitions, and require a default shipping box to be chosen for each product offered. Clearly this allows VERY accurate shipping weights, but could be a lot of work for existing sites.
This also allows the 'free for all' option, where the modules 'pick a box' for the shipment, but as noted above, the computational intensity and complexity is horrendous. It's a variation of the traveling salesman problem, and I have no desire to go there.
All however, impose either a much higher workload or a requirement to get much more involved in the nitty gritty of the shipping on the store owner, but I suppose we could implement an on/off switch for the capability?
Rgds,
Chuck
Zen Follower
Thanks for the info Chuck
It certainly is a headache.
Zen Follower
Hi
This is a really good plugin and I'm thinking of using it on a test site and would like to adapted it for RM PPI which has 24 & 48, 24 & 48 Signed for and Special Del by 1.
I am thinking of tweaking 1st & 2nd, 1st & 2nd rec & next day to resolve this - has anyone else done this and is there anything I need to be wary of?
Totally Zenned
Hi Welshop,
As the module name implies, the add-on was created to provide a Basic module for UK shipping using the 'Over the Counter' Royal Mail rates, so that people could hopefully get a quick and easy solution to UK shipping.
As a result the modules often make assumptions automatically regarding added insurance or which services to use which may not be appropriate in a business oriented module.
I'm assuming you want to clone some of the modules to supply your required functionality rather than simply editing the rates etc, so I'm assuming you have some programming knowledge or experience?
To get shipping for a shopping cart of products, the Zen Cart core modules essentially call all enabled shipping modules in turn with a request for a quote for the current cart. The individual modules each decide whether they are able to give a quote, based on their coded criteria - price, weight, size, shipping destination etc - and if so, return the quote. Otherwise they set themselves to disabled and return nothing.
The core modules then obviously display any returned quote numbers to the customer.
For this to work, there are a couple of requirements. For example, each shipping class module name must be unique. For example, you can't have 3 or 4 modules all called rm_ppi, one doing standard, one doing 24, one 48 etc etc. This affects the class name and the constructor for the class, and of course the file name for the code should match.
There are also a LOT of constants for each module, some defined in the languages-english folders, others stored in the config table of the database,and these also have to be unique, or you get very unpredictable results.
The config table entries are defined in the module install routine embedded in the code.
All these constants are referenced all over the module code, so some careful editing is required. There is also a cryptic 'keys' routine at the bottom of the module code, which defines what is displayed in the Admin-Modules-Shipping display for the module. Lets just say that the config thereof is a tad unintuitive.
You also have to be aware of, and look out for some modules which attempt to use multiple boxes if max. weights are exceeded, and things like the valid destinations and insurance which can suddenly kick in and block the quote from being issued. There are some furtive constants you can set, such as the 'Hide invalid shipping' constant which will give a quote regardless when set to false, and which can be quite useful for debugging.
You'd have to set and use that yourself, as I don't think I implemented it anywhere.
Hope that helps, and good luck with your endeavours,
Regards,
Chuck
Zen Follower
Hi Chuck
Thanks for the incredibly detailed response - it made me realise that I need to keep away from any major code changes and possibly just try to adapt your work to fit by working with what's already there.
My plan now is to simply rename the different shipping alternatives so they show 24, 48 & signed for in the relevant english file (estimate shipping, invoices & checkout) but not change anything underneath other than the shipping rates for each to match PPI and since we dont use Insurance that can stay turned off.
I'll let you know how I get on
Cheers
Brinley
Zen Follower
Hi again Chuck
I thought I had a handle on shipping but your plugin has made me realise that I am still a long ways off.
I am just busy tweaking all the modules and just getting to know the ins and outs of it and I noticed an issue with Airmail not showing delivery time.
Initially i figured I had made an error amending the language file or that I had not turned "Display Delivery time" on however everything looked fine there.
So I tested variations of turning the other options insurance/weight on and found delivery time turmns on when weight is on but does not show when this is turned off.
I did find the amended zip file you earlier posted for airmail but when I installed it the result was still the same showing - Royal Mail Airmail ()
This is no biggy but just something I thought I would flag for you
Cheers
Brinley
Totally Zenned
Well spotted there Brinley, it is indeed a misplaced bracket. There was also some legacy insurance code floating round in the module from previous RM tinkering which I've removed.
The attached zip file hopefully fixes that, if not revert to the old one and let me know.
Regards,
Chuck
Zen Follower
Glad to have been of help - and the update you provided worked a treat so its all looking fab.
Now all I have to do is start working on the rates which is a mare but hey ho!
Really brilliant mod Chuck - well impressive.
Zen Follower
I'm going a bit loopy in the process but nearly have all the rates sorted and have finally moved onto Parcelforce and have got a bit confused with the options.
I have never dealt with parcelforce before so i'm a serious noob so can someone tell me what the difference is between Parcelforce 48 & Parcelforce UK 48.
Much appreciated
Brinley
Zen Follower
I feel like a spammer with all the questions I'm asking but this is the last one............. I hope.
On the checkout page I have the shipping estimator showing and I would like to get rid of the double brackets that show up in the options.
I have searched everywhere and come up blank and assume they relate to the delivery weight but even when this is turned off in admin the brackets still show.
I have tweaked the wording for Royal Mailspecial delivery but its essentially the same mod and here's what it shows
Royal Mail Special Delivery ( (Nextday - Tracked))
Cheers
Brinley
Totally Zenned
Hi Brinley,
Sorry about the delay in replying, the week has been devoured by locusts and #Realworld.
As noted in the 'update_notes' that I think I included with the release, the original Basic Mail ParcelForce module included only UK rates. With the 48b module I included it simply because I'd started it, and it may of use to someone, as it was the beginnings of my efforts to include ALL the Parcelforce zones.
It's very much E&OE standard, with VAT possibly missing in places and rate errors, but a bit of work would probably make it usable, and it may indeed be usable, as-is. I don't use Parcelforce at all, so it was an academic exercise at best.
All the modules, are I think covered by sheets in the Excel spreadsheet in the Misc folder, but the above may not be, I really don't remember.
On the rogue bracket side, which modules, and are you perhaps referring to the delivery times brackets, which are inserted in the code, rather than in the language text strings?
e.g. in rmairmail.php the code is as follows -
// Display delivery times?
if (constant('MODULE_SHIPPING_RMAIRMAIL_DISPLAY_TIME') == 'True') {
// Ships within 3 to 5 days
$shipping_method = $shipping_method . ' (';
$shipping_method = $shipping_method . ucfirst(MODULE_SHIPPING_RMAIRMAIL_DELIVERY_SHIPPING_TIME) . ')';
}
The ' (' and ')' above are the brackets being inserted, with the . being the PHP string concatenate/join.
If you've removed the 3-5 days and similar, only the brackets will show.
Some of the other modules like rmspecial are a bit more complicated, but a search for ')' will find all occurrences.
To stress again you do NOT need to insert the brackets in the language strings, they are inserted by the code in the modules themselves. (On the other hand, if you're getting them from the code, it's an 'undocumneted feature' :)
Hope that helps,
Chuck
Tell staff why this post should be reviewed.