Product weights are a best guess for what they will be when packaged. However, it is necessary to have precise package weight measurements in addition to dimensions when buying certain kinds of postage. Why are dimensions stored in the database and editable but weight isn't? Also, it feels a little strange that the package details are only editable on the shipping page and not the package page.
It's because it's easy to figure out a package's weight from its contents, but not its dimensions from the size of all the pieces. I am assuming that the package won't be adding significant weight, so maybe that's not always the case.
I'll take another look at the interfaces. I may have been thinking something funny about the shipping methods and the particular packaging details they have.
The items I sell are generally very small and light weight, so for the majority of my orders the weight of the box and packing material are comparable to the weight of the products.
To address this, one of the things I've done with the uc_fedex module is to add a "Weight Markup" field in the shipping quotes configuration. To compensate for the weight of packaging, the markup automatically increases the weight of the order by a set amount, by a percentage, or by a multiplicative factor; the calculation is done before the quote is requested so the returned quote reflects a rate based on the weight of the products PLUS the weight of the packaging.
That said, there is only so much you can do in the "shipping quotes" modules - you can only make your best guess of what the actual weight will be, and pad that weight a little high if you're worried about losing money on shipping. The actual weight as shipped is going to depend on all sorts of variables (e.g. humidity can change the weight of a box by a few grams, different loose fill materials have different weights, etc.), and you'll always run into edge cases where the quote was based on a weight of, say, 3.99 pounds but the actual weight was 4.01 pounds so you spent more for shipping than you collected from your customer (FedEx and UPS round up to the next pound when calculating costs).
For getting a shipping quote to charge the customer the product weights work great as long as we error a little on the high side for each item. The issue is more important when it comes time to actually buy the postage. We will be creating a module for integrating with Endicia and iABOL to buy/print postage and track packages. With 50-100 packages shipping out per day it's important that we don't overpay, even $0.50 extra per package adds up! For example some lighter books are cheaper to ship via USPS First Class instead of USPS Media Mail 1lb. Things as seemingly insignificant as a label and packing slip can make an once of a difference, increasing the cost of shipping.
Perhaps it's a rare use case but for the bookstore http://booksforthefuture.org they enter in over 1500 new products each week and do not have time to weigh each item. We pull weight and dimension information from amazon, but that is almost always user submitted and prone to error. Currently we scale each package that goes out. It would be nice to override the default calculated weight and store the actual package weight in the database. Endicia can then pull this precisely measured weight, buy, and print the postage label.
With Endicia, you're using the XML Interface for Dazzle to connect your shipping room PC to the web server/Ubercart database? Can't you then hook up a postage scale to your PC and let Endicia use the actual package weight while at the same time pulling the customer address info out of the database?
Yes, address information can be sent to dazzle using XML or to the Professional edition using ODBC. Weight can be entered in the application interface. This works as long as you are printing one label at a time on a PC with Dazzle installed. We are more interested in using the Label Web Server http://www.endicia.com/Developers/LabelServer/ to print the labels from the website. The uc_packages and uc_shipments tables have fields for everything else. Why not weight?
Or maybe I'm being silly?
OK, I see what you're saying. Yes, I agree, the weight should be stored somewhere. Although in principle it should be recoverable by looping over each order item in a shipment, in practice this is not sufficient if you do what I do and add a weight markup to the order, or if the weight of a product is changed. I'm of the opinion that "order" should be a real, first-class node that contains *all* the finalized information about the order - this is vital for other purposes like accounting, and very useful for things like you're proposing.
As an aside, I assumed you weren't using Endicia Label Server because of the licensing restrictions. They explicitly forbid you to release your source code to a non-licensee of the API, so any module you write can't be distributed and can only be for your private use, unless each and every one of your clients also signs the license and NDA and certifies their copy of the code with Endicia. (Part of the problem is modules are written in PHP; as an interpreted language it exists only as source, not as compiled code which you would be free to sell or install at a client location without all the trouble). I've talked to Endicia several times about this and tried to convince them that open source is a good thing, but they're too worried about revealing their "secret" XML API (which, incidentally, can be easily snooped by anyone running the code, whether they have the source or not, since the XML requests are sent over HTTP!). They're living with a false cover of security that doesn't protect them, but prevents widespread adoption of their product.
I ran across this post while looking for a way to set the weight of a package just prior to shipping.
Has there been any progress on implementing this feature?
Ideally we would like to be able to set the weight of a package, not the entire order (for the cases where an order requires more than one package for fulfillment).
Thanks in advance!




