[ic] Matrix or Simple Options, Require customer to choose?

Mike Heins mike at perusion.com
Thu Jan 8 17:39:57 EST 2004


Quoting Mike Heins (mike at perusion.com):
> Quoting John Wolgamot (john at wolgamot.com):
> > I have not posted in this list so I hope I use proper posting etiquette.
> > 
> > When there are simple or matrix options defined and when a customer
> > clicks the BuyNow button, is there a way to have interchange require and
> > notify a customer to choose an option before allowing them to continue?
> > 
> > Up to this point I'm simply making the default option
> > SELECT COLOR or SELECT SIZE etc. so that when the order comes through,
> > if the option in the order states SELECT SIZE then we know the customer
> > forgot to select this option and we have to call to find out what they
> > want.
> > 
> > I looked for a while in the lists however I had no luck locating a post
> > which addresses my question. I hope I didn't give searching too soon.
> 
> This is a valid concern. It would be nice if the [item-options ..] tag
> had an option to emit a blank setting for each; then all you would need
> to do for matrix is add to the form:
> 
> 	[set check_opt]
> 		mv_sku=mandatory
> 	[/set]
> 	<input type=hidden name=mv_form_profile value=check_opt>
> 
> For simple options, you could do:
> 
> 	[set check_opt]
> 	    [query
> 		list=1
> 		sql="select distinct o_group from options where sku='[item-co de]'"
> 	    ][sql-code]=mandatory
> 	[/set]
> 	<input type=hidden name=mv_form_profile value=check_opt>
> 
> Putting it together:
> 
>    [if-item-field option_type eq Matrix]
> 	[set check_opt]
> 		mv_sku=mandatory
> 	[/set]
> 	<input type=hidden name=mv_form_profile value=check_opt>
>    [/if-item-field]
> 
>    [if-item-field option_type eq Matrix]
> 	[set check_opt]
> 	    [query
> 		list=1
> 		sql="select distinct o_group from options where sku='[item-co de]'"
> 	    ][sql-code]=mandatory
> 	[/set]
> 	<input type=hidden name=mv_form_profile value=check_opt>
>    [/if-item-field]
> 
> A competent consultant could set up a conditional based on the value of
> the above options and make it work with the current code base.
> 
> This is a good enough point so that I will put it on my todo list
> to handle in the next release.

There are some defects to the code above, but I have gotten a changed
version of Options/Simple.pm with the following changes to the "mike"
flypage:

38c38,39
<   <FORM ACTION="[area order]" METHOD=POST>
---
>   <FORM ACTION="[area href="[item-code]"]" METHOD=POST>
>   <INPUT TYPE=hidden  NAME="mv_action"  VALUE="refresh">
114a116,138
> 
>    [error auto=1 show_var=0]
> 
>    [if-item-field option_type eq Matrix]
>         [set check_opt]
> 				&success=ord/basket
>                 mv_sku=mandatory Need to select an option.
>         [/set]
>         <input type=hidden name=mv_form_profile value=check_opt>
>    [/if-item-field]
> 
>    [if-item-field option_type eq Simple]
>         [seti check_opt]
> 			&success=ord/basket
>             [query
>                 list=1
>                 sql="select o_group,o_label from options where sku='[item-code]'"
>             ]mv_order_[sql-code]=mandatory Need to select [sql-param o_label]
> 			[/query]
>         [/seti]
>         <input type=hidden name=mv_form_profile value=check_opt>
>    [/if-item-field]
> 
116c140
< 			[item-options td=1 label=1 bold=1 price=1]
---
> 			[item-options td=1 label=1 bold=1 price=1 blank_label="--select--"]
157c181
< 	    <input type="submit" value="[L]BUY NOW[/L]" class=button3 style="background-color: #DDDDBB">
---
> 	    <input type="submit" value="[L]BUY NOW[/L]" class=button3>

The code is in CVS now. Note that what was added is the blank-label="--select--",
which automatically puts a blank value with "--select--" as the label in
all of the options widgets.

With the changes above to the flypage, this should do what you need.

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295      <mike at perusion.com>

Some people have twenty years of experience, some people have
one year of experience twenty times over. -- Anonymous


More information about the interchange-users mailing list