installation instead of shipping

adenwattsadenwatts Member
in Help edited June 2008
We are a home security company that installs our product instead of shipping it.

We would like to have an "installation address" that works like the "shipping address" option on the checkout page with a checkbox below the billing information that says, "Use a different intsallation address."

We would prefer if we didn't have Shipping & Handling in the Delivery & Subtotal section.

I know a little html and css; but, I do not know any javascript, so I probably wouldn't be able to hack it myself (but I can copy and paste).

The reason I'm not just using custom fields is because we don't want the customer to have to fill out the installation address if it's the same as the billing address.

Thanks,

Aden Watts
Comments
  • lukeluke FoxyCart Team
    It sounds like you'll have to use some javascript functionality along with custom fields to pull that off. The shipping address stuff doesn't show up if you don't have shippable products or services which it sounds like you don't. Do you have a developer you could work with to implement this for you? If not, we can make some recommendations.
  • Well, I was thinking that that would probably be your answer. I guess it's time to learn some javascript.
  • brettbrett FoxyCart Team
    It'd probably be easiest to just use the "Shipping Address" and change the verbage. The trick is that that doesn't show up if you don't have shippable products, so you could conceivably get around this by making "Free Ground Shipping" or "Customer Pickup" your only shipping method. Not idea, and potentially even more confusing for customers, but that could be hidden (via CSS... if it's preselected since it'd be the only option, which I think is the case but I'm not sure offhand) so the customer doesn't see it. (It'd show up in the receipt, depending on how you have them set up.)

    But that'd probably be the easiest.

    It'd require a little bit of javascript so let us know if you need help. www.visualjquery.com is a brilliant site though, and the Firebug javascript console makes way faster javascript work. We should probably do a screencast on that.
  • I was thinking about possibly using the category "shipped using a flat rate fee" and setting the flat rate amount and handling amount to zero.

    Then I was thinking that I could use javascript to change the checkout wording from "Shipping Address" to "Installation Address" (as I'm learning in another discussion: http://forum.foxycart.com/comments.php?DiscussionID=448).

    And then, I could use CSS to hide the "Delivery & Subtotal" section. But, how would hiding the "Delivery & Subtotal" section with CSS affect the receipt and email?
  • adenwattsadenwatts Member
    edited June 2008
    Ideally I would use the "no shipping" category with custom fields for an installation address section on the checkout page.

    You already wrote the javascript that makes the "Use a different shipping address" checkbox on the checkout page work. Is there any way I could copy and paste that javascript and just change a few things to make it work with my custom fields?

    I don't know javascript yet myself, but it seems like you already did I what I want to do, just with a little different wording: "shipping" instead of "installation."
  • brettbrett FoxyCart Team
    > Ideally I would use the "no shipping" category with custom fields for an installation address section on the checkout page.

    Yeah, that does make the most sense.

    As far as making a checkbox to show/hide it, it'd be fairly simple... I've been thinking about doing some jQuery tutorials or something on our blog for stuff like this... How about this. You add the custom fields like you want, and I'll help you set up a checkbox to show/hide them? We can document the process and then put it on the wiki for others to learn from?

    Let me know.
  • That sounds great. You guys are awesome. I'll let you know when I get the custom fields added.
  • Okay. I've added the Installation Address Custom Fields. You can view my checkout template here: http://www.aegisprotection.com/foxycart-checkout.html

    At some point, I would like to add the "auto-complete" to my Installation Address State field; but, for now it is not a big deal because all our customers are in Arizona; so, I'm just pre-populating the State field for them with Arizona; but, when we move into other states I would like to stop pre-populating Arizona and add the auto-complete...I'll ask for help when the time comes.
  • brettbrett FoxyCart Team
    Ok cool. Go ahead and add a checkbox and then we can look at applying some javascript to show/hide it.
  • The checkbox has been added.
  • I just wanted to bump this discussion back to the top of the forum to see if we could get this javascript taken care. I really appreciate all of your help (we're looking to go live in 2-3 weeks).

    Thanks again.
  • lukeluke FoxyCart Team
    edited July 2008
    Hey Aden. Thanks for bumping. We don't normally provide this level of integration support since it's really a JavaScript/CSS/JQuery question as opposed to a FoxyCart question...

    ...but we like you, so here you go. :) This should work, just put it inside your on page load section. You could also use some CSS to hide those fields by default instead of hiding them on page load.
    $j("#custom_installation_fields").hide();
    $j("#installation-address").click(function() {
        if (this.checked) {
            $j("#custom_installation_fields").show();
        } else {
            $j("#custom_installation_fields").hide();    
        }
    });
    
  • brettbrett FoxyCart Team
    Sorry I missed responding to this one earlier. Thanks Luke for taking care of it.

    Also, with jQuery, you can do $j(this).is(':checked')

    The :checked pseudoclass can be useful at times.

    Aden, if you still need additional assistance let us know.
  • brettbrett FoxyCart Team
    Update: If you do the is(':checked'), you'd still need the onclick event. Like:
    $j('#myDiv').click(function(){
    if ($j(this).is(':checked')) {
    	// do something
    } else {
    	// do something else
    }
    });
    
    Luke's code should work fine though. I just updated in case anybody was curious.
  • Thank you very much!
Sign In or Register to comment.