Trying to wrap my head around how CS-Cart calculates shipping costs

Shipping services calculate shipping costs based upon the following 4 variables:[list=1]

[]weight of the shipment

]volume of the shipment

[]number of boxes

]additional services (insurance, COD)


This information is sent to the shipping service by XML, so the shipping service can return the correct rates.

Shipping cost calculation by all major shipping services is based upon weight and dimensional weight. They charge whatever cost is highest. Volumetric weight is a combination of volume and weight. I ship a lot of light products, so the shipping company mostly uses the volumetric weight for cost calculation.

In my country(NL) its not legal to make profit on shipping costs, so the calculation needs to be correct.

How does CS-Cart calculate these things?[list=1]

[]does CS-Cart add up the weights of all products in the order, or is an additional weight for packaging added? If so, where can we define this?

]how does cs-cart calculate the total volume of the shipment? Lets say a customer orders 10 products, all with different sizes.

[]Does cs-cart calculate if the total order size exceeds a box(es)?

If so, then how does cs-cart calculate this?

Its possible to set items in a box and box dimensions at product level, but if you set that then cs-cart seems to ad new boxes for each product, instead of combining the volumes into one box. If the customer orders 10 different products that fit into 1 box, then cs-carts calculates shipping costs for 10 boxes. Is there a way to solve this?

Does cs-cart really support dimensional weight? This was a popular feature request which was added. (247 votes) But it seems that it does not really work unless you have only 1 product in your store. Or is there a way to make it work?

]How can additional services (like insurance, COD) be defined and included in the cost calculation?


To my knowledge, CS-Cart doesn’t support Dimensional Weight at all, and there is no work-around for it.

There is no allowance for the weight of packaging. The cart adds up the weight of the products alone. I suppose you could modify the script to add some average packaging weight as a starting value. The only time this impacted me was if the customer purchased products that weigh up to 12oz, and purchase First Class shipping. First Class cuts off at 13oz and with packaging, the order may end up weighing over 13oz and need to be shipped via Priority. My solution for this was to restrict the weight limit on First Class to 11.2oz (.07lbs). Tweaking the weights of the products can be detrimental when the customer has purchased several products that are each including additional weight for the packaging - increasing the cost of shipping needlessly.

I’ve never attempted to use the Product’s Shipping Properties to define the number of “items in a box”. I’m not even sure when that would be useful. :) Why are they defining the dimensions for each box if dimensions aren’t used in shipping calculations? Is that information just for the shipping department? I assume that the values are good for products that are always shipping in their own separate containers, and I assume that the weight of each box is calculated separately, not combined, which would defeat the purpose.

Using Real Time shipping calculations, Additional Service for USPS (called Extra Service in CS-Cart) can be added to a shipping method on the Configure tab, but a customer cannot cherry pick the extra service. An administrator has to create a unique Shipping Method for each of the Extra Services, and the customer cannot combine them. The only way to really utilize the Extra Services is to make a business decision. For example, ALL Priority Mail shipments will include insurance, and/or signature confirmation, etc.

I’d be happy if I could just restrict a PRODUCT to a particular shipping method. For example, a product that ONLY ships via UPS.

I look forward to hearing from others on the subject of dimensional weight.

Edit any product. Then click on the shipping properties tab (I don't think the tab shows if you are trying to add a new product, you have to first add it). Add dimensions to this box like 9, 6, 12. Minimum items in the box should almost always be 0. And maximum I put was 5. If someone adds 6 items to the cart, it would put 5 in one box and 1 in another. Shipping would get charged as two packages.

If someone orders two items each with a minimum of 0 items per box and 5 items for the max, it would get shipped in two separate packages, which is stupid. I'm trying to modify the relevant code. The relevant function is fn_get_products_packages in /core/fn.cart.php . Insurance, COD, I'm not sure about. Sounds like the code has to be modified for this to work out.

I think myself like any cart the products you sell and the post services you use have to fit in with the product. It's impossible to provide a system that suits all.

I think if you can't/don't want to use live services then the best you can do is fudge something that doesn't create work for the admins of the inventory. I average out packing and add a set price to every package. I don't use live service simply because for most of my product Royal Mail works out cheaper.

It would be nice to have a tare weight to set.

[quote name='kickoff3pm' timestamp='1367524950' post='161176']

It's impossible to provide a system that suits all.


That's true. But, all the major shippers changed their method to include dimensional weight about 5 years ago… CS-Cart still has no method for calculating dimensional weight overrides for products. There is the illusion of shipping criteria for products, but it's all just really one weight factor for each product (and whether or not you need to put the product into it's own box - which is so close to being a dimensional weight value for the product - but not!)

I find it quite bizarre that CS-Cart still does not support dimensional weight, while this has been a very popular request with hundreds of votes in uservoice which has even been marked as implemented.


Can I possibly just gauge,

Am I not the only one who

can only set weight based shipping correctly for their localization (UK)

Trying to add even a basic flat rate international option is not happening.

Wild cards and such, correctly entered to my knowledge for the US.