19 replies [Last post]
philsward's picture
Offline
Joined: 09/15/2007
Juice: 137
Was this information Helpful?

Since this is a (much) needed item for the core of Ubercart, and no-one has been willing to step up to the plate to take the challenge, I would like to get some bids on what it would take to create a module that will combine the shipping costs of any type of shipping method applied to a product. As it stands, I am shipping through UPS and a freight company called Estes Express. Some products ship UPS, others ship Estes. I am yet to figure out a way to combine the UPS and Estes shipping rates into one single shipping calculation. I would personally like to see this module open sourced for the community and extensible enough that it will combine the shipping for ANY shipping method: UPS, FedEx, freight, Flat Rate, Weight Quote etc. yet not break the site if future core upgrades are applied... (meaning I don't wan't to have to edit any of the core files to make things work)

If you need more info on how our setup works, let me know.

ronnoc's picture
Offline
Joined: 04/13/2011
Juice: 19
Similar issue here

This is exactly (or reasonably similar) to what I need as well. We sell auto parts that range in size from a few ounces (like stickers or emblems) to engine parts that weigh 25+ pounds. So what I have now is flatrate shipping for anything I've deemed "non-UPS"; i.e. smaller items, and also integrated UPS shipping quotes for heavier items. As with so many other people here, my issue is that everything works great if products of the same shipping method are chosen, but can not obtain a shipping total when products with multiple shipping methods are chosen. All I want is for Ubercart to combine all shipping charges together...

This is for domestic shipping, then there would be another set of rules for international.

philsward's picture
Offline
Joined: 09/15/2007
Juice: 137
Anybody up for the challenge?

Is anyone out there capable of taking this on? I was hoping to have it done by the beginning of May. One person stepped up to the plate and offered to complete the task, but like "most" programmers I've dealt with, he magically disappeared and I can't get ahold of him...

Payment can be either Paypal or mailed check.

For information on the company and legitimacy of the company requesting the services (which I am a part of), please see the M&M Distribution company page.

j0rd's picture
Offline
Getting busy with the Ubercode.
Joined: 07/16/2008
Juice: 453
Hello Phil. I'm still not

Hello Phil.

I'm still not 100% sure I want to take on this project, but I would like to clarify some of your points, so I have a further understand of what you require.

First of all, let me state that Ubercart was not built with the intention of providing this functionality, so implementing it will be difficult.

With that said, how does your store work? As you've mentioned certain products are not able to ship with UPS and instead need to be shipping with the Freight company. I assume, this is because of weight or size restrictions, correct?

I'm thinking of modifying the product node, so that a list of the acceptable shipping methods can be selected. By default, it will be set to "All", but you should be able to select: All, UPS, Freight or a combination of any of the options.

Should for what ever reason, the products in an order, include two products, which have mutually exclusive shipping methods, I will fetch quotes from each method & merge over their prices. The problem with this, is I would need to display every permutation of all the options returned, so that the user could select the ones they wanted. For your use case, this may not be required, but for others it would be an issue.

Permutations would include varying versions of UPS shipping, Ground, Air, 2-day express, 3-day express....

Additionally say there was this use case:

Product #1: Shipping = UPS + Freight
Product #2: Shipping = UPS
Product #3: Shipping = Freight

Performing all the permutations for this would be difficult as I would need to do Product #1, in both UPS & Freight shipments. To remove this additional complexity from the problem, I could weight the shipping methods and then if I have to decide, only choose the more desirable option.

Or perhaps, we could let the customer choose which shipping methods they would like to ship each product with when they have the option. That would work just as well, but would require more work on creating an interface for them to choose. It would also complicate their checkout process and perhaps you'd lose sales.

I just wanted to make your aware of the issues with trying to attempt something like this. Perhaps if you could find me examples of other online stores, which accomplish this well, I can take a look.

----

Additional options #2.

Simply break out the order and have the customer choose a shipping method for each individual product. This might cost more, as items will not be able to bundled together to save on shipping, but from the complexity standpoint of implementation, it might be the easiest way.

Someone else will need to dig through this to see if any acceptable solutions have been created, as I don't care enough to dedicate any more time.
http://drupal.org/project/issues/ubercart_marketplace?text=shipping&stat...

-----

PS #1.

Ubercart Marketplace may have solved this, as they wanted their sellers to be able to choose their own method of shipping their products. I'll cross post over there to see if they've implemented any solution.

Cheers,
Jordan

Travis's picture
Offline
Joined: 09/06/2010
Juice: 8
Re: Combine Shipping, regardless of method

I've been hemming and hawing over this with my own site for almost a year now. I really really really want to migrate off of Zen Cart to a Drupal solution such as Ubercart, but so far Zen Cart is the only ecommerce app I've been able to find with a suitable module for handling this (Ceon Advanced Shipper Module: http://dev.ceon.net/web/zen-cart/advanced-shipper).

This isn't meant to be a plug for ZC or the module, I just wanted to throw my hat into the ring of people screaming for this functionality and show that it *is* possible and has been done well.

end user's picture
Offline
Joined: 01/11/2008
Juice: 1738
Re: Re: Combine Shipping, regardless of method

I just stumbled onto this issue when testing shipping.

I have two items

One is oversized and I'd give it flat-rate of $100
Second is a standard shippable item which would be shipped with Canada post

Unfortunately at checkout time the quotes are returned not together but as separate options so you cant have one like this

Current method
Order total preview:
Subtotal: $42.98
Canada Post Regular (1 package): $7.00
Subtotal excluding taxes: $49.98
HST 12% (BC): $6.00
Order total: $55.98

but should be
Order total preview:
Subtotal: $42.98
Canada Post Regular (1 package): $7.00
Flat-rate (1 package): $100.00
Subtotal excluding taxes: $149.98
HST 12% (BC): $12.00
Order total: $161.98

I think this is a basic necessity for a lot of stores and as mentioned Zencart has this but I really don't want to have to go back to Zencart and the nightmares I had with the template system.

I'm willing to donate some money to have this done.

end user's picture
Offline
Joined: 01/11/2008
Juice: 1738
Re: Re: Re: Combine Shipping, regardless of method

Would it be easier to add the flat rate price to the product price in the cart and then make the product non shippable? This way the product price+flat rate still gets taxed properly but they don't get added to the selected shipping method at checkout.

Ok this is how I kind of got it, might work for me for now as I'll only have 5 or so super sized products. .

I created an attribute and called it shipping. Gave it an option of say $100 and made the product price the actual product price. Then I set the attribute to Display price adjustment. I then set the product to non shippable so at checkout its not included in shipping but the product cost is still added to the total and taxed. Only problem is I can't figure out how to set the option to be selected by default.

I've attached a screen shot of what it looks like

AttachmentSize
Screenshot-8.png 65.11 KB
philsward's picture
Offline
Joined: 09/15/2007
Juice: 137
Pressing Forward

End User, I had someone contact me today on this request and hopefully it will go somewhere. I am going to strive to get a module going that will encompass the community as a whole, but ultimately my use case scenario is going to come first... you mentioned helping monitarily and if things pan out, I believe that with enough sponsoring, we can get something working that will be usable in most cases.

If anyone else is willing to help sponsor this, let me know so I have a better idea on the budget we have to work with to build a more robust community friendly module.

end user's picture
Offline
Joined: 01/11/2008
Juice: 1738
Re: Pressing Forward

I'll check on the weekend but I might have someone who can also maybe attempt this. The company he works for does lots of Drupal development and he said he could do custom coding BUT will see when I ask him. He is also my business partners cousin so maybe we can get a better price.

Yes I'm am most defiantly willing to chip in as combining shipping methods will be a necessity for me in the next three months and I'm wanting to stick to UC as Drupal community features will be a big part of my commerce site.

end user's picture
Offline
Joined: 01/11/2008
Juice: 1738
Re: Re: Pressing Forward

Also could one not use the Custom price module http://drupal.org/project/uc_custom_price and a CCK field to add the shipping cost to the product price? This gave me the idea http://www.ubercart.org/project/Custom%20Price#comment-39028

philsward's picture
Offline
Joined: 09/15/2007
Juice: 137
my situation

I've toyed with the idea of doing a flat rate across the board, but with our freight items, the shipping price varies so much depending on location and current fuel prices, that it would create a maintenance nightmare to constantly readjust the flat rate shipping prices. To be honest, I hate workarounds unless there is absolutely no other option. I have at this point, three sites where I need a combined shipping quote. If I only had one site to maintain, I would be more open to maintaining the price variances.

On a side note, I'm glad you are making the switch over to Drupal Smiling I think you will find that it has its own set of quarks, but overall, has a solid community following and is very powerful once you get the hang of it!

end user's picture
Offline
Joined: 01/11/2008
Juice: 1738
Re: my situation

Actually I've been using Drupal for a few years and built a few UC based sites. I did like Zencart once it was finished but getting to the final product was a pain. The site I'm currently building is my own and not for someone else so I don't mind doing something half ass if its not time consuming.

I'll only have max 20 products that will need flat shipping so thats not too bad so I think for now I'm just gonna go with second product class, CCK fields for displaying the Sell Price and shipping fee and then use the product sell price for the real Cost+Shipping amount. Since I don't use the UC catalog but Views I can then then display the CCK Cost + CCK Shipping fee side by side above the real UC product Sell Price to let the customer know the full prince. Then all I have to do is set the price field to not show if it contains a 0 (for the regular products) so the CCK combos will only show in the grid for the product class I created. Oh and I'll have to set the product to non shippable.

philsward's picture
Offline
Joined: 09/15/2007
Juice: 137
stock

Yeah, I like to keep my sites as stock as I can for less hastle on upgrades... the main site I need the combined shipping for, has close to 200 products and I expect future sites to have just as many or more... if I was only planning on one site, I would be more open to workarounds, but I'm looking more for a long term, permanent solution. :-\

end user's picture
Offline
Joined: 01/11/2008
Juice: 1738
Re: stock

Well that sort of worked. I was able to use uc custom prince and a CCK text field to add $100 to the prince of the product but if I set the product to not shippable and it was the only product in the cart then I wouldn't get the shipping pane and shipping/tax calculations and just got the standard shipping error

There were problems getting a shipping quote. Please verify the delivery and product information and try again.
If this does not resolve the issue, please call in to complete your order.

This was the custom prince setup.

$node = node_load($item->nid);
$item->price = $item->price+check_plain($node->field_flat_rate_shipping[0]['value']);

I'm too tired today do mess with this, I'll see if messing around with conditional actions will work.

end user's picture
Offline
Joined: 01/11/2008
Juice: 1738
Re: Re: stock

Ok I think I got it working. IF taxes are calculated properly this will work for me for the time being

I create a new product class. I called it Product Flat Rate Shipping Included, you can call it anything.

Created a text CCK field. (field_flat_rate_shipping)

Deselected Product and its derivatives are shippable.

Set up Flat Rate shipping at $0 and called it Shipping Include in product price and activated Flat Rate Shipping.

Installed the UC Custom Price Module

Entered this into the Custom Prince field

$node = node_load($item->nid);
$item->price = $item->price+check_plain($node->field_flat_rate_shipping[0]['value']);

The above price modification shows the products regular price in the Catalog/Views but ads the full amount in the cart.

So the shipping quotes are set up as follows

Flat Rate is set to $0
Conditions: Condition: Order has a product of a particular class > Negate this condition. Checked > Product Class = Product (UC default class)
Condition: Execute custom PHP code I got the code below here http://drupal.org/node/1071516

$bool = FALSE;
foreach($order->products as $prod){
    if($prod->data['shippable'] == FALSE){
        $bool = TRUE;
    }
}
return $bool;

Canada Post Conditions were left alone

So went into taxes (this was my last issue) and added the new Product Class as taxable.

So the way it works is

If the product if a Flat Rate Product (The One I created) then because I unchecked ( Product and its derivatives are shippable) Canada post shipping doesn't display and only the Flat Rate quote is listed (Shipping included in product price.: $0.00)

If a Flat Rate and a Regular Product is in the cart then the Flat Rate shipping is not listed at all and only Canada post is listed. Because the product is set to Not Shippable it doesn't get quoted by Canada Post and only taxed.

Here are some screen shots

AttachmentSize
shipping_01.png 57.64 KB
shipping-2.png 67.48 KB
shipping-03.png 56.04 KB
Screenshot-10.png 58.07 KB
philsward's picture
Offline
Joined: 09/15/2007
Juice: 137
Update

As an update, I found someone to create a module to combine the shipping for pretty much any shipping method. After a few more bugs get worked out, I expect to have a stable 1.0 release for the community within the next month.

end user's picture
Offline
Joined: 01/11/2008
Juice: 1738
Re: Update

Even though I don't need it atm but in the next few months I could contribute some $ to the module if it can be D6 compatible as I won't be switching to D7 for at least 6-8 months.

ronnoc's picture
Offline
Joined: 04/13/2011
Juice: 19
philsward wrote: As an
philsward wrote:

As an update, I found someone to create a module to combine the shipping for pretty much any shipping method. After a few more bugs get worked out, I expect to have a stable 1.0 release for the community within the next month.

Awesome news - keep us posted!

joshpodcast's picture
Offline
Joined: 08/27/2011
Juice: 19
Re: Combine Shipping, regardless of method

Any update on this mate? Smiling

philsward's picture
Offline
Joined: 09/15/2007
Juice: 137
Combine Shipping Module Complete

Good news!

I have posted a working version of the module out in the contrib area (version 1.0):

http://www.ubercart.org/project/uc_combine_shipping

I've been using the module on one of my sites for about a month now and it is working awesome!