<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Musings From the Throne &#187; Ecommerce</title>
	<atom:link href="http://www.tinyqueen.com/category/ecommerce/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tinyqueen.com</link>
	<description>Random Ramblings from the Tiny Queen</description>
	<lastBuildDate>Fri, 04 Mar 2011 15:16:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=7622</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Miva Merchant: Excel Tips and Tricks for Import and Export Files &#8211; Part 1</title>
		<link>http://www.tinyqueen.com/ecommerce/miva-merchant-excel-tips-and-tricks-for-import-and-export-files-part-1</link>
		<comments>http://www.tinyqueen.com/ecommerce/miva-merchant-excel-tips-and-tricks-for-import-and-export-files-part-1#comments</comments>
		<pubDate>Sun, 16 Aug 2009 00:26:53 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Miva Merchant]]></category>

		<guid isPermaLink="false">http://www.tinyqueen.com/?p=474</guid>
		<description><![CDATA[ It may seem odd for a Miva Merchant web designer to be posting tips for using MS Excel, but for Miva Merchant store owners who use the flat file import and export features of their store, learning a few little Excel tidbits can come in pretty darned handy. There are so many things you [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/images/blog/excel.png" alt="Excel spreadsheet" class="alignright"> It may seem odd for a <a href="www.tinyqueen.com">Miva Merchant web designer</a> to be posting tips for using MS Excel, but for Miva Merchant store owners who use the flat file import and export features of their store, learning a few little Excel tidbits can come in pretty darned handy. There are so many things you can do to make your life as an ecommerce site owner easier with Excel, so I&#8217;m planning to make this a series, with a handful of tricks in each. For starters, let&#8217;s see how to get your import file into Excel, and then split it up, and put it back together.</p>
<h2>Importing Data From Miva Merchant Into Excel</h2>
<p>First, let&#8217;s go over how to get your data into the Excel file in the first place.  When you run an export from the Utilities menu, Miva Merchant exports your data into a .dat file, which it stores on your server.  The exact location varies from store to store; if you&#8217;re not sure where your files are being stored, check with your host.  If you&#8217;re running all the current patches and updates, you also now have the option to have the export file emailed to you (I <em>love</em> this feature!).</p>
<p>The complete instructions for importing the .dat file, including handy screenshots, can be found in my article on <a href="/resources/miva-merchant-order-spreadsheet">Creating a Useful Miva Merchant Order Spreadsheet</a>, but here&#8217;s the nitty gritty:</p>
<ol>
<li>Open a new workbook in Microsoft Excel.</li>
<li>From the Data menu, select Get External Data> Import Text File.</li>
<li>Browse to the location of your .dat file. Be sure to change the setting in the “Files of Type” box to All Files (*.*).</li>
<li>Select your file and click Import. On the following screen, be sure the data type selector is set to Delimited and click Next.</li>
<li>Select the appropriate Delimiter for your file and click Next.</li>
<li>Finally, click Finish. You will be asked to specify which cell you want your data import to start in. In a new worksheet you should not need to change this reference. Click Ok.</li>
</ol>
<h2>Breaking Data Out: Text to Columns</h2>
<p>Sometimes you may want to break out data, such as category assignments, that&#8217;s in a single column. Or, you may have a url that you want to split out. The Text to Columns function makes this a snap. Let&#8217;s use breaking out category assignments as an example:</p>
<ol class="exceltutorial">
<li>First, you&#8217;ll need to make sure that you have enough empty columns beside your CATEGORY_CODES column to accommodate the maximum number of categories assigned to your products.  If you only have two or three possible categories, it&#8217;s easy enough to insert new columns beside the CATEGORY_CODES column, but if you have more than that, the simplest thing to do is to move the CATEGORY_CODES column to the end of your spreadsheet.  Click to highlight the column, go to Edit > Cut. Scroll to the first empty column in your spreadsheet, and highlight it.  Go to Edit > Paste.</li>
<li>Now, to break out your category assignments into individual columns, highlight the CATEGORY_CODES column and go to Data > Text to Columns.<br />
<img src="/images/blog/excel-ttc-1.jpg" alt="Text to Columns, step 1"></li>
<li>For data type, select delimited.</li>
<li>Set the delimiter to Comma.  In the preview pane, you will see your category codes, broken out into individual columns.<br />
<img src="/images/blog/excel-ttc-2.jpg" alt="Text to Columns, step 3"></li>
<li>Click Next, then Finish.  You will now have separate columns, with a single category code in each column, and can use various sorting features to work with your product data.<br />
<img src="/images/blog/excel-ttc-3.jpg" alt="Text to Columns, final step"></li>
</ol>
<h2>Putting it Back Together: Concatenate</h2>
<p>Now that we&#8217;ve gone to all the trouble to break our data apart, let&#8217;s see how we can put it back together.  The concatenate function is handy for all sorts of purposes, but one of my favorites is to use it to create file paths for product images.</p>
<p>I always recommend to new store owners that they use a structured system for naming product images, and one of the best foundations for a naming scheme is to include the product code as part of the image name.  Not only does this open all sorts of possibilities for coding images within the store, it can make setting up your import spreadsheet a snap.</p>
<p>Let&#8217;s assume that you&#8217;re going to put your images in the default Miva Merchant graphics directory, and that your spreadsheet has your product codes in column A, the first column.</p>
<ol class="exceltutorial">
<li>Click in cell J2 (or whichever cell is at the top of your PRODUCT_THUMBNAIL column in your spreadsheet) and enter the following formula:<br />
<span class="formula" style="width:400px">=CONCATENATE(&#8220;graphics/00000001/&#8221;&amp;A2&amp;&#8221;-thumb.jpg&#8221;)</span><br />
Let&#8217;s take a look at what this formula does.  First, we have the beginning of our file path (the store 00000001 directory in the main graphics directory on the site), surrounded by double quotes.  You can use double quotes to put any text string into a concatenate function. After the file path is an ampersand (&amp;) and then a reference to cell A2, which you&#8217;ll recall is where our product code is.  Following the reference to cell A2 is another ampersand, and then the text string -thumb.jpg.  If you are using a different naming scheme to identify your product thumbnails, you can of course change this string accordingly.<br />
The first ampersand joins the file path to the content of cell A2, and the second ampersand joins those items to the file extension. You can concatenate as many strings and cell references as you like &mdash; just remember that strings must be enclosed in double quotes.</li>
<li>After entering the formula, you should get something like this (in this example, the product code is 01-347752):<br />
<img src="/images/blog/excel-concat-1.jpg" alt="Excel concatenate function step 1"></li>
<li>To fill in the formula for the rest of your products, just hover over the lower right corner of cell J2 until the cursor turns to a thin black cross, then click and drag down across the rows containing product data.  The formula will automatically fill in to the remaining products.<br />
<img src="/images/blog/excel-concat-2.jpg" alt="Excel concatenate function step 2"></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/miva-merchant-excel-tips-and-tricks-for-import-and-export-files-part-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miva Merchant Quick Tip: What to Do When Your Payment Gateway Fails</title>
		<link>http://www.tinyqueen.com/ecommerce/miva-merchant-quick-tip-what-to-do-when-your-payment-gateway-fails</link>
		<comments>http://www.tinyqueen.com/ecommerce/miva-merchant-quick-tip-what-to-do-when-your-payment-gateway-fails#comments</comments>
		<pubDate>Fri, 03 Jul 2009 22:51:33 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Miva Merchant]]></category>

		<guid isPermaLink="false">http://www.tinyqueen.com/?p=417</guid>
		<description><![CDATA[A fire at the Authorize.net data center has caused massive disruptions in payment processing for ecommerce sites across the country today.  Fortunately for Miva Merchant store owners, having your gateway go down doesn&#8217;t have to mean that you stop taking orders. By switching your payment method to Credit Card Payment with Simple Validation, you [...]]]></description>
			<content:encoded><![CDATA[<p>A fire at the Authorize.net data center has caused massive disruptions in payment processing for ecommerce sites across the country today.  Fortunately for Miva Merchant store owners, having your gateway go down doesn&#8217;t have to mean that you stop taking orders. By switching your payment method to Credit Card Payment with Simple Validation, you can keep your store humming along until your gateway service is restored.</p>
<h2>Set up Simple Validation and Disable the Non-Functioning Gateway</h2>
<ol>
<li>The first thing you need to do is to log in to your admin, and from the menu options at left, select Payment Settings.  Check the box beside Credit Card Payment with Simple Validation and click Update.</li>
<li>A new tab will appear, which will allow you to configure your credit card settings. By default, this module accepts American Express, Discover, Mastercard and Visa.  If you don&#8217;t accept one or more of those cards, simply check the box beside it, and click Update.  This will remove it from your settings.<br />
<img src="http://www.tinyqueen.com/wp-content/uploads/2009/07/cc-options.png" alt="cc-options" title="cc-options" width="528" height="337" class="aligncenter" style="margin-left:-40px"></li>
<li>Next, you need to disable the crippled payment gateway so it won&#8217;t show up in your payment dropdown.  You can&#8217;t simply unassign it, because it will likely have existing orders associated with it.  Instead, click the plus sign to expand Global Settings, and click the link for Modules.  In the search box, enter the name of your gateway, and click Go.<br />
<img src="http://www.tinyqueen.com/wp-content/uploads/2009/07/disable-mod.png" alt="disable-mod" title="disable-mod" width="536" height="324" class="aligncenter " style="margin-left:-40px"></li>
<li>Find the gateway in the search results, and click the Edit button.  Uncheck the box beside Active, and click Update.</li>
</ol>
<h2>Set Up Encryption</h2>
<p>When you&#8217;re using simple validation, it&#8217;s <strong>very important</strong> to be certain that you have set up Order Encryption so that your data is securely stored. </p>
<ol>
<li>In the admin, click Order Processing.  Click Store Encryption.  Click Add Encryption Key.</li>
<li>Choose an Encryption Prompt that will help you remember the key if you should forget it, and enter it in the Encryption Prompt input.</li>
<li>Type your Encryption Pass Phrase, and then verify it. Choose a <strong>strong</strong> pass phrase.  It should be at least 6-8 characters long and include both upper and lower case letters as well as numbers and/or punctuation marks.</li>
<li>Write down your pass phrase in a secure location where you won&#8217;t lose it.  If you forget your pass phrase, you will not be able to decrypt your orders and will be unable to process them.</li>
</ol>
<p>Once you have your new payment method set up, <strong>test your store</strong> by completing test orders using each of the available methods.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/miva-merchant-quick-tip-what-to-do-when-your-payment-gateway-fails/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miva Merchant Quick Tip: Matching Multiple Variables in a Conditional</title>
		<link>http://www.tinyqueen.com/ecommerce/miva-merchant-quick-tip-matching-multiple-variables-in-a-conditional</link>
		<comments>http://www.tinyqueen.com/ecommerce/miva-merchant-quick-tip-matching-multiple-variables-in-a-conditional#comments</comments>
		<pubDate>Thu, 28 May 2009 03:00:00 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Miva Merchant]]></category>
		<category><![CDATA[Store Morph Technology]]></category>

		<guid isPermaLink="false">http://localhost/TinyQueen/wordpress/?p=43</guid>
		<description><![CDATA[This morning I was working on a small project to modify the layout of the attributes on a product page template, and it occurred to me that others might find this little trick about writing conditionals where you need to match a multitude of variables useful.
In this particular project, I needed conditionals for two purposes: [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I was working on a small project to modify the layout of the attributes on a product page template, and it occurred to me that others might find this little trick about writing conditionals where you need to match a multitude of variables useful.</p>
<p>In this particular project, I needed conditionals for two purposes:  one in one location of the template to check to see if the attribute template code was either the word &#8220;Length&#8221; or the word &#8220;Width&#8221; and the second in a separate location to check to see if the template code was either &#8220;LengthFraction&#8221; or &#8220;WidthFraction.&#8221;</p>
<p>Since I was trying to match the code against a list of variables, I could have written my conditional like so:</p>
<pre title="code" class="html">
&lt;mvt:if expr="l.settings:attribute:template_code IN 'LengthFraction, WidthFraction'"&gt;</pre>
<p>Anyone else see a problem with this though?  The above conditional, which checks to see if the content of the template code variable exists in either the words LengthFraction or WidthFraction will return true not only if the template code is actually LengthFraction or WidthFraction, but also if the template code is merely Length or Width.</p>
<p>So, we need to be a little more specific. Since I was only trying to match one of two different variables, I could have written my conditional like this instead:</p>
<pre title="code" class="html">
&lt;mvt:if expr="((l.settings:attribute:template_code EQ 'LengthFraction') OR (l.settings:attribute:template_code EQ 'WidthFraction'))"&gt;</pre>
<p>That&#8217;s fine when you only have a couple of variables to test against, but if you have several codes you want to match up, there&#8217;s a much cleaner and easier way.  By making use of Store Morph Technology&#8217;s (SMT) concatenating feature, you can use the IN expression to check against a list of several codes, without the risk of inexact matches.</p>
<p>Here&#8217;s the code:</p>
<pre title="code" class="html">&lt;mvt:if expr="'|'$l.settings:attribute:template:code$'|' IN '|Length|Width|'"&gt;</pre>
<p>And here&#8217;s how it works.</p>
<p>The very first element in the conditional is a string (enclosed by single quotes) consisting of a pipe character, aka | .  Next to the string is a $ sign.  In many scripting languages the $ sign is used to indicate a variable, but in SMT, the $ sign is a concatenator.  That is, it takes whatever string or variable is in front of it, and joins it to whatever string or variable is after it.</p>
<p>The next element in our conditional is the SMT variable we are wanting to test, in this case, the attribute template code.  It&#8217;s followed by another $ sign and another string consisting of a pipe character.  The result is that the first part of our conditional expression consists of the template code surrounded by pipes:<br /> |Length| <br />
|LengthFraction| <br />
|Width| <br />
|WidthFraction| etc.</p>
<p>The second element in the conditional is a string, consisting of a list of the codes we want to match.  The list begins and ends with a pipe character, and the codes in the list are also separated with pipe characters.</p>
<p>What this means is that if the conditional tries to match |Length| to |LengthFraction| it will now return false, since there isn&#8217;t an exact character to character match &#8212; although the |Length part of the first element is found in |LengthFraction| the pipe at the end of |Length| does not appear in that same position in |LengthFraction| and so the conditional will return false.</p>
<p>So there you have it.  A complex conditional made short and sweet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/miva-merchant-quick-tip-matching-multiple-variables-in-a-conditional/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miva Merchant: Customer Account Creation on INVC Page</title>
		<link>http://www.tinyqueen.com/ecommerce/miva-merchant-customer-account-creation-on-invc-page</link>
		<comments>http://www.tinyqueen.com/ecommerce/miva-merchant-customer-account-creation-on-invc-page#comments</comments>
		<pubDate>Thu, 26 Feb 2009 20:04:00 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Miva Merchant]]></category>
		<category><![CDATA[Shopping Cart Usability]]></category>
		<category><![CDATA[Store Morph Technology]]></category>

		<guid isPermaLink="false">http://localhost/TinyQueen/wordpress/?p=41</guid>
		<description><![CDATA[Recently there&#8217;s been lots of buzz on the Miva Merchant User Support Forum about moving the account creation process to the end of the checkout. There are a number of good reasons for doing this. First, you eliminate one of the checkout screens, and streamline the checkout process. Second, and more importantly, you eliminate a [...]]]></description>
			<content:encoded><![CDATA[<p>Recently there&#8217;s been lots of buzz on the <a href="http://extranet.mivamerchant.com/forums">Miva Merchant User Support Forum</a> about moving the account creation process to the end of the checkout. There are a number of good reasons for doing this. First, you eliminate one of the checkout screens, and streamline the checkout process. Second, and more importantly, you <span style="font-weight: bold;">eliminate a decision</span> from the checkout process.</p>
<p>There&#8217;s a <a href="http://www.amazon.com/Think-Common-Sense-Approach-Usability/dp/0789723107">great usability book</a> out there by a fellow named Steve Krug, called &#8220;Don&#8217;t Make Me Think&#8221; That book title couldn&#8217;t be more apt for the checkout process in a shopping cart. When your shoppers commit enough to hit the checkout button, don&#8217;t present them with a new decision to have to make before they can get started.</p>
<p>As one person put it, your shoppers aren&#8217;t looking to develop a relationship with you. You have something they want, and they want to give you their money so you can send it to them. Since you want to get their money and send them things, it seems you have a common goal. So why not make it easier to achieve that goal? Get the sale, <span style="font-style: italic;"> and then</span> offer them the opportunity to create an account if they think they&#8217;d like to come back and shop again. But don&#8217;t clutter the checkout process with an unnecessary decision.</p>
<p>So, to the meat of the matter. How does one go about creating an account for a customer using the information available on the INVC page? Since they&#8217;ve already provided their shipping and billing information, there are only two additional bits you need from them: a user name, and a password. The rest you can feed to the form from what they&#8217;ve already told you.</p>
<p>In your INVC page template, decide where you want to present the account creation option, and add the following code. The hidden input for PrevPage isn&#8217;t required, but it gives you a global variable to test against if you want to customize the ACED page to display a &#8220;Thank you for creating your account&#8221; message instead of the account edit form.</p>
<p>You&#8217;ll have to do your own form styling, but this should give you the bare bones you need to get started.</p>
<pre title="code" class="html">
&lt;form method="post" action="&amp;mvt:global:secure_sessionurl;"&gt;
&lt;input type="hidden" name="Store_Code" value="&amp;mvte:global:Store_Code;"&gt;
&lt;input type="hidden" name="Action" value="ICST"&gt;
&lt;input type="hidden" name="Screen" value="ACED"&gt;
&lt;input type="hidden" name="PrevPage" value="INVC"&gt;
&lt;label for="login"&gt;User Name&lt;/label&gt;
&lt;input type="text" id="login" name="Customer_Login" value="&amp;mvte:global:Customer_Login;"&gt;
&lt;label for="pass"&gt;Password&lt;/label&gt;
&lt;input type="password" id="pass" name="Customer_Password" size="25" value="&amp;mvte:global:Customer_Password;"&gt;
&lt;label for="verifypass"&gt;Confirm Password&lt;/label&gt;
&lt;input type="password" id="verifypass" name="Customer_VerifyPassword" size="25" value="&amp;mvte:global:Customer_VerifyPassword;"&gt;
&lt;input type="hidden" name="Customer_PasswordEmail" value="&amp;mvte:order:bill_email;"&gt;
&lt;input type="hidden" name="Customer_ShipFirstName" value="&amp;mvte:order:ship_fname;"&gt;
&lt;input type="hidden" name="Customer_ShipLastName" value="&amp;mvte:order:ship_lname;"&gt;
&lt;input type="hidden" name="Customer_ShipEmail" value="&amp;mvte:order:ship_email;"&gt;
&lt;input type="hidden" name="Customer_ShipPhone" value="&amp;mvte:order:ship_phone;"&gt;
&lt;input type="hidden" name="Customer_ShipFax" value="&amp;mvte:order:ship_fax;"&gt;
&lt;input type="hidden" name="Customer_ShipAddress" value="&amp;mvte:order:bill_addr;"&gt;
&lt;input type="hidden" name="Customer_ShipCompany" value="&amp;mvte:order:ship_comp;"&gt;
&lt;input type="hidden" name="Customer_ShipCity" value="&amp;mvte:order:ship_city;"&gt;
&lt;input type="hidden" name="Customer_ShipState" value="&amp;mvte:order:ship_state;"&gt;
&lt;input type="hidden" name="Customer_ShipZip" value="&amp;mvte:order:ship_zip;"&gt;
&lt;input type="hidden" name="Customer_ShipCountry" value="&amp;mvte:order:ship_cntry;"&gt;
&lt;input type="hidden" name="Customer_BillFirstName" value="&amp;mvte:order:bill_fname;"&gt;
&lt;input type="hidden" name="Customer_BillLastName" value="&amp;mvte:order:bill_lname;"&gt;
&lt;input type="hidden" name="Customer_BillEmail" value="&amp;mvte:order:bill_email;"&gt;
&lt;input type="hidden" name="Customer_BillPhone" value="&amp;mvte:order:bill_phone;"&gt;
&lt;input type="hidden" name="Customer_BillFax" value="&amp;mvte:order:bill_fax;"&gt;
&lt;input type="hidden" name="Customer_BillAddress" value="&amp;mvte:order:bill_addr;"&gt;
&lt;input type="hidden" name="Customer_BillCompany" value="&amp;mvte:order:bill_comp;"&gt;
&lt;input type="hidden" name="Customer_BillCity" value="&amp;mvte:order:bill_city;"&gt;
&lt;input type="hidden" name="Customer_BillState" value="&amp;mvte:order:bill_state;"&gt;
&lt;input type="hidden" name="Customer_BillZip" value="&amp;mvte:order:bill_zip;"&gt;
&lt;input type="hidden" name="Customer_BillCountry" value="&amp;mvte:order:bill_cntry;"&gt;
&lt;mvt:item name="buttons" param="Save" /&gt;
&lt;/form&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/miva-merchant-customer-account-creation-on-invc-page/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Miva Merchant: A Store Morph Technology Mini-Primer</title>
		<link>http://www.tinyqueen.com/ecommerce/miva-merchant-a-store-morph-technology-mini-primer</link>
		<comments>http://www.tinyqueen.com/ecommerce/miva-merchant-a-store-morph-technology-mini-primer#comments</comments>
		<pubDate>Sun, 09 Nov 2008 17:17:00 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Miva Merchant]]></category>
		<category><![CDATA[Store Morph Technology]]></category>

		<guid isPermaLink="false">http://localhost/TinyQueen/wordpress/?p=39</guid>
		<description><![CDATA[When Miva Merchant released MM5, they revolutionized the way the software worked "out of the box" and opened a whole new world of customization to ecommerce store owners.  Using Store Morph Technology (SMT), store owners could completely and...well, I was going to say easily customize their stores to suit their needs, but the truth is that at first glance, SMT isn't in fact all that easy.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tinyqueen.com/images/blog/smt-727962.jpg" alt="Store Morph Technology" class="alignright"><br />When Miva Merchant released MM5, they revolutionized the way the software worked &#8220;out of the box&#8221; and opened a whole new world of customization to ecommerce store owners.  Using Store Morph Technology (SMT), store owners could completely and&#8230;well, I was going to say easily customize their stores to suit their needs, but the truth is that at first glance, SMT isn&#8217;t in fact all that easy.</p>
<p>One of the common complaints from new developers of MM sites, is the lack of documentation about SMT and how it works.  The new owners of Miva Merchant are working hard to remedy the documentation void, but in the meantime, here&#8217;s a mini primer on SMT and some examples of the things you can do with it.</p>
<p>You&#8217;ll see SMT in MM&#8217;s page templates in a variety of different forms.</p>
<p>
<h2 style="color: rgb(141, 169, 32);">Variables</h2>
<p>There are two types of variables in SMT:  local variables, specific to the page you&#8217;re on, and global variables, which are available sitewide.  The best way to find out what variables are available on a given page is to download the free Store Helper Module from <a href="http://store.latu.net/">Latu.net</a>.</p>
<p>Variables are displayed on MM pages in a variety of ways.  Note that variables always begin with an ampersand (&amp;) and end with a semicolon (;).</p>
<p>&amp;mvt:product:code;<br />
&amp;mvte:product:code;<br />
&amp;mvta:product:code;</p>
<p>Variables that begin with &amp;mvte are &#8220;entity encoded.&#8221;  This means that any characters they contain will be displayed on the page in their exact form &#8212; they will not be interpreted by the browser.</p>
<p>Variables that begin with &amp;mvta are &#8220;attribute encoded.&#8221;  This means that any characters they contain will be converted to the correct format for use in a link.</p>
<h2 style="color: rgb(141, 169, 32);">Tags</h2>
<p>SMT tags look similar to XHTML tags in that they are surrounded by &lt; &gt;, they include name / value pairs, with the values surrounded by double quotes, and all SMT tags must be closed, either by using a trailing slash, or with a separate closing tag.</p>
<h3 style="color: rgb(141, 169, 32);">Items</h3>
<p>SMT tags may call in specific page items.  These tags start with mvt:item, and use name=&#8221;xyz&#8221; to identify which page item is being called.  They may also include parameters that more specifically identify the content to be called in.  They are frequently self closing, but may have a separate closing tag depending on their form.</p>
<pre title="code" class="html">
&lt;mvt:item name="html_profile" /&gt;

&lt;mvt:item name="fonts" param="body_font" /&gt;
Some content here
&lt;/mvt:item&gt;
</pre>
<h3 style="color: rgb(141, 169, 32);">Loops and arrays</h3>
<p>SMT tags may be used to loop through an array, and display specific data associated with that array.  Common uses for these tags include such things as displaying the products in a category or search result, listing all of the products in the basket, or listing available shipping methods. All loops must be closed with a separate closing tag after you&#8217;ve worked with the content you&#8217;re pulling from the array.</p>
<pre title="code" class="html">
&lt;mvt:foreach iterator="product" array="products"&gt;
Some stuff about each of the items in this array
&lt;/mvt:foreach&gt;
</pre>
<h3 style="color: rgb(141, 169, 32);">Conditionals</h3>
<p>Finally, SMT tags may be used to create conditionals.  This is far and away one of the most useful aspects of SMT, and is the building block of the store owner&#8217;s ability to customize his or her store (at least in my opinion!).  Writing conditionals is probably worthy of a post all its own, but here are some basics.</p>
<p>All conditionals start with mvt:if and contain an expression to test for.  A very basic conditional might look like this.  This conditional checks to see if the product code is equal to the string 12345, and if it is, displays some text.  Note that the string is enclosed in single quotes.</p>
<pre title="code" class="html">
&lt;mvt:if expr="l.settings:product:code EQ '12345'"&gt;
Display some text.
&lt;/mvt:if&gt;
</pre>
<p>Conditionals can also be set up to do one thing if the condition is true, and another thing if it is false.</p>
<pre title="code" class="html">
&lt;mvt:if expr="l.settings:product:code EQ '12345'"&gt;
Display some text.
&lt;mvt:else&gt;
Display some other text.
&lt;/mvt:if&gt;
</pre>
<p>Or even&#8230;</p>
<pre title="code" class="html">
&lt;mvt:if expr="l.settings:product:code EQ '12345'"&gt;
Display some text.
&lt;mvt:elseif expr="l.settings:product:code EQ '45678'"&gt;
Display some other text.
&lt;mvt:else&gt;
Display yet some other text.
&lt;/mvt:if&gt;
</pre>
<p>Expressions can be combined to create extremely specific situations to test against.  For instance, if you want to display some text only if the product code is 12345 and the customer is logged in, you would write your conditional something like this:</p>
<pre title="code" class="html">&lt;mvt:if expr="((l.settings:product:code EQ '12345') AND (g.Basket:Cust_id))"&gt;
Display some text
&lt;/mvt:if&gt;
</pre>
<p>You can also easily test for a match in a single string or a series of strings, by using CIN or IN.  CIN is case insensitive; IN is case sensitive.  The strings to test against are enclosed in single quotes, and if there is more than one, they are separated by commas or some other delimiter such as a pipe.  The conditional below will return true if the product code is 12345 or 45678 or 67890.</p>
<pre title="code" class="html">
&lt;mvt:if expr="l.settings:product:code IN '12345,45678,67890'"&gt;
Display some text.
&lt;/mvt:if&gt;
</pre>
<p>Note that the conditional above will also return true if the product code is 1234567, 012345, or 98712356789.  It checks merely to see if the content of the first variable is included in the second.  If you need to look for an exact match, you would be better to use a conditional like the following.</p>
<pre title="code" class="html">
&lt;mvt:if expr="((l.settings:product:code EQ '12345') OR (l.settings:product:code EQ '45678') OR (l.settings:product:code EQ '67890'))"&gt;
Display some text.
&lt;/mvt:if&gt;
</pre>
<p>Once you get the hang of them, you&#8217;ll wonder how you ever did without the power of conditionals to control your shopper&#8217;s experience on your site.  Below are some of the most common conditional operators, along with what they do.</p>
<table>
<tbody>
<tr>
<th style="text-align: left; width: 120px;">Operator</th>
<th style="text-align: left; width: 100%;">Function</th>
</tr>
<tr>
<td>NOT</td>
<td>Returns true if the condition does not match the variable</td>
</tr>
<tr>
<td>ISNULL</td>
<td>Returns true if the variable is empty</td>
</tr>
<tr>
<td>AND</td>
<td>Returns true if both conditions are true</td>
</tr>
<tr>
<td>OR</td>
<td>Returns true if any of the conditions is true</td>
</tr>
<tr>
<td>EQ</td>
<td>Returns true if the variable matches the string</td>
</tr>
<tr>
<td>NE</td>
<td>Returns true if the variable does not match the string</td>
</tr>
<tr>
<td>GT</td>
<td>Returns true if the variable is greater than the string</td>
</tr>
<tr>
<td>LT</td>
<td>Returns true if the variable is less than the string</td>
</tr>
<tr>
<td>GE</td>
<td>Returns true if the variable is greater than or equal to the string</td>
</tr>
<tr>
<td>LE</td>
<td>Returns true if the variable is less than or equal to the string</td>
</tr>
<tr>
<td>IN</td>
<td>Returns the first position of string_a in string_b.  Case sensitive</td>
</tr>
<tr>
<td>CIN</td>
<td>Returns the first position of string_a in string_b.  Case insensitive</td>
</tr>
</tbody>
</table>
<h3 style="color: rgb(141, 169, 32);">Comments</h3>
<p>Finally, one of the most useful, and underused in my opinion, features of SMT is the comment feature.  By carefully commenting your work, you make it so much easier on yourself or another developer when it comes time to try to make updates or changes to existing customizations.  SMT comments take the following form.  They are not parsed by the server, and won&#8217;t appear in your html source code.</p>
<pre title="code" class="html">
&lt;mvt:comment&gt;
Here is an explanation of what this section of code is going to do.
&lt;/mvt:comment&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/miva-merchant-a-store-morph-technology-mini-primer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miva Merchant Custom Product Field Conundrums</title>
		<link>http://www.tinyqueen.com/ecommerce/miva-merchant-custom-product-field-conundrums</link>
		<comments>http://www.tinyqueen.com/ecommerce/miva-merchant-custom-product-field-conundrums#comments</comments>
		<pubDate>Thu, 30 Oct 2008 02:36:00 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Miva Merchant]]></category>

		<guid isPermaLink="false">http://localhost/TinyQueen/wordpress/?p=38</guid>
		<description><![CDATA[One of the handiest features of Miva Merchant 5+ is the inclusion of built in custom product fields. These fields can be used for an enormous variety of purposes, from adding product specific data (author, manufacturer, dimensions, materials, etc) to acting as a boolean-style test variable for setting up conditional displays of information.
Unfortunately, custom product [...]]]></description>
			<content:encoded><![CDATA[<p>One of the handiest features of Miva Merchant 5+ is the inclusion of built in custom product fields. These fields can be used for an enormous variety of purposes, from adding product specific data (author, manufacturer, dimensions, materials, etc) to acting as a boolean-style test variable for setting up conditional displays of information.</p>
<p>Unfortunately, custom product fields are not quite as intuitive as they are handy.  So here are some tips for working with them.</p>
<p style="font-weight: bold;">First, how to set them up?</p>
<ol>
<li>In the Miva Merchant admin, in the left hand menu, click Utilities (the word, not the plus sign). Check the box beside Custom Fields and click Update.</li>
<li>You will now see some new tabs across the top of the configuration settings.  Click Custom Product Fields.</li>
<li>Click Add.  Enter a Code (see <a href="#tips">Tips &amp; Tricks</a> below) and a Name and click Update.</li>
</ol>
<p style="font-weight: bold;">Second, you have custom product fields, now what?</p>
<p>To add custom field data to your products, there are two methods you can use.</p>
<p>Method 1:</p>
<ol>
<li>In Quick Find, select Products.  In the search box, type a search term for your product and click Go.</li>
<li>In the row for your chosen product, click Edit.</li>
<li>In the tabs above the input boxes, you&#8217;ll see Custom Fields. Click that tab, and you&#8217;ll see your new custom field displayed, with a text box beside it.</li>
<li>Enter your text (see <a href="#tips">Tips &amp; Tricks</a> below) and click Update.</li>
</ol>
<p>Method 2:</p>
<p>If you have a lot of products for which you need to add custom fields, the above method isn&#8217;t very practical. Instead, you may wish to use the built in import functionality. The easiest way to do this is to start by setting up a single product with some content for your custom fields.</p>
<ol>
<li>Start by following the steps above for a single product.</li>
<li>Then, expand Utilities (this time click on the plus sign).</li>
<li>Expand Export Data and click Export Products to Flat File.</li>
<li>In the custom field sections, check the box(es) beside your new custom field(s).</li>
<li>Select your other settings, and click Export.</li>
<li>Your export file will be in your mivadata directory, typically above the root on your server. Contact your host if you are not certain how to locate this file.</li>
<li>Import the file into Excel or another suitable program, and enter the data for your custom field(s).</li>
<li>Save the file as tab delimited (this has its own issues, which I&#8217;ll address in another blog post) and import to Miva Merchant.</li>
</ol>
<p style="font-weight: bold;">Third, you&#8217;ve got data&#8230;now how to get it to show up on the site?</p>
<p>So, you have your content saved in your new custom product fields, and now you&#8217;d like to display it somewhere on a product page. Here&#8217;s where the tricky part comes in.</p>
<p>Custom product fields are available by default on the PROD (Product), CTGY (Category), SRCH (Search) and PLST (Product List) pages. Other pages may require the Tool Kit from Emporium Plus to access custom fields.</p>
<p>In order to display a custom product field on your product page, you must enable it.</p>
<ol>
<li>To start, go to Pages> PROD and click Edit.</li>
<li>Click the Tab for Product Display Layout.</li>
<li>If you are in Advanced Mode, you will need to switch to Point and Click mode.  Look for the link near the bottom of the screen.</li>
<li>In Point and Click mode, you will see a section for Custom Fields, with your new custom field, and a checkbox to activate it.  </li>
<li>Check the box, and click Update.</li>
</ol>
<p><span style="font-weight: bold; color: rgb(141, 169, 32);">Important:</span> If you&#8217;ve made any modifications to your template, activating the custom fields will reset the template back to its original state.</p>
<ol>
<li>In order to both recall your changes and insert your new custom fields, you will need to switch to Advanced Mode by clicking the link at the bottom of the screen.</li>
<li>From the version history, select your most recent version prior to this update, and click recall.  Then click update.</li>
<li>Now to insert your custom product field, you will need to paste the code below into your template where you would like it to appear. You may of course modify the code as needed to suit your purposes, and do be sure to replace YourCode with your actual custom field code.</li>
</ol>
<pre title="code" class="html">
&lt;mvt:if expr="NOT ISNULL l.settings:product:customfield_values:customfields:YourCode"&gt;
&amp;mvt:customfield_names:customfields:YourCode;:
&lt;b&gt;&amp;mvt:product:customfield_values:customfields:YourCode;&lt;/b&gt;&lt;br&gt;
&lt;/mvt:if&gt;</pre>
<p style="font-weight: bold;" id="tips"> Finally, the Promised Tips and Tricks</p>
<p>There are some sneaky things about custom product fields that I&#8217;ve found out the hard way. If you&#8217;ve followed the steps above, and the custom fields still aren&#8217;t showing as intended, here are some things to check.</p>
<ol>
<li>Make sure the custom product field has data. Check that the product on the page you&#8217;re looking at actually has some content in its custom field.</li>
<li>Make sure you enabled the custom field properly in the relevant template using the steps above (I know&#8230;but humor me and double check anyway).</li>
<li>If you edited the page template to restore your customizations, make sure you correctly entered your custom field code in the store morph tokens.</li>
<li>Check the length of the custom field code. It has been my experience (completely unverified and anecdotal though it may be) that custom field codes that are longer than 10 or so characters do not work as expected. The code seems to get truncated, which means that the store morph token doesn&#8217;t match it, and therefore it doesn&#8217;t display.</li>
<li>Check for hyphens in your custom field code. Sometimes they work ok, but other times they create problems. If at all possible, keep your custom field codes short, and use alpha and numerical characters only.</li>
</ol>
<p>One final word on custom fields. They have a character limit, set in the database, of 254 characters. If you&#8217;re using MySQL, you can edit the s01_CFM_ProdValues table and set the type for the Value field to tinytext or tinyblob depending on your needs. If you&#8217;re not experienced in working with MySQL, ask your host for help, or hire a professional to do this for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/miva-merchant-custom-product-field-conundrums/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Taking Care of Business &#8211; Calendaring Important Web Events</title>
		<link>http://www.tinyqueen.com/ecommerce/taking-care-of-business-calendaring-important-web-events</link>
		<comments>http://www.tinyqueen.com/ecommerce/taking-care-of-business-calendaring-important-web-events#comments</comments>
		<pubDate>Tue, 14 Oct 2008 04:23:00 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>

		<guid isPermaLink="false">http://localhost/TinyQueen/wordpress/?p=37</guid>
		<description><![CDATA[On Friday, I got the sort of email every web developer dreads.  The subject line&#8230;&#8221;BIG Problem&#8221;&#8230;said it all.  The fact that I had spent that morning doing some updates on the site didn&#8217;t help my sinking feeling.  My first thought, naturally, was that I had overlooked some major layout issue, and the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tinyqueen.com/images/blog/calendar-716772.jpg" alt="" class="alignright">On Friday, I got the sort of email every web developer dreads.  The subject line&#8230;&#8221;BIG Problem&#8221;&#8230;said it all.  The fact that I had spent that morning doing some updates on the site didn&#8217;t help my sinking feeling.  My first thought, naturally, was that I had overlooked some major layout issue, and the site had gone haywire.  In this case, though, it was something far more serious.</p>
<p>It turned out that the site&#8217;s security certificate had expired the day before.  For this very busy ecommerce site, doing in excess of $1 million per year in online sales, an expired certificate, even for only a short period of time, meant significant revenue loss.  I jumped in and tracked down the security certificate&#8217;s renewal information, helped the site owner generate and collect the information needed for the renewal process, and had the host set up a temporary shared certificate so that the site wouldn&#8217;t continue to lose sales while the security certificate company&#8217;s validation process was being completed.</p>
<p>Fortunately, we were able to minimize the damage that this administrative lapse might have caused, but it&#8217;s an important reminder to us all.  Don&#8217;t rely on renewal emails for important details related to your website.  You never know when they might go astray.  Take the time to calendar your important web events:</p>
<ol>
<li>Domain registration renewal </li>
<li>Security certificate expiration</li>
<li>Web hosting contract renewal</li>
<li>Software license renewals</li>
</ol>
<p>This simple step can save you big headaches, and big bucks.  Take control of your site.  Take control of your business.  You&#8217;ll be glad you did.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/taking-care-of-business-calendaring-important-web-events/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restrict Access to a Product Page in Miva Merchant</title>
		<link>http://www.tinyqueen.com/ecommerce/restrict-access-to-a-product-page-in-miva-merchant</link>
		<comments>http://www.tinyqueen.com/ecommerce/restrict-access-to-a-product-page-in-miva-merchant#comments</comments>
		<pubDate>Wed, 23 Jul 2008 03:37:00 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Miva Merchant]]></category>
		<category><![CDATA[Store Morph Technology]]></category>

		<guid isPermaLink="false">http://localhost/TinyQueen/wordpress/?p=35</guid>
		<description><![CDATA[I have received numerous requests for some code I wrote to password protect a product page in Miva Merchant 5 (or 5.5), so I thought I&#8217;d share it here.  This code was originally written for a site that wanted to implement custom product pricing using the Emporium Plus External Product Purchase module, but wanted [...]]]></description>
			<content:encoded><![CDATA[<p>I have received numerous requests for some code I wrote to password protect a product page in Miva Merchant 5 (or 5.5), so I thought I&#8217;d share it here.  This code was originally written for a site that wanted to implement custom product pricing using the <a href="http://www.emporiumplus.com/go/wcw/PROD/1AAG/1AA00078">Emporium Plus External Product Purchase</a> module, but wanted to ensure that only staff members could access the page.</p>
<p><span style="font-weight: bold;">Note:</span>  This code requires the <a href="http://www.emporiumplus.com/merchant2/merchant.mvc?Screen=PROD&amp;Store_Code=wcw&amp;Product_Code=1AA00223&amp;Category_Code=1AAG">Tool Kit from Emporium Plus</a>.  If you have a Miva Merchant 5 (or 5.5) store, the Tool Kit is an immensely valuable module that allows developers and store owners enormous flexibility in customizing their stores.  It is beyond worth the money (and no, I don&#8217;t get anything for saying so except the satisfaction of spreading the word about an extremely useful tool).</p>
<p>To use the code below:</p>
<ol>
<li>Set up an availability group, and assign authorized customers to this group.</li>
<li>Substitute your desired product code where indicated by the text YOUR_PRODUCT_CODE_HERE (2 places).</li>
<li>Substitute your availability group name (not code!) for the AVAILABILITY_GROUP_NAME in the code below.</li>
</ol>
<p>This code is designed to work on the main screen of the regular PROD page.  If you&#8217;re using a template manager, you can remove the conditional that tests for the product code.</p>
<p>If you&#8217;re using Miva 5 (instead of 5.5), you&#8217;ll want to replace &lt;mvt:item name=&#8221;html_profile&#8221; /&gt;  with  &lt;html&gt; and &lt;mvt:item name=&#8221;head&#8221; param=&#8221;head_tag&#8221; /&gt; with  &lt;mvt:item name=&#8221;head&#8221; /&gt;</p>
<pre title="code" class="html">
&lt;mvt:item name="html_profile" /&gt;
&lt;head&gt;
&lt;title&gt;&amp;mvt:store:name;: &amp;mvt:product:name;&lt;/title&gt;
&lt;base href="&amp;mvt:global:basehref;"&gt;
&lt;mvt:item name="head" param="head_tag" /&gt;
&lt;/head&gt;

&lt;mvt:item name="body"&gt;
&lt;mvt:item name="hdft" param="global_header" /&gt;

&lt;tr&gt;&lt;td align="left" valign="bottom"&gt;
   &lt;mvt:item name="hdft" param="header" /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="left" valign="top" bgcolor="&amp;mvt:colors:ctgy_bg;"&gt;
   &lt;table border="0" cellpadding="10" cellspacing="0"&gt;
      &lt;tr&gt;&lt;td align="left" valign="top" nowrap&gt;
      &lt;mvt:item name="fonts" param="ctgy_font"&gt;
      &lt;mvt:item name="customerlink" /&gt;
      &lt;mvt:item name="affiliatelink" /&gt;
      &lt;mvt:item name="category_tree" /&gt;
      &lt;/mvt:item&gt;
      &lt;/td&gt;&lt;/tr&gt;
   &lt;/table&gt;
&lt;/td&gt;&lt;td align="left" valign="top" width="80%"&gt;
   &lt;br&gt;
   &lt;blockquote&gt;

      &lt;mvt:comment&gt;Test for desired product code&lt;/mvt:comment&gt;
        &lt;mvt:if expr="l.settings:product:code EQ 'YOUR_PRODUCT_CODE_HERE'"&gt;

      &lt;mvt:comment&gt;Check to see if customer is logged in&lt;/mvt:comment&gt;
      &lt;mvt:if expr="g.Basket:CUST_ID"&gt;

      &lt;mvt:comment&gt;Check to see if customer is a member of your availability group&lt;/mvt:comment&gt;
      &lt;mvt:item name="toolkit" param="agroup|acount" /&gt;
      &lt;mvt:foreach iterator="customer_agroup" array="customer_agroups"&gt;

      &lt;mvt:comment&gt;Set test variable for use later in the page&lt;/mvt:comment&gt;
      &lt;mvt:if expr="l.settings:customer_agroup:name EQ 'YOUR_AVAILABILITY_GROUP'"&gt;
      &lt;mvt:item name="toolkit" param="sassign|staffid|1" /&gt;
      &lt;mvt:item name="prod_ctgy_hdft" param="prod_header" /&gt;
      &lt;mvt:item name="prod_ctgy_hdft" param="prod_header" /&gt;
      &lt;mvt:item name="product_display" /&gt;

      &lt;mvt:if expr="l.settings:product_count NE 0"&gt;
      &lt;br&gt;&lt;br&gt;
      &lt;mvt:item name="fonts" param="hdr_font"&gt;
      &lt;b&gt;Related Item(s)&lt;/b&gt;&lt;br&gt;
      &lt;/mvt:item&gt;

      &lt;mvt:item name="product_list" /&gt;
      &lt;/mvt:if&gt;
      &lt;mvt:item name="prod_ctgy_hdft" param="prod_footer" /&gt;
      &lt;/blockquote&gt;

      &lt;/mvt:if&gt;
      &lt;/mvt:foreach&gt; &lt;mvt:comment&gt;End Availability Group Array&lt;/mvt:comment&gt;
      &lt;/mvt:if&gt; &lt;mvt:comment&gt;End display product details if in Availability Group&lt;/mvt:comment&gt;

      &lt;mvt:comment&gt;If customer is logged in but staffid variable not set, display continue shopping link&lt;/mvt:comment&gt;
      &lt;mvt:if expr="g.Basket:CUST_ID AND (g.staffid NE '1')"&gt;
      &lt;p&gt;This page is for internal use only.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
     &lt;p&gt;&lt;a href="http://domain.com"&gt;&lt;img src="graphics/00000001/continue_shopping.jpg" alt="Continue Shopping"&gt;&lt;/a&gt;&lt;/p&gt;

     &lt;mvt:comment&gt;Otherwise, if customer is not logged in, display login&lt;/mvt:comment&gt;
      &lt;mvt:elseif expr="g.staffid NE '1'"&gt;

      &lt;p&gt;This page is for internal use only.  Staff members may log in below.&lt;/p&gt;
      &lt;form method="post" action="&amp;mvt:global:secure_sessionurl;"&gt;
      &lt;input type="hidden" name="Store_Code" value="&amp;mvte:store:code;"&gt;
      &lt;input type="hidden" name="Screen" value="PROD"&gt;
      &lt;input type="hidden" name="Product_Code" value="YOUR_PRODUCT_CODE_HERE"&gt;
      &lt;label for="user"&gt;Username&lt;/label&gt;
      &lt;input type="text" id="user" size="20" name="Customer_Login" value="&amp;mvte:global:Customer_Login;"&gt;
      &lt;br&gt;&lt;br&gt;
      &lt;input type="radio" name="Action" value="LOGN" checked="checked" style="display: none;"&gt;
      &lt;label for="pass"&gt;Password:&lt;/label&gt;
      &lt;input type="password" id="pass" size="20" name="Customer_Password"&gt;
      &lt;br&gt;&lt;br&gt;
      &lt;mvt:item name="buttons" param="Login" /&gt;
      &lt;br&gt;&lt;br&gt;
      &lt;/form&gt;

      &lt;/mvt:if&gt;

      &lt;mvt:comment&gt;For all other products, display the regular layout&lt;/mvt:comment&gt;
      &lt;mvt:else&gt;

      &lt;mvt:item name="product_display" /&gt;

      &lt;mvt:if expr="l.settings:product_count NE 0"&gt;
      &lt;br&gt;&lt;br&gt;
      &lt;mvt:item name="fonts" param="hdr_font"&gt;
      &lt;b&gt;Related Item(s)&lt;/b&gt;
      &lt;br&gt;
      &lt;/mvt:item&gt;

      &lt;mvt:item name="product_list" /&gt;
      &lt;/mvt:if&gt;

      &lt;mvt:item name="prod_ctgy_hdft" param="prod_footer" /&gt;

      &lt;/blockquote&gt;

      &lt;/mvt:if&gt; &lt;mvt:comment&gt;End conditional to test for product code&lt;mvt:comment&gt;

      &lt;/td&gt;&lt;/tr&gt;

      &lt;tr&gt;&lt;td align="left" valign="bottom"&gt;
      &lt;mvt:item name="hdft" param="footer" /&gt;
      &lt;/td&gt;&lt;/tr&gt;
   &lt;/table&gt;

&lt;mvt:item name="hdft" param="global_footer" /&gt;
&lt;/mvt:item&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/restrict-access-to-a-product-page-in-miva-merchant/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The #1 mistake when building a website</title>
		<link>http://www.tinyqueen.com/ecommerce/the-1-mistake-when-building-a-website</link>
		<comments>http://www.tinyqueen.com/ecommerce/the-1-mistake-when-building-a-website#comments</comments>
		<pubDate>Mon, 07 Jan 2008 19:04:00 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Web Site Design]]></category>

		<guid isPermaLink="false">http://localhost/TinyQueen/wordpress/?p=31</guid>
		<description><![CDATA[I&#8217;ve been working on a database and scripting project for one of my clients over the last couple of days, and it got me to thinking about some of the lessons I&#8217;ve learned in my years as a website designer, and one of the most important ones in particular.
I&#8217;ve put several hours into this project [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tinyqueen.com/images/blog/question-766615.jpg" alt="" class="alignright">I&#8217;ve been working on a database and scripting project for one of my clients over the last couple of days, and it got me to thinking about some of the lessons I&#8217;ve learned in my years as a<a href="http://www.tinyqueen.com/"> website designer</a>, and one of the most important ones in particular.</p>
<p>I&#8217;ve put several hours into this project so far, but I&#8217;ve yet to fire up my computer. Like any well-executed database project, this one is starting with pencil and paper. What is the purpose of the database? What kind of information do people want to be able to extract from it? How do the bits of information relate to each other, and what links need to be created among them? Scribbling, and highlighting, and scratching out, and most of all <span style="font-style: italic;">thinking</span>.  Planning.</p>
<p>Just as this planning process is vital to the success of this project, the same is true of a website. Before worrying about graphics and design, before picking colors and deciding on a theme, you need to sit down and hash out a plan for your site.</p>
<ul>
<li>What is its goal?</li>
<li>Who will it serve?</li>
<li>What will it consist of?</li>
<li>How will the pages relate to each other?</li>
<li>Which content is primary and should be part of top-level navigation?</li>
<li>Which is secondary, and should flow from the primary content?</li>
<li>How will it be structured?</li>
<li>What tools will you need to achieve the site&#8217;s  goal?</li>
<li>How will you measure achievement of your goal?</li>
</ul>
<p>So if you&#8217;re starting a new website, or even if you&#8217;re just looking at revamping an existing one, do yourself a favor, and turn off your computer. Put away the color swatches, and get out a pencil and a piece of paper, and start <span style="font-style: italic;">thinking</span> about your site.  It&#8217;s not the most fun step in building a good website.  But it is the most critical one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/the-1-mistake-when-building-a-website/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is the real cost of fraud registering with merchants?</title>
		<link>http://www.tinyqueen.com/ecommerce/is-the-real-cost-of-fraud-registering-with-merchants</link>
		<comments>http://www.tinyqueen.com/ecommerce/is-the-real-cost-of-fraud-registering-with-merchants#comments</comments>
		<pubDate>Tue, 21 Aug 2007 06:50:00 +0000</pubDate>
		<dc:creator>Tiny Queen</dc:creator>
				<category><![CDATA[Ecommerce]]></category>

		<guid isPermaLink="false">http://localhost/TinyQueen/wordpress/?p=20</guid>
		<description><![CDATA[As ecommerce grows as an industry, it becomes more and more imperative that online merchants understand and protect themselves from online fraud. There&#8217;s plenty of focus in the media about risks to consumers as far as giving up their credit card information online is concerned. But few publications concern themselves with the losses experienced by [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tinyqueen.com/images/blog/dollar-710544.jpg" alt="" class="alignleft">As ecommerce grows as an industry, it becomes more and more imperative that online merchants understand and protect themselves from online fraud. There&#8217;s plenty of focus in the media about risks to consumers as far as giving up their credit card information online is concerned. But few publications concern themselves with the losses experienced by merchants who take their sales to the Internet.</p>
<p>If you accept payment online or are considering accepting online payments, take the time to educate yourself about the risks.</p>
<p>This month, merchant911.com, an organization dedicated to educating online merchants about the risks of fraud, published their <a href="http://www.merchant911.org/preChargeReport.pdf">2007 eCommerce Chargeback Report</a>  If you are an online merchant, take a minute to read the report.  You&#8217;ll be glad you did.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tinyqueen.com/ecommerce/is-the-real-cost-of-fraud-registering-with-merchants/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

