Miva Merchant 9.13.00 Template Changes
The following is a list of all changes from Miva Merchant 9.12.02 to Miva Merchant 9.13.00 with regards to the template code/css files. Please note, some template code changed drastically and as such, only the new template code has been included. In these cases, if you have not made any custom changes to your template, you should be able to just put the template into point and click mode, set the preferences to your liking, and click update to generate the new template code. If you have made alterations specific to your store, you should compare the differences between your template code and the provided template code in the "New" section and make the changes based on that.

cssui.css

Original File
New File
.FPWD .fpwd-input,
.CPWD .cpwd-input{
	width:150px;
	margin:2px 3px;
}

.CEML .change-buttons,
.CPWD .change-buttons{
	text-align:right;
}

.CPWD .change-password-section{
	width:300px;
	margin:15px auto 5px;
	padding:10px;
	border:1px solid #CCC;
}

.CPWD label{
	width:110px;
	float:left;
	clear:both;
	text-align:right;
	padding:3px 5px;
}
						
.FPWD .fpwd-input,
.CPWD .cpwd-input,
.CSTR .cstr-input{
	width:150px;
	margin:2px 3px;
}

.CEML .change-buttons,
.CPWD .change-buttons,
.CSTR .change-buttons{
	text-align:right;
}

.CPWD .change-password-section,
.CSTR .change-password-section{
	width:300px;
	margin:15px auto 5px;
	padding:10px;
	border:1px solid #CCC;
}

.CPWD label,
.CSTR label{
	width:110px;
	float:left;
	clear:both;
	text-align:right;
	padding:3px 5px;
}
						

Pages PATR / PROD: Attribute Machine: Head Template

Original File
New File
<script>
AttributeMachine.prototype.Generate_Discount = function( discount )
{
	var discount_div;

	discount_div			= document.createElement( 'div' );
	discount_div.innerHTML	= discount.descrip + ': ' + discount.formatted_discount;

	return discount_div;
}

AttributeMachine.prototype.Generate_Swatch = function( product_code, attribute, option )
{
	var swatch	= document.createElement( 'li' );
	var span	= document.createElement( 'span' ); // to vertically center the swatch images
	var img		= document.createElement( 'img' );
	img.src		= option.image;

	swatch.appendChild( span );
	swatch.appendChild( img );

	return swatch;
}
</script>
						
AttributeMachine.prototype.Generate_Discount = function( discount )
{
	var discount_div;

	discount_div		= document.createElement( 'div' );
	discount_div.innerHTML	= discount.descrip + ': ' + discount.formatted_discount;

	return discount_div;
}

AttributeMachine.prototype.Generate_Swatch = function( product_code, attribute, option )
{
	var swatch	= document.createElement( 'li' );
	var span	= document.createElement( 'span' ); // to vertically center the swatch images
	var img		= document.createElement( 'img' );
	img.src		= option.image;

	swatch.appendChild( span );
	swatch.appendChild( img );

	return swatch;
}
						

Page PROD: Product Display Layout Image Machine

Original File
New File
<script>
ImageMachine.prototype.ImageMachine_Generate_Thumbnail = function( thumbnail_image, main_image, closeup_image, type_code )
{
	var thumbnail, span, img;

	thumbnail	= document.createElement( 'li' );
	span		= document.createElement( 'span' ); // to vertically center the thumbnail images

	thumbnail.appendChild( span );

	if ( typeof( thumbnail_image ) == 'string' && thumbnail_image.length > 0 )
	{
		img		= document.createElement( 'img' );
		img.src	= thumbnail_image;
		
		thumbnail.appendChild( img );
	}

	return thumbnail;
}
</script>
						
ImageMachine.prototype.ImageMachine_Generate_Thumbnail = function( thumbnail_image, main_image, closeup_image, type_code )
{
	var thumbnail, span, img;

	thumbnail	= document.createElement( 'li' );
	span		= document.createElement( 'span' ); // to vertically center the thumbnail images

	thumbnail.appendChild( span );

	if ( typeof( thumbnail_image ) == 'string' && thumbnail_image.length > 0 )
	{
		img		= document.createElement( 'img' );
		img.src	= thumbnail_image;
		
		thumbnail.appendChild( img );
	}

	return thumbnail;
}
						

Page CSTR

Original File
New File
						
<mvt:item name="html_profile" />
<head>
	<mvt:if expr="NOT ISNULL l.settings:page:title">
		<title>&mvt:page:title;</title>
	<mvt:else>
		<title>&mvt:store:name;: Customer Password Reset</title>
	</mvt:if>

	<base href="&mvt:global:basehref;" />
	<link rel="canonical" href="&mvte:urls:_self:auto;" />
	<mvt:item name="head" param="css_list" />
	<mvt:item name="head" param="head_tag" />
</head>
<body class="CSTR one-column">
<div id="site-container">
	<div id="global-header"><mvt:item name="hdft" param="global_header" /></div>
	<div id="navigation-bar"><mvt:item name="navbar" /></div>
	<table id="content-container">
		<tr>
			<td id="left-navigation"><mvt:item name="category_tree" /></td>
			<td id="main-content">
				<div id="page-header"><mvt:item name="hdft" param="header" /></div>
				<div id="breadcrumbs"><mvt:item name="breadcrumbs" /></div>
				<form id="cstr" name="cstr" action="&mvte:urls:CSTR:secure;" method="post" autocomplete="off">
				<input type="hidden" name="Action" value="CSTR" />
				<input type="hidden" name="CSRF_Token" value="&mvte:global:Basket:csrf_token;" />
				<input type="hidden" name="Customer_PasswordResetToken" value="&mvte:global:Customer_PasswordResetToken;" />
				<div class="change-password-section">
					<h3>Change Password</h3>
					<mvt:if expr="l.settings:messages:error_message_count">
					<div class="error-message">
					<mvt:foreach iterator="error" array="messages:error_messages">
						&mvt:error;
					</mvt:foreach>
					</div>
					<mvt:elseif expr="l.settings:messages:information_message_count">
					<div class="information-message">
					<mvt:foreach iterator="message" array="messages:information_messages">
						&mvt:message;
					</mvt:foreach>
					</div>
					</mvt:if>

					<mvt:if expr="g.Customer_Password_Invalid">
						<div class="form_row invalid">
					<mvt:else>
						<div class="form_row">
					</mvt:if>
						<label class="required" for="Customer_PasswordResetNewPassword">New Password:</label><input type="password" name="Customer_PasswordResetNewPassword" id="Customer_PasswordResetNewPassword" class="textfield cstr-input" value="" autocomplete="off" />
					</div>

					<mvt:if expr="g.Customer_VerifyPassword_Invalid">
						<div class="form_row invalid">
					<mvt:else>
						<div class="form_row">
					</mvt:if>
						<label class="required" for="Customer_PasswordResetVerifyNewPassword">Confirm Password:</label><input type="password" name="Customer_PasswordResetVerifyNewPassword" id="Customer_PasswordResetVerifyNewPassword" class="textfield cstr-input" value="" autocomplete="off" />
					</div>
					<div class="clear"></div>
					<div class="change-buttons">
						<input type="submit" value="Submit" class="button" />
					</div>
				</div>
				</form>
				<div id="page-footer"><mvt:item name="hdft" param="footer" /></div>
			</td>
		</tr>
	</table>
	<div id="bottom-wrap"></div>
	<div id="global-footer"><mvt:item name="hdft" param="global_footer" /></div>
</div>
</body>
</html>

						

Page PATR

Original File
New File
<mvt:item name="html_profile" />
<head>
	<mvt:if expr="NOT ISNULL l.settings:page:title">
		<title>&mvt:page:title;</title>
	<mvt:else>
		<title>&mvt:store:name;: Missing Product Attributes</title>
	</mvt:if>

	<base href="&mvt:global:basehref;" />
	<link rel="canonical" href="&mvte:urls:_self:auto;" />
	<mvt:item name="head" param="css_list" />
	<mvt:item name="head" param="head_tag" />
	<mvt:item name="attributemachine" param="head" />
</head>
<body class="PATR">
<div id="site-container">
	<div id="global-header"><mvt:item name="hdft" param="global_header" /></div>
	<div id="navigation-bar"><mvt:item name="navbar" /></div>
	<table id="content-container">
		<tr>
			<td id="left-navigation"><mvt:item name="category_tree" /></td>
			<td id="main-content">
				<div id="page-header"><mvt:item name="hdft" param="header" /></div>
				<div id="breadcrumbs"><mvt:item name="breadcrumbs" /></div>

				<mvt:if expr="l.settings:messages:error_message_count">
				<div class="error-message">
				<mvt:foreach iterator="error" array="messages:error_messages">
					&mvt:error;
				</mvt:foreach>
				</div>
				</mvt:if>
				
				<form method="post" action="&mvte:urls:_self:rr;">
				<input type="hidden" name="Action" value="&mvte:global:Action;" />
				<input type="hidden" name="Category_Code" value="&mvte:global:Category_Code;" />
				<input type="hidden" name="Product_Code" value="&mvte:global:Product_Code;" />
				<input type="hidden" name="Current_Product_Code" value="&mvte:global:Current_Product_Code;" />
				<input type="hidden" name="WishList_ID" value="&mvte:global:WishList_ID;" />
				<input type="hidden" name="Wish_ID" value="&mvte:global:Wish_ID;" />
				<input type="hidden" name="Quantity" value="&mvte:global:Quantity;" />
				<input type="hidden" name="Offset" value="&mvte:global:Offset;" />
				<input type="hidden" name="Search" value="&mvte:global:Search;" />
				<div class="product-attributes"><mvt:item name="product_attributes" /></div>
				<div class="continue-button"><mvt:item name="buttons" param="Continue" /></div>
				</form>

				<mvt:item name="attributemachine" param="body" />

				<div id="page-footer"><mvt:item name="hdft" param="footer" /></div>
			</td>
		</tr>
	</table>
	<div id="bottom-wrap"></div>
	<div id="global-footer"><mvt:item name="hdft" param="global_footer" /></div>
</div>
</body>
</html>

						
<mvt:item name="html_profile" />
<head>
	<mvt:if expr="NOT ISNULL l.settings:page:title">
		<title>&mvt:page:title;</title>
	<mvt:else>
		<title>&mvt:store:name;: Missing Product Attributes</title>
	</mvt:if>

	<base href="&mvt:global:basehref;" />
	<link rel="canonical" href="&mvte:urls:_self:auto;" />
	<mvt:item name="head" param="css_list" />
	<mvt:item name="head" param="head_tag" />
	<mvt:item name="attributemachine" param="head_deferred" />
</head>
<body class="PATR">
<div id="site-container">
	<div id="global-header"><mvt:item name="hdft" param="global_header" /></div>
	<div id="navigation-bar"><mvt:item name="navbar" /></div>
	<table id="content-container">
		<tr>
			<td id="left-navigation"><mvt:item name="category_tree" /></td>
			<td id="main-content">
				<div id="page-header"><mvt:item name="hdft" param="header" /></div>
				<div id="breadcrumbs"><mvt:item name="breadcrumbs" /></div>

				<mvt:if expr="l.settings:messages:error_message_count">
				<div class="error-message">
				<mvt:foreach iterator="error" array="messages:error_messages">
					&mvt:error;
				</mvt:foreach>
				</div>
				</mvt:if>
				
				<form method="post" action="&mvte:urls:_self:rr;">
				<input type="hidden" name="Action" value="&mvte:global:Action;" />
				<input type="hidden" name="Category_Code" value="&mvte:global:Category_Code;" />
				<input type="hidden" name="Product_Code" value="&mvte:global:Product_Code;" />
				<input type="hidden" name="Current_Product_Code" value="&mvte:global:Current_Product_Code;" />
				<input type="hidden" name="WishList_ID" value="&mvte:global:WishList_ID;" />
				<input type="hidden" name="Wish_ID" value="&mvte:global:Wish_ID;" />
				<input type="hidden" name="Quantity" value="&mvte:global:Quantity;" />
				<input type="hidden" name="Offset" value="&mvte:global:Offset;" />
				<input type="hidden" name="Search" value="&mvte:global:Search;" />
				<div class="product-attributes"><mvt:item name="product_attributes" /></div>
				<div class="continue-button"><mvt:item name="buttons" param="Continue" /></div>
				</form>

				<mvt:item name="attributemachine" param="body_deferred" />

				<div id="page-footer"><mvt:item name="hdft" param="footer" /></div>
			</td>
		</tr>
	</table>
	<div id="bottom-wrap"></div>
	<div id="global-footer"><mvt:item name="hdft" param="global_footer" /></div>
</div>
</body>
</html>

						

Page PROD

Original File
New File
<mvt:item name="html_profile" />
<head>
	<mvt:if expr="NOT ISNULL l.settings:product:page_title">
		<title>&mvt:product:page_title;</title>
	<mvt:elseif expr="NOT ISNULL l.settings:page:title">
		<title>&mvt:page:title;</title>
	<mvt:else>
		<title>&mvt:store:name;: &mvt:product:name;</title>
	</mvt:if>

	<base href="&mvt:global:basehref;" />
	<link rel="canonical" href="&mvte:product:link;" />
	<mvt:item name="head" param="css_list" />
	<mvt:item name="head" param="head_tag" />
	<mvt:item name="attributemachine" param="head" />
	<mvt:item name="product_display_imagemachine" param="head" />
</head>
<body class="PROD">
<div id="site-container">
	<div id="global-header"><mvt:item name="hdft" param="global_header" /></div>
	<div id="navigation-bar"><mvt:item name="navbar" /></div>
	<table id="content-container">
		<tr>
			<td id="left-navigation"><mvt:item name="category_tree" /></td>
			<td id="main-content">
				<div id="page-header"><mvt:item name="hdft" param="header" /></div>
				<div id="breadcrumbs"><mvt:item name="breadcrumbs" /></div>

				<div id="product-header"><mvt:item name="prod_ctgy_hdft" param="prod_header" /></div>
				<mvt:item name="product_display" />
				<mvt:item name="attributemachine" param="body" />
				<mvt:if expr="l.settings:related_product_count NE 0">
				<div class="related-products">
					<h2 class="header">Related Item(s)</h2>
					<mvt:item name="related_products" />
				</div>
				</mvt:if>
				<div id="product-footer"><mvt:item name="prod_ctgy_hdft" param="prod_footer" /></div>

				<div id="page-footer"><mvt:item name="hdft" param="footer" /></div>
			</td>
		</tr>
	</table>
	<div id="bottom-wrap"></div>
	<div id="global-footer"><mvt:item name="hdft" param="global_footer" /></div>
</div>
</body>
</html>

						
<mvt:item name="html_profile" />
<head>
	<mvt:if expr="NOT ISNULL l.settings:product:page_title">
		<title>&mvt:product:page_title;</title>
	<mvt:elseif expr="NOT ISNULL l.settings:page:title">
		<title>&mvt:page:title;</title>
	<mvt:else>
		<title>&mvt:store:name;: &mvt:product:name;</title>
	</mvt:if>

	<base href="&mvt:global:basehref;" />
	<link rel="canonical" href="&mvte:product:link;" />
	<mvt:item name="head" param="css_list" />
	<mvt:item name="head" param="head_tag" />
	<mvt:item name="attributemachine" param="head_deferred" />
	<mvt:item name="product_display_imagemachine" param="head_deferred" />
</head>
<body class="PROD">
<div id="site-container">
	<div id="global-header"><mvt:item name="hdft" param="global_header" /></div>
	<div id="navigation-bar"><mvt:item name="navbar" /></div>
	<table id="content-container">
		<tr>
			<td id="left-navigation"><mvt:item name="category_tree" /></td>
			<td id="main-content">
				<div id="page-header"><mvt:item name="hdft" param="header" /></div>
				<div id="breadcrumbs"><mvt:item name="breadcrumbs" /></div>

				<div id="product-header"><mvt:item name="prod_ctgy_hdft" param="prod_header" /></div>
				<mvt:item name="product_display" />
				<mvt:item name="attributemachine" param="body_deferred" />
				<mvt:if expr="l.settings:related_product_count NE 0">
				<div class="related-products">
					<h2 class="header">Related Item(s)</h2>
					<mvt:item name="related_products" />
				</div>
				</mvt:if>
				<div id="product-footer"><mvt:item name="prod_ctgy_hdft" param="prod_footer" /></div>

				<div id="page-footer"><mvt:item name="hdft" param="footer" /></div>
			</td>
		</tr>
	</table>
	<div id="bottom-wrap"></div>
	<div id="global-footer"><mvt:item name="hdft" param="global_footer" /></div>
</div>
</body>
</html>

						

Page PROD -> Product Display Layout

Original File
New File
<h1>&mvt:product:name;</h1>
<div class="product-details-1"><div class="product-image"><img id="main_image" src="graphics/en-US/cssui/blank.gif" alt="&mvte:product:name;" /></div>
	
	<ul id="thumbnails" class="thumbnails"></ul>
	<div id="closeup_div" class="closeup"><img id="closeup_image" src="graphics/en-US/cssui/blank.gif" alt="" /><div><a id="closeup_close">close</a></div></div>
		<mvt:item name="product_display_imagemachine" param="body:product:id" />
	<div class="clear product-image-margin"></div>
	<div class="product-code">Code: <span class="bold">&mvt:product:code;</span></div>
	<div class="product-price">
	Price: 
	<span id="price-value-additional" style="text-decoration: line-through"></span>

	<span id="price-value" class="bold">&mvt:product:formatted_base_price;</span>

	<div id="product-discounts">
	</div>
	</div>
	<mvt:if expr="l.settings:product:weight NE 0">
	<div class="product-weight">Shipping Weight: <span class="bold">&mvt:product:weight;</span> &mvt:store:wtunits;</div>
	</mvt:if>
	<div id="inventory-message">
		<mvt:if expr="l.settings:product:inv_active">
		&mvt:product:inv_long;
		</mvt:if>
	</div>
	<div class="product-quantity">Quantity in Basket:
		<mvt:if expr="l.settings:product:quantity EQ 0">
		<span class="italic">None</span>
		<mvt:else>
		<span class="bold">&mvt:product:quantity;</span>
		</mvt:if>
	</div>
</div>
<div class="product-details-2">
	<div class="product-description">&mvt:product:descrip;</div>
	<form name="add" method="post" action="&mvte:urls:BASK:auto;">
	<div id="swatches" class="swatches"></div>
	<div class="clear"></div>
	<input type="hidden" name="Old_Screen" value="&mvte:global:Screen;" />
	<input type="hidden" name="Old_Search" value="&mvte:global:Search;" />
	<input type="hidden" name="Action" value="ADPR" />
	<input type="hidden" name="Product_Code" value="&mvte:product:code;" />
	<input type="hidden" name="Category_Code" value="&mvte:global:category_code;" />
	<input type="hidden" name="Offset" value="&mvte:global:Offset;" />
	<input type="hidden" name="AllOffset" value="&mvte:global:AllOffset;" />
	<input type="hidden" name="CatListingOffset" value="&mvte:global:CatListingOffset;" />
	<input type="hidden" name="RelatedOffset" value="&mvte:global:RelatedOffset;" />
	<input type="hidden" name="SearchOffset" value="&mvte:global:SearchOffset;" />
	<div class="product-attributes"><mvt:item name="product_attributes" param="product:id" /></div>
	<mvt:if expr="l.settings:subscription:enabled AND l.settings:subscription:mandatory">
		<mvt:if expr="l.settings:product:inv_level NE 'out'">
			<div class="purchase-buttons">
				Quantity: <input type="text" name="Quantity" value="1" class="product-quantity-input textfield" /> <mvt:item name="buttons" param="AddToBasket" />
			</div>
		</mvt:if>
	<mvt:else>
		<div class="purchase-buttons">
			Quantity: <input type="text" name="Quantity" value="1" class="product-quantity-input textfield" />

			<div class="purchase-buttons-spacer">
				<mvt:if expr="l.settings:product:inv_level NE 'out'">
					<span onclick="document.forms.add.action = '&mvtj:urls:BASK:auto;'; document.forms.add.elements.Action.value = 'ADPR';">
						<mvt:item name="buttons" param="AddToBasket" />
					</span>
				</mvt:if>

				<span data-mmnodisable="true"><span onclick="document.forms.add.action = '&mvtj:urls:WISH:secure;'; document.forms.add.elements.Action.value = 'ATWL';"><mvt:item name="buttons" param="AddToWishList" /></span></span>
			</div>
		</div>
	</mvt:if>
	</form>
</div>
<div class="clear"></div>

						
<h1>&mvt:product:name;</h1>
<div class="product-details-1"><div class="product-image"><img id="main_image" src="graphics/en-US/cssui/blank.gif" alt="&mvte:product:name;" /></div>
	
	<ul id="thumbnails" class="thumbnails"></ul>
	<div id="closeup_div" class="closeup"><img id="closeup_image" src="graphics/en-US/cssui/blank.gif" alt="" /><div><a id="closeup_close">close</a></div></div>
		<mvt:item name="product_display_imagemachine" param="body_deferred:product:id" />
	<div class="clear product-image-margin"></div>
	<div class="product-code">Code: <span class="bold">&mvt:product:code;</span></div>
	<div class="product-price">
	Price: 
	<span id="price-value-additional" style="text-decoration: line-through"></span>

	<span id="price-value" class="bold">&mvt:product:formatted_base_price;</span>

	<div id="product-discounts">
	</div>
	</div>
	<mvt:if expr="l.settings:product:weight NE 0">
	<div class="product-weight">Shipping Weight: <span class="bold">&mvt:product:weight;</span> &mvt:store:wtunits;</div>
	</mvt:if>
	<div id="inventory-message">
		<mvt:if expr="l.settings:product:inv_active">
		&mvt:product:inv_long;
		</mvt:if>
	</div>
	<div class="product-quantity">Quantity in Basket:
		<mvt:if expr="l.settings:product:quantity EQ 0">
		<span class="italic">None</span>
		<mvt:else>
		<span class="bold">&mvt:product:quantity;</span>
		</mvt:if>
	</div>
</div>
<div class="product-details-2">
	<div class="product-description">&mvt:product:descrip;</div>
	<form name="add" method="post" action="&mvte:urls:BASK:auto;">
	<div id="swatches" class="swatches"></div>
	<div class="clear"></div>
	<input type="hidden" name="Old_Screen" value="&mvte:global:Screen;" />
	<input type="hidden" name="Old_Search" value="&mvte:global:Search;" />
	<input type="hidden" name="Action" value="ADPR" />
	<input type="hidden" name="Product_Code" value="&mvte:product:code;" />
	<input type="hidden" name="Category_Code" value="&mvte:global:category_code;" />
	<input type="hidden" name="Offset" value="&mvte:global:Offset;" />
	<input type="hidden" name="AllOffset" value="&mvte:global:AllOffset;" />
	<input type="hidden" name="CatListingOffset" value="&mvte:global:CatListingOffset;" />
	<input type="hidden" name="RelatedOffset" value="&mvte:global:RelatedOffset;" />
	<input type="hidden" name="SearchOffset" value="&mvte:global:SearchOffset;" />
	<div class="product-attributes"><mvt:item name="product_attributes" param="product:id" /></div>
	<mvt:if expr="l.settings:subscription:enabled AND l.settings:subscription:mandatory">
		<mvt:if expr="l.settings:product:inv_level NE 'out'">
			<div class="purchase-buttons">
				Quantity: <input type="text" name="Quantity" value="1" class="product-quantity-input textfield" /> <mvt:item name="buttons" param="AddToBasket" />
			</div>
		</mvt:if>
	<mvt:else>
		<div class="purchase-buttons">
			Quantity: <input type="text" name="Quantity" value="1" class="product-quantity-input textfield" />

			<div class="purchase-buttons-spacer">
				<mvt:if expr="l.settings:product:inv_level NE 'out'">
					<span onclick="document.forms.add.action = '&mvtj:urls:BASK:auto;'; document.forms.add.elements.Action.value = 'ADPR';">
						<mvt:item name="buttons" param="AddToBasket" />
					</span>
				</mvt:if>

				<span data-mmnodisable="true"><span onclick="document.forms.add.action = '&mvtj:urls:WISH:secure;'; document.forms.add.elements.Action.value = 'ATWL';"><mvt:item name="buttons" param="AddToWishList" /></span></span>
			</div>
		</div>
	</mvt:if>
	</form>
</div>
<div class="clear"></div>