Multiple Ship From Zips

jitpaljitpal Member
in Help edited April 2012
Is there an easy way or through some javascript trickery to assign a separate shipping zip code either by category or by product? For example product A ships from 33164 and product B ships from 94177. If we use our stores zip, it's going to calculate shipping costs from New York and not from Miami or San Francisco. That results in inaccurate shipping quotes because if someone in NY orders Product B from San Francisco, it's going to calculate the rate from NY and not San Francisco. So any ideas? Thanks
  • lukeluke FoxyCart Team
    Hey jitpal. I can't guarantee this will work, but you might try adjusting the FC.checkout.config.storeDetails.postalCode and FC.checkout.config.storeDetails.stateCode via JavaScript on page load after inspecting the fc_json to see if product A or product B is in the cart.

    Curious, what do you do if both A and B are in the cart? Do you charge the customer for two different shipments or do you eat the cost? We're working on improvements to shipping calculations which should allow for multiple distribution centers like this.
  • Hi Luke, I'll check that out. We are actually going to be redoing our site completely and this was one of the things we wanted to incorporate.

    We currently offer free ground shipping as a method of getting around this. Additionally, orders for multiple items are very rare. We deal primarily in bulk quantity of a single product so where we really run into the issue is having to calculate air shipping. The price to overnight 2-3 boxes of 20-30lbs each is wildly different going from NY to CA compared to going from NY to TN as an example.

    Inaccurate quotes can be really brutal in our case. Charge less and it's hard to make up in the margin. Charge more and people are less likely to place orders. So currently we charge the standard FedEx calculated rates from NY and make up the difference with our excellent shipping discounts. The philosophy we currently have is that we may lose some orders but we would rather not have to deal with potentially losing money on orders because there wasn't enough margin.

    So to get back to your question, we don't often have to ship products from multiple locations in the same order. Free ground shipping covers this up on most orders that require multiple ship locations because that's obviously the most popular shipping method and the cost is built in. For air, we would charge for both. We tell our clients we have multiple production facilities and because everything is bulk, it's not like it would ship in the same box. Plus, since everything we do is custom, it likely wouldn't ship on the same day either.

    I know there is a suggestions forum but I thought I would add it here for discussion purposes. It would be great if the shipping update could calculate multiple boxes by saying that X amount fit in a box that's Y lbs. Probably not important for everyone but would at the least be very cool for us.
  • sparkwebsparkweb Member, Integration Developer, FoxyShop, Order Desk
    I think Luke is right, you could put your products in two shipping categories. Leave NY in as the more expensive, but if the order was COMPLETELY in the CA shipping category, then use javascript to update the shipping location values. If you look at your checkout source, do a search for "FC.checkout.config.storeDetails" and you'll see that this data can be easily manipulated on the page.

    Use this as a starting point:
  • Hmm, I think that makes sense. Would something like this work where I pass the FOB point zip and state over to the cart with the product data? We would be talking about 20-30 different FOB points in my situation. My CMS already keeps track of which location (by name) every product is shipping from so adding the zip and state would be trivial. Just the issue of passing that with product data (using the form input) and then having the checkout page pick that up via JS and assigning that.
  • sparkwebsparkweb Member, Integration Developer, FoxyShop, Order Desk
    why don't you pass it in as a session variable:
    <input type="hidden" name="h:fob_zip" value="55555" />

    then you could just grab it from the json that way. You might have to pass in the state too, I'm not sure whether the state and zip get passed to the shipping carrier or whether it's just the zip.
Sign In or Register to comment.