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.

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).

  • 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')); – Damon Jan 6 '16 at 3:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.