0

I have a drop-down of variants of a product. For example t-shirts:

{% for purchasable in product.variants %} <option value="">Select</option> <option {% if purchasable.stock <= 0 and purchasable.unlimitedStock == false %}disabled {% endif %} value="{{ purchasable.purchasableId }}"> {{ purchasable.title }} &ndash; {{ purchasable.price|currency(cart.currency) }} </option> {% endfor %} 

As you can see I have "Select" as the default option, and it has no value. I can validate the form client side no problem, but I am curious if there is a way to designate that fields as required from the server-side? I can mark the field as required in the layout builder, but that is for the CP only I think.

If I do not choose an option, I get this error:

Craft\Exception Not a purchasable ID 

Which makes perfect sense since I am not passing it a valid purchasable element.

1 Answer 1

2

I can mark the field as required in the layout builder, but that is for the CP only I think.

Nope... marking the field as required makes it required globally (regardless of if it's coming from the control panel or the front-end).

1
  • Ok I've tested it, is there a friendly way to pass a null value to commerce? I'm getting caught in this when I pass nothing to commerce: throw new Exception(Craft::t('Not a purchasable ID')); Commented Jan 6, 2016 at 3:54

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.