tessguefen
3/18/2015 - 3:53 PM

Variants + on Switch

Variants + on Switch

<mvt:comment>Variant Codes</mvt:comment>
<mvt:item name="toolkit" param="variantarray|vcount|l.all_settings:product:code" />
<mvt:assign name="g.delimitedVariants" value="''" />
<mvt:assign name="g.vcounter" value="1" />
<div id="variant-list" style="display:none;">
<mvt:foreach iterator="variant" array="variants">
    <mvt:item name="toolkit" param="vproduct_find|productfound|l.all_settings:variant:variant_code|A" />
    <mvt:item name="customfields" param="Read_Product_Code( l.settings:key_product:code, 'casecount', l.settings:vcasecount )" />
	<mvt:item name="customfields" param="Read_Product_Code( l.settings:key_product:code, 'innerpack', l.settings:innerpack )" />
    <mvt:item name="customfields" param="Read_Product_Code( l.settings:key_product:code, 'stock', l.settings:stock) "/>
    <mvt:if expr="NOT ISNULL l.settings:stock">
			<mvt:item name="toolkit" param="set_time_zone|curTimeZone|-4" />
			<mvt:item name="toolkit" param="time_t_year|curYear|curTimeZone" />
			<mvt:item name="toolkit" param="time_t_month|curMonth|curTimeZone" />
			<mvt:item name="toolkit" param="time_t_dayofmonth|curDay|curTimeZone" />
			<mvt:item name="toolkit" param="time_t_hour|curHour|curTimeZone" />
			<mvt:item name="toolkit" param="time_t_minute|curMinute|curTimeZone" />
			<mvt:item name="toolkit" param="time_t_second|curSecond|curTimeZone" />
			<mvt:item name="toolkit" param="mktime_t|curUTC|curYear|curMonth|curDay|curHour|curMinute|curSecond|curTimeZone" />
			<mvt:item name="toolkit" param="newsubstring|stockMonth|l.all_settings:stock,1,2" /> 
			<mvt:item name="toolkit" param="newsubstring|stockDay|l.all_settings:stock,4,2" /> 
			<mvt:item name="toolkit" param="newsubstring|stockYear|l.all_settings:stock,7,4" /> 
			<mvt:item name="toolkit" param="mktime_t|stockUTC|stockYear|stockMonth|stockDay|curHour|curMinute|curSecond|curTimeZone" />
            <mvt:if expr="g.stockUTC LT g.curUTC">
                <mvt:assign name="l.settings:stock" value="''" />
            </mvt:if>
    <mvt:else>
        <mvt:assign name="l.settings:stock" value="''" />
    </mvt:if>
		<span id="variant-&mvt:variant:variant_id;" class="var-code-val" style="display:none;" data-code="&mvt:key_product:code;" data-case="&mvt:vcasecount;" data-inner="&mvt:innerpack;" data-stock="&mvt:stock;"></span>
		<mvt:if expr="g.vcounter EQ 1">
		    <mvt:assign name="g.delimitedVariants" value="l.settings:key_product:code" />
        <mvt:else>
            <mvt:assign name="g.delimitedVariants" value="g.delimitedVariants $ ', ' $ l.settings:key_product:code" />
		</mvt:if>
        <mvt:assign name="g.vcounter" value="g.vcounter + 1" />
</mvt:foreach>
// --- Variant Code Changes --- //
    function variantChanges() {
            var oldCode = $('.var-code').data('code');
                MivaEvents.SubscribeToEvent('variant_changed', function (product_data) {
                    var variantID = 'variant-' + product_data.variant_id,
                        newCode = $('#' + variantID).attr('data-code'),
                        caseCount = $('#' + variantID).attr('data-case'),
                        innerpack = $('#' + variantID).attr('data-inner'),
                        oldCode = $('.var-code').data('prod-code'),
                        stockmsg = $('#' + variantID).attr('data-stock');
                    $('.var-code').html(newCode);
                    $('#case-count').html(caseCount);
                    $('#inner-pack').html(innerpack);
                    if(stockmsg) {
                        $('.out-of-stock strong').html('Out of Stock until ' + stockmsg);
                    } else {
                        $('.out-of-stock strong').html(' ');
                    }
                });

            // --- On Change of Attributes -- //
            MivaEvents.SubscribeToEvent('variant_changed', function (product_data) {
                var variantID = 'variantd-' + product_data.variant_id;
                var newDescription = $('#' + variantID).html();
                //$('#product-description').html(newDescription);
            });
        }
        
        // ---- Variant Code Swap ---- //
        $('.option-code').on('change', function() {	
            variantChanges(); 
        });
        $('#swatches img').on('click', function() {
            variantChanges(); 
        });