AJAX Product Variant Custom Fields
<!--
AJAX Product Variant Custom Fields
-->
<!-- BEGIN: APVCF -->
<mvt:comment>Creates the functions and variables needed to access variant product information and custom product fields.</mvt:comment>
<mvt:item name="ry_toolbelt" param="do|g.module_library_db|g.result1|Runtime_Product_Load_Code( g.Product_Code, l.all_settings:master_product )" />
<mvt:item name="ry_toolbelt" param="do|g.module_library_db|g.result2|ProductList_Load_Variant( l.all_settings:master_product:id, g.Variant_ID, l.all_settings:part_products )" />
<mvt:item name="ry_toolbelt" param="custom_products|l.all_settings:customfields|l.all_settings:part_products[1]:id" />
<mvt:comment>Pull the "preOrder" custom product field value from variant product, encode the value and then format the value to jQuery JSON format.</mvt:comment>
<mvt:item name="ry_toolbelt" param="do|g.module_json|g.temp|JSON_Encode( l.all_settings:customfields:value:preOrder )" />
<mvt:item name="ry_toolbelt" param="assign|l.all_settings:customfields:value_encoded:preOrder|glosub( g.temp, '\x', '\u00' )" />
{"preOrder": "&mvt:customfields:value_encoded:preOrder;"}
<!-- END: APVCF -->
<script>
// Add this script to the product page
MivaEvents.SubscribeToEvent('variant_changed', function (product_data) {
var url = document.URL.split('.com/')[0] + '.com/mm5/merchant.mvc?Screen=APVCF&Product_Code=' + encodeURIComponent(product_data.product_code) + '&Variant_ID=' + encodeURIComponent(product_data.variant_id);
$.getJSON(url, function (data) {
if (data.preOrder) {
$('.product-order-message').text(data.preOrder);
$('.product-order-message-input').val(product_data.product_code + '|Note|Note ' + data.preOrder);
$('.product-order-message-row').slideDown();
}
else {
$('.product-order-message').text('');
$('.product-order-message-input').val('');
$('.product-order-message-row').slideUp();
}
});
});
</script>