Customfields at Checkout
<mvt:comment>
Check to see if the Fields have been written to the order
**** PLEASE NOTE ***
If you are using `Read_Order` and only pass through 1 Custom field, it will still have a structure, and not return the value to your variable.
Example:
<mvt:item name="customfields" param="Read_Order( l.settings:order:id, 'customfield_1', l.settings:order:customfields )" />
The value of `customfield_1` will be stored in `l.settings:order:customfields:customfield_1`
</mvt:comment>
<mvt:item name="customfields" param="Read_Order( l.settings:order:id, 'customfield_1,customfield_2', l.settings:order:customfields )" />
<mvt:if expr="NOT l.settings:order:customfields:customfield_1 AND NOT l.settings:order:customfields:customfield_2">
<mvt:item name="customfields" param="Read_Basket( 'custom_order_fields', l.settings:order:customfields)" />
</mvt:if>
<mvt:if expr="l.settings:order:customfields:customfield_1">
<div>Customfield 1: &mvte:global:custom_order_fields:customfield_1;</div>
</mvt:if>
<mvt:if expr="l.settings:order:customfields:customfield_2">
<div>Customfield 2: &mvte:global:custom_order_fields:customfield_2;</div>
</mvt:if>
<mvt:comment>
On INVC, you will want to save the custom order fields to their perspective custom order field.
</mvt:comment>
<mvt:if expr="NOT ( g.Module_Function EQ 'TokenList_ViewAll_Page')">
<mvt:item name="customfields" param="Read_Basket( 'custom_order_fields', g.custom_order_fields )" />
<mvt:item name="customfields" param="Write_Order( l.settings:order:id, 'customfield_1', g.custom_order_fields:customfield_1 )" />
<mvt:item name="customfields" param="Write_Order( l.settings:order:id, 'customfield_2', g.custom_order_fields:customfield_2 )" />
</mvt:if>
<mvt:comment>
On OSEL you will want to pass through a hidden input with the name `Prev_Screen` and set the value to OSEL.
</mvt:comment>
<mvt:if expr="g.Prev_Screen EQ 'OSEL'">
<mvt:item name="customfields" param="Read_Basket( 'custom_order_fields', g.custom_order_fields )" />
<mvt:else>
<mvt:item name="customfields" param="Write_Basket( 'custom_order_fields', g.custom_order_fields )" />
</mvt:if>
<mvt:comment>
To display your Custom Order Fields, you can do the following:
</mvt:comment>
<mvt:if expr="g.custom_order_fields:customfield_1">
<div>Customfield 1: &mvte:global:custom_order_fields:customfield_1;</div>
</mvt:if>
<mvt:if expr="g.custom_order_fields:customfield_2">
<div>Customfield 2: &mvte:global:custom_order_fields:customfield_2;</div>
</mvt:if>
<mvt:comment>
If OCST was submitted, but the customer got errors, Write to the basket to save their data. Only add this is the custom order fields are displayed on OCST.
</mvt:comment>
<mvt:if expr="'ORDR' CIN g.Action">
<mvt:item name="customfields" param="Write_Basket( 'custom_order_fields', g.custom_order_fields )" />
</mvt:if>
<mvt:item name="customfields" param="Read_Basket( 'custom_order_fields', g.custom_order_fields )" />
<mvt:comment>
Here is where you can display all your fields to customer
The following are some examples for each "type"
</mvt:comment>
<mvt:comment>
TEXT & TEXTAREA
</mvt:comment>
<input type="text" name="custom_order_fields:customfield_1" value="&mvte:global:custom_order_fields:customfield_1;" />
<textarea name="custom_order_fields:customfield_2">&mvte:global:custom_order_fields:customfield_2;</textarea>
<mvt:comment>
SELECT, RADIO & CHECKBOX
</mvt:comment>
<mvt:assign name="l.void" value="miva_splitstring( 'Option 1, Option 2, Option 3', ',', l.settings:customfield3_options, 'trim' )" />
<select name="custom_order_fields:customfield_3">
<option value="">Select One</option>
<mvt:foreach iterator="option" array="customfield3_options">
<mvt:do file="g.Module_Library_Utilities" name="l.success" value="DrawOption( l.settings:option, g.custom_order_fields:customfield_3, l.settings:option )" />
</mvt:foreach>
</select>
<mvt:assign name="l.void" value="miva_splitstring( 'Option 1, Option 2, Option 3', ',', l.settings:customfield4_options, 'trim' )" />
<mvt:foreach iterator="option" array="customfield4_options">
<mvt:do file="g.Module_Library_Utilities" name="l.success" value="DrawRadio_With_Label( 'custom_order_fields:customfield_4', l.settings:option, g.custom_order_fields:customfield_4, l.settings:option )" />
</mvt:foreach>
<mvt:do file="g.Module_Library_Utilities" name="l.success" value="DrawCheckbox( g.custom_order_fields:customfield_5, 'custom_order_fields:customfield_5', 1, 'My Customfield 5' )" />