<?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>Web Development, SEO and Project Management</title>
	<atom:link href="http://www.webopius.com/content/feed" rel="self" type="application/rss+xml" />
	<link>http://www.webopius.com/content</link>
	<description>Web Design &#38; Development, SEO and Project Management</description>
	<lastBuildDate>Sun, 29 Jan 2012 16:11:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Dynamic stock availability and sizes in ASPDotNetStorefront category pages</title>
		<link>http://www.webopius.com/content/521/dynamic-stock-availability-and-sizes-in-aspdotnetstorefront-category-pages</link>
		<comments>http://www.webopius.com/content/521/dynamic-stock-availability-and-sizes-in-aspdotnetstorefront-category-pages#comments</comments>
		<pubDate>Sun, 29 Jan 2012 16:11:14 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[General news]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[ecommerce]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=521</guid>
		<description><![CDATA[Webopius have recently developed a new Web Service based enhancement for ASPDotNetStorefront (ASPDNSF) ecommerce systems that enables product stock availability and sizes to be displayed as your Customer hovers their cursor over product images in category pages. Let&#8217;s show you with a picture&#8230; In the picture above, the Customer is viewing belts. They&#8217;ve moved their [...]]]></description>
			<content:encoded><![CDATA[<p>Webopius have recently developed a new Web Service based enhancement for ASPDotNetStorefront (ASPDNSF) ecommerce systems that enables product stock availability and sizes to be displayed as your Customer hovers their cursor over product images in category pages.</p>
<p>Let&#8217;s show you with a picture&#8230;</p>
<p><a href="http://www.webopius.com/content/wp-content/uploads/2012/01/dynamicsizes.png"><img src="http://www.webopius.com/content/wp-content/uploads/2012/01/dynamicsizes.png" alt="ASPDNSF Stock display" title="ASPDotNetStorefront dynamic stock and sizes" width="592" height="816" class="alignnone size-full wp-image-522" /></a></p>
<p>In the picture above, the Customer is viewing belts. They&#8217;ve moved their mouse over the middle belt product image and using the Webopius enhancement, an Ajax call is made to the product database to retrieve that product&#8217;s stock and size availability.</p>
<p>It then draws these on screen allowing the Customer to immediately see that size &#8216;Small/Medium (30in-33in)&#8217; is unavailable while Large/X-Large is available. Even better, they can simply click on an available size and this product will be added to their ASPDotNetStorefront cart in the correct size and colour.</p>
<p>If you&#8217;d like your ASPDotNetStorefront ecommerce website to be enhanced with features such as this, or other custom enhancements, <a href="/enquiry.php">then please contact us for a no obligation quote</a>.</p>
<p>Other recent ASPDotNetStorefront work includes:</p>
<p>- Powersearch system; shows search results as the Customer types words in the search box<br />
- Lightweight Minicart that allows products to be added to the basket from any page<br />
- ERP integration (ASPDotNetStorefront orders are automatically sent to your fulfilment systems, stock levels are updated and returns are handled)<br />
- Custom fields in Customer account pages (e.g. loyalty card scheme card number entry and validation)</p>
<p>Webopius is an independent UK-Based ASPDotNetStorefront development company with extensive development and project management experience enhancing every type of ASPDotNetStorefront ecommerce version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/521/dynamic-stock-availability-and-sizes-in-aspdotnetstorefront-category-pages/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto switching of content based on Visitor&#8217;s country for ASPDotNetStorefront</title>
		<link>http://www.webopius.com/content/514/auto-switching-of-content-based-on-visitors-country-for-aspdotnetstorefront</link>
		<comments>http://www.webopius.com/content/514/auto-switching-of-content-based-on-visitors-country-for-aspdotnetstorefront#comments</comments>
		<pubDate>Sun, 05 Jun 2011 11:06:36 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[ecommerce]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=514</guid>
		<description><![CDATA[Many of our European ASPDotNetStorefront (ASPDNSF) clients often ask for content or currencies to be automatically changed depending on the visitor&#8217;s country using their IP address to work out which country they are browsing from. When a visitor lands on an ASPDotNetStorefront site, their IP address is used to determine which country they are from. [...]]]></description>
			<content:encoded><![CDATA[<p>Many of our European ASPDotNetStorefront (ASPDNSF) clients often ask for content or currencies to be automatically changed depending on the visitor&#8217;s country using their IP address to work out which country they are browsing from.</p>
<p>When a visitor lands on an ASPDotNetStorefront site, their IP address is used to determine which country they are from. Then, content, languages and currencies can be automatically set for that visitor without them having to use the relatively slow standard &#8216;change currency&#8217; drop down within ASPDotNetStorefront.  This gives a much more dynamic and tailored ecommerce experience to your users.</p>
<p>Using the excellent Geo Location database from MaxMind (see link to the right), it is possible to auto-detect a visitor&#8217;s country based on their IP address with about a 99.5% level of accuracy.</p>
<blockquote class="citeright"><p>
<a href="http://www.maxmind.com/app/geolitecountry" rel="nofollow">MaxMind GeoIP address</a>
</p></blockquote>
<h2>Custom GeoIP Module for ASPDotNetStorefront</h2>
<p>Webopius have developed a module for ASPDotNetStorefront that takes a visitor&#8217;s IP address, then uses the MaxMind database to work out which country they are from. Once we have the country information, we can dynamically change content, languages and/or currency details within the store to match that visitors expectations.</p>
<p>Some of our customers also use this technique to make specific products or promotions available in specific countries. Other ASPDotNetStorefront entities such as categories and manufacturers can also be auto-filtered based on the visitor&#8217;s country.</p>
<p>If you would like further information about this module or on other custom <a href="/content/tag/aspdotnetstorefront" title="ASPDotNetStorefront ASPDNSF">ASPDotNetStorefront</a> development work for your site, then <a href="http://www.webopius.com/enquiry.php">please contact us by clicking here</a>.</p>
<p>Webopius is an independent, UK-based company specialising in ASPDotNetStorefront (ASPDNSF) development work and ecommerce project management. We have extensive experience of both simple and more complex ASPDotNetStorefront development including:</p>
<ul>
<li><a href="http://www.webopius.com/content/452/consorzio-triveneto-payment-gateway-for-aspdotnetstorefront-mldnn">Custom payment processing gateways</a></li>
<li>Warehouse system integration systems</li>
<li><a href="http://www.webopius.com/content/511/more-aspdotnetstorefront-modules-for-v9-and-multistore">ERP integration with ASPDotNetStorefront</a></li>
<li><a href="http://www.webopius.com/content/492/complex-shipping-in-aspdotnetstorefront">Complex shipping systems</a></li>
<li>Automated inventory level updates</li>
<li><a href="http://www.webopius.com/content/487/high-volume-fast-product-data-importing-in-aspdotnetstorefront">High performance product import system for ASPDotNetStorefront</a></li>
<li><a href="http://www.webopius.com/content/511/more-aspdotnetstorefront-modules-for-v9-and-multistore">&#8216;Powersearch&#8217; system for ASPDotNetStorefront</a></li>
<li><a href="http://www.webopius.com/content/460/integrating-wordpress-aspdotnetstorefront-aspdnsf">Integrating WordPress and blogs with ASPDotNetStorefront</a></li>
<li><a href="http://www.webopius.com/content/511/more-aspdotnetstorefront-modules-for-v9-and-multistore">Show your Twitter tweets on your ASPDotNetStorefront store home page</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/514/auto-switching-of-content-based-on-visitors-country-for-aspdotnetstorefront/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More ASPDotNetStorefront modules for v9 and Multistore</title>
		<link>http://www.webopius.com/content/511/more-aspdotnetstorefront-modules-for-v9-and-multistore</link>
		<comments>http://www.webopius.com/content/511/more-aspdotnetstorefront-modules-for-v9-and-multistore#comments</comments>
		<pubDate>Sat, 14 May 2011 17:40:13 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[General news]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[erp]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=511</guid>
		<description><![CDATA[It&#8217;s been some time since we wrote about work we&#8217;ve done with ASPDotNetStorefront, so I thought I&#8217;d write a brief post to let you know about some of the more recent modules we&#8217;ve written for ASPDotNetStorefront. 3EX Module for ASPDotNetStorefront You may have read about the work we&#8217;ve done integrating ASPDotNetStorefront into the Royal Mail [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been some time since we wrote about work we&#8217;ve done with ASPDotNetStorefront, so I thought I&#8217;d write a brief post to let you know about some of the more recent modules we&#8217;ve written for ASPDotNetStorefront.</p>
<h2>3EX Module for ASPDotNetStorefront</h2>
<p>You may have read about the work we&#8217;ve done <a href="/content/283/integrating-aspdotnetstorefront-aspdnsf-with-royal-mail-warehousing">integrating ASPDotNetStorefront into the Royal Mail warehouse system</a>.</p>
<p>Well, we&#8217;ve continued this work and have written a custom module for a client that integrates with the 3EX platform. It can send orders from ASPDotNetStorefront directly to 3EX, receive status updates and also dynamically update product prices and inventory levels.</p>
<h2>Epicor Module for ASPDotNetStorefront</h2>
<p>Again, as above, another piece of custom work that integrates ASPDotNetStorefront with the Epicor ERP platform. Automated order processing and status updates.</p>
<h2>Twitter module</h2>
<p>Do you want your latest Tweets visible on your store&#8217;s homepage? With a small custom control we&#8217;ve written for ASPDotNetStorefront you can now do this.</p>
<h2>Powersearch system for ASPDotNetStorefront</h2>
<p>Are your customers still searching your site by typing into the search box, clicking &#8216;go&#8217; and then paging through the results before hitting the back button to try again when they can&#8217;t find what they need?   Why not take a look at our advanced Powersearch system for ASPDotNetStorefront? You can see an <a href="http://www.nutricentre.com/">example running here</a>.</p>
<p>Start typing in the search box and after 3 characters, the site will dynamically (and quickly) bring back the search results as you type. Not only that but it will provide a filter system to the left of the page that allows your customer to refine their results by price, manufacturer etc.</p>
<p>The advantage is that your visitors see immediately whether what they are typing matches the results, they are encourage to click products (and can add them to the cart immediately) and they try out different search terms without leaving the page making the whole experience much more interactive.</p>
<h2>Affiliate system returned orders feed</h2>
<p>If you are using an affiliate system with your ASPDotNetStorefront installation, they will be taking a commission for each affiliated order made on your site.</p>
<p>If these orders are subsequently refunded, you need a way to tell your affiliate system provider otherwise you&#8217;ll incur commission fees unnecessarily.</p>
<p>Our affiliate feed will retrieve all refunded, voided, cancelled orders within a time window, package them up into a format required by your affiliate provider and send them via FTP.  As a result, they should credit or refund the commission taken on these orders.</p>
<h2>Scheduled GoogleBase feed (and other feeds) for ASPDotNetStorefront</h2>
<p>ASPDotNetStorefront includes a feed system that can extract products, categories and other data and send this to a third party system. Typically this would be a provider such as Google or Amazon and also Affiliate system providers.</p>
<p>The standard ASPDotNetStorefront install requires these feeds to be manually launched from the admin pages.</p>
<p>With our module, you can now run any of these feeds as a scheduled task using the Windows task scheduler. This can ensure that sites such as GoogleBase always have the latest copy of your product data.</p>
<p>To discuss any of these modules, or other <a href="/enquiry.php">custom work for ASPDotNetStorefront, please contact us</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/511/more-aspdotnetstorefront-modules-for-v9-and-multistore/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Saferpay payment gateway for ASPDotNetStorefront</title>
		<link>http://www.webopius.com/content/508/saferpay-payment-gateway-for-aspdotnetstorefront</link>
		<comments>http://www.webopius.com/content/508/saferpay-payment-gateway-for-aspdotnetstorefront#comments</comments>
		<pubDate>Wed, 01 Dec 2010 19:53:54 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[General news]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[saferpay]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=508</guid>
		<description><![CDATA[The latest payment gateway we&#8217;ve built for ASPDotNetStorefront (ASPDNSF) allows payments to be captured and processed using the Saferpay e-payment system from SIX Card Solutions (see link to the right). Saferpay Saferpay is one of the leading payment solutions in German-speaking Europe and is implemented within ASPDotNetStorefront as a &#8216;boomerang&#8217; gateway that takes the Customer [...]]]></description>
			<content:encoded><![CDATA[<p>The latest payment gateway we&#8217;ve built for ASPDotNetStorefront (ASPDNSF) allows payments to be captured and processed using the Saferpay e-payment system from SIX Card Solutions (see link to the right).</p>
<blockquote class="citeright"><p>
<a href="http://www.six-card-solutions.com/EN/Merchants/E-Payment/Pages/E-Payment.aspx" rel="nofollow">Saferpay</a>
</p></blockquote>
<p>Saferpay is one of the leading payment solutions in German-speaking Europe and is implemented within ASPDotNetStorefront as a &#8216;boomerang&#8217; gateway that takes the Customer to the Saferpay hosted pages to enter their card details and once completed, the Customer is returned to your ASPDotNetStorefront store.</p>
<p>If you are interested in using the Saferpay solution within your own store, then <a href="/enquiry.php">please contact us for more information</a>. Please also look at the other <a href="/content/aspdotnetstorefront-aspdnsf-development-services">ASPDotNetStorefront development services that we can offer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/508/saferpay-payment-gateway-for-aspdotnetstorefront/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>University of Wales shop launches</title>
		<link>http://www.webopius.com/content/506/university-of-wales-shop-launches</link>
		<comments>http://www.webopius.com/content/506/university-of-wales-shop-launches#comments</comments>
		<pubDate>Fri, 12 Nov 2010 13:37:30 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[General news]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[ecommerce]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=506</guid>
		<description><![CDATA[We&#8217;re very proud to announce that the new University of Wales Shop has launched. This site was built using ASPDotNetStorefront version 8 with significant customisations to support features such as the display certificates. In addition to the core customisation of ASPDotNetStorefront, JQuery was used to create some of the onscreen effects. The site also uses [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re very proud to announce that the new <a href="https://www.wales.ac.uk/Shop/">University of Wales Shop</a> has launched. This site was built using ASPDotNetStorefront version 8 with significant customisations to support features such as the display certificates.</p>
<p>In addition to the core customisation of ASPDotNetStorefront, JQuery was used to create some of the onscreen effects. </p>
<p>The site also uses a number of Webopius ASPDotNetStorefront custom modules including the sort by price/size, SagePay error reporting (to explain why a card transaction may have failed) and some enhanced ASPDNSF Stored Procedures.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/506/university-of-wales-shop-launches/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solution for ASPDotNetStorefront v9 when banning a Customer&#8217;s IP address</title>
		<link>http://www.webopius.com/content/498/solution-for-aspdotnetstorefront-v9-when-banning-a-customers-ip-address</link>
		<comments>http://www.webopius.com/content/498/solution-for-aspdotnetstorefront-v9-when-banning-a-customers-ip-address#comments</comments>
		<pubDate>Thu, 07 Oct 2010 21:56:34 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=498</guid>
		<description><![CDATA[I haven&#8217;t posted for a while, so I&#8217;ll start things rolling again with a nice simple fix for any ASPDotNetStorefront (ASPDNSF) users experiencing this issue. Blocking your own IP Address out of the site In ASPDotNetStorefront v9, when you are editing a Customer as a site administrator and you click the &#8216;Ban this IP address&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t posted for a while, so I&#8217;ll start things rolling again with a nice simple fix for any ASPDotNetStorefront (ASPDNSF) users experiencing this issue.</p>
<h3>Blocking your own IP Address out of the site</h3>
<p>In ASPDotNetStorefront v9, when you are editing a Customer as a site administrator and you click the &#8216;Ban this IP address&#8217; button, we&#8217;ve sometimes found that the site will ban YOUR IP address rather than the Customer you are editing. This can leave you in a tricky situation where you are unable to log into your own site unless you un-ban yourself using the database.</p>
<h3>Quick fix for the Ban this IP address issue</h3>
<p>If your site is experiencing this issue, there&#8217;s a very quick fix that worked for us:</p>
<p>- Edit the file &#8216;editcustomer.ascx.cs&#8217; within your site&#8217;s admin \Controls directory<br />
- At about line 400, look for this line of code:</p>
<p><code><br />
DB.ExecuteSQL(&quot;exec [dbo].[aspdnsf_insRestrictedIP] @IPAddress=&quot; + DB.SQuote(ThisCustomer.LastIPAddress), conn);<br />
<!--formatted--></code></p>
<p>- Change this line to:</p>
<p><code><br />
DB.ExecuteSQL(&quot;exec [dbo].[aspdnsf_insRestrictedIP] @IPAddress=&quot; + DB.SQuote(m_TargetCustomer.LastIPAddress), conn);<br />
<!--formatted--></code></p>
<p>That&#8217;s it! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/498/solution-for-aspdotnetstorefront-v9-when-banning-a-customers-ip-address/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complex Shipping in ASPDotNetStorefront</title>
		<link>http://www.webopius.com/content/492/complex-shipping-in-aspdotnetstorefront</link>
		<comments>http://www.webopius.com/content/492/complex-shipping-in-aspdotnetstorefront#comments</comments>
		<pubDate>Wed, 28 Jul 2010 19:15:00 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[Web Content Pages]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[ecommerce]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=492</guid>
		<description><![CDATA[ASPDotNetStorefront has many different ways for you to set shipping by order total, order weight, fixed shipping prices or percentages of the total. Recently, some of our clients have been asking for more complex shipping solutions, for example, where shipping restrictions need to be implemented or when one particular product triggers an additional shipping cost. [...]]]></description>
			<content:encoded><![CDATA[<p>ASPDotNetStorefront has many different ways for you to set shipping by order total, order weight, fixed shipping prices or percentages of the total.</p>
<p>Recently, some of our clients have been asking for more complex shipping solutions, for example, where shipping restrictions need to be implemented or when one particular product triggers an additional shipping cost.</p>
<p>During the past month, we have implemented the following shipping solutions in ASPDotNetStorefront MLv9 (but the same changes should also be possible in v7 and v8):</p>
<p>- Shipping costs that vary by product type<br />
- Additional shipping costs for specific products<br />
- Restricted shipping for certain products (e.g. product x cannot be shipped to country y)<br />
- Shipping method restrictions (e.g. product x cannot be shipped via Air)</p>
<p>At checkout, the Customer is shown a clear description of their shipping costs along with any rules that have applied to their cart. They have the choice of adjusting the cart at this stage to alter the shipping costs applied.</p>
<p>If your business has a requirement for more complex shipping solutions than provided in the <a href="http://www.webopius.com/enquiry.php">standard ASPDotNetStorefront installation, then get in touch and Webopius</a> will be able to discuss your specific requirements.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/492/complex-shipping-in-aspdotnetstorefront/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax product comments module for AspDotNetStorefront</title>
		<link>http://www.webopius.com/content/490/ajax-product-comments-module-for-aspdotnetstorefront</link>
		<comments>http://www.webopius.com/content/490/ajax-product-comments-module-for-aspdotnetstorefront#comments</comments>
		<pubDate>Mon, 05 Jul 2010 15:07:16 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[General news]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[modules]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=490</guid>
		<description><![CDATA[In ASPDotNetStorefront version 9, there is more use of Ajax within the product including areas such as the new Minicart, Kit Products and some administration pages. Well-written Ajax pages give a site a much more interactive feel without the constant need for page refreshes to generate new content each time something is clicked. Unfortunately, at [...]]]></description>
			<content:encoded><![CDATA[<p>In ASPDotNetStorefront version 9, there is more use of Ajax within the product including areas such as the new Minicart, Kit Products and some administration pages.</p>
<p>Well-written Ajax pages give a site a much more interactive feel without the constant need for page refreshes to generate new content each time something is clicked.</p>
<p>Unfortunately, at the time of writing this article, there are still a number of areas within ASPDotNetStorefront that could benefit from Ajax. One of these is the product ratings / product comments system.</p>
<h2>An Ajax product comments module for ASPDotNetStorefront</h2>
<p>Currently, within ASPDotNetStorefront MLv9 (and earlier releases), product ratings and comments can be shown within the product page. To add a new rating, a customer is presented with a popup window where they enter their rating. They then click submit and the product page is refreshed with the new details.</p>
<p>As more comments for the product are entered, the customer can move between different pages of comments &#8211; again, this involves refreshing the same product page.</p>
<p>We didn&#8217;t feel the existing comment/rating system was suitable so Webopius recently built a new Ajax-based product comments module for a client that has the following features:</p>
<ul>
<li>New product comments can be entered directly on the page without refreshing</li>
<li>Comments enter a moderation queue and a new administration page allows site owners to filter comments before they are published</li>
<li>It is now possible to move between pages of comments dynamically on the page without requiring a page refresh</li>
<li>The comments block can be collapsed and hidden from view by the user</li>
<li>The system records the details of the user submitting the comment but the user can choose a display name themselves to keep the comment anonymous</li>
<li>New comments are validated at the time the customer submits and basic errors are reported back to them immediately</li>
</ul>
<p>If you would like a similar <strong>Ajax ASPDotNetStorefront module</strong> installed within your <a href="/enquiry.php">ASPDotNetStorefront site (including versions 7,8 or 9) then please get in touch with us to discuss your requirements</a>. Almost anything is possible with ASPDotNetStorefront, in many cases without requiring the source code and Webopius have extensive experience of extending and modifying the product for both large and small customers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/490/ajax-product-comments-module-for-aspdotnetstorefront/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>High volume, fast product data importing in ASPDotNetStorefront</title>
		<link>http://www.webopius.com/content/487/high-volume-fast-product-data-importing-in-aspdotnetstorefront</link>
		<comments>http://www.webopius.com/content/487/high-volume-fast-product-data-importing-in-aspdotnetstorefront#comments</comments>
		<pubDate>Sat, 03 Jul 2010 11:29:18 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[ecommerce]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=487</guid>
		<description><![CDATA[If you have up to a few thousand products and variants in your ASPDotNetStorefront store then this article may not be of interest to you. The ASPDotNetStorefront ecommerce platform comes pre-configured with Excel and XML-based import routines along with the WSI interface. Once you get beyond a few thousand products, you may find yourself looking [...]]]></description>
			<content:encoded><![CDATA[<p>If you have up to a few thousand products and variants in your ASPDotNetStorefront store then this article may not be of interest to you. The ASPDotNetStorefront ecommerce platform comes pre-configured with Excel and XML-based import routines along with the WSI interface.</p>
<p>Once you get beyond a few thousand products, you may find yourself looking for a faster method of importing products into your store. This is almost certainly going to be the case if you regularly need to update your products along with pricing and stock availability.</p>
<h2><strong>High volume product import for ASPDotNetStorefront</strong></h2>
<p>Webopius have recently developed a high-volume ASPDotNetStorefront import module for a couple of clients. In one case, the client have in excess of 100,000 products that they need to update daily. The updating involved creating new products, updating existing products, handling variants, category mapping, pricing and inventory &#8211; a lot to do quickly.</p>
<p>Using the standard ASPDotNetStorefront import methods on this number of products took hours to run. Even our initial attempt to develop a module resulted in a processing speed of approximately 1,000 products a minute. Fast, but not fast enough.</p>
<p>By making some enhancements to the code, at the time of writing this article we now able to import and update between approximately 10,000 and 15,000 products per minute. [Note: Of course, performance will vary depending on many factors and each installation is different]</p>
<h2>Performance tuning the ASPDotNetStorefront product import</h2>
<p>The high-level steps we took to create a fast product importer are listed below. If you would like Webopius to create a custom <a href="/enquiry.php">product import system for your ASPDotNetStorefront site, then please contact us</a>.</p>
<p><strong>1. Use XML as the source format</strong></p>
<p>The first step we took was to get the source data into an XML format. XML is the ideal language of choice for ASPDotNetStorefront, SQL Server and ASP.Net. The resulting files can be parsed and passed quickly between the various site components.</p>
<p><strong>2. Use XMLTextReader to parse and read the source file</strong></p>
<p>If you&#8217;ve ever looked through Microsoft&#8217;s XML documentation, you&#8217;ll see there are a myriad of ways to read and write XML &#8211; XMLReader, XMLTextReader, XPathNavigator, XmlDocument &#8230;</p>
<p>XMLTextReader is ideal for processing large XML document streams. It reads forward through the file without doing a great deal of validation or using XPath/XSLT. Basically, it&#8217;s quick.</p>
<p><strong>3. Process the data in batches</strong></p>
<p>Rather than processing the data a product at a time, you should process blocks of products in one go. In our case, we read 1,000 products, then package them up in a single call to the database.</p>
<p>If you don&#8217;t do this, every product incurs one or more calls to the database and slows the processing down significantly.</p>
<p><strong>4. Move all processing to the database</strong></p>
<p>Of all the performance tuning, this is the one for focus your effort on. Move as much of your data checks and processing to SQL Server as possible.</p>
<p>SQL Server is a data crunching powerhouse. Why do product SKU lookups or Category mapping in your C# or VB code when calling the database can do the same job hundreds of times faster?</p>
<p>Originally, our code logic looked something like this:</p>
<p>- Take product SKU from XML, call the database to get a Product ID<br />
- If ProductID was 0 (SKU not found), then this is a new Product, DB insert needed, otherwise DB Update needed<br />
- If insert performed, lookup the new ProductID for the Category mapping<br />
- For each category mapping in the XML source file&#8230;<br />
- Look for an existing category mapping, create one if none exists<br />
- Delete any mappings that aren&#8217;t in the XML source file.</p>
<p>A sensible approach but crazy when SQL Server is sitting around waiting to do the job for you. We moved as much of the ASPDotNetStorefront import processing into SQL Server stored procedures as possible. We pass the batch of 1,000 products in XML format to a custom written stored procedure that create/update products and variants and a second procedure to handle the category mappings.  This second category mapping procedure was the most complex to write as it has to handle deleting category mappings accurately and quickly.</p>
<p>The new code logic looks something like this</p>
<p>- Pass 1,000 Products in XML format to SQL Server<br />
- [In Database], Move the XML source file into a temporary database table<br />
- [In Database], Lookup the ProductIDs based on the XML SKU field value<br />
- [In Database], Any non-matching SKUs will have a Product ID of 0, insert new products and variants for these<br />
- [In Database], For the other non-zero Product IDs, update products and variants<br />
- Pass Category mappings for 1,000 Products in XML format to SQL Server<br />
- [In Database], Create new Product Category mappings based on XML file<br />
- [In Database], Remove any Product Category mappings for the products in XML where category IDs don&#8217;t exist in the source file.</p>
<p><strong>5. Optimize your ASPDotNetStorefront SQL Server indexes</strong></p>
<p>Finally, we took each of the key SQL Select statements used in the above processing and ran them through an Execution Plan in SQL Server Management Studio.<br />
This highlighted a number of areas where additional indexes could be created to increase performance &#8211; particularly in the SKU lookup step.</p>
<h2>High volume, fast product data importing in ASPDotNetStorefront</h2>
<p>If you would like a custom product importer written for your <a href="/enquiry.php">ASPDotNetStorefront site, then please get in touch</a>. In addition to the module described above, other examples of import/export modules Webopius have written include:</p>
<ul>
<li>Excel-based product importer supporting multiple languages</li>
<li>XML product importer to enhance product listings with data from ICECAT.biz</li>
<li>Excel importer with custom field support such as Author, Account codes, Publisher etc.</li>
<li>XML export routine to auto notify warehouse provider of new orders, also updates ASPDNSF shipping dates, tracking details</li>
</ul>
<p><a href="http://www.webopius.com/content/tag/aspdotnetstorefront">Other articles about ASPDotNetStorefront</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/487/high-volume-fast-product-data-importing-in-aspdotnetstorefront/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom product, order and inventory feeds for ASPDotNetStorefront</title>
		<link>http://www.webopius.com/content/484/custom-product-order-and-inventory-feeds-for-aspdotnetstorefront</link>
		<comments>http://www.webopius.com/content/484/custom-product-order-and-inventory-feeds-for-aspdotnetstorefront#comments</comments>
		<pubDate>Mon, 21 Jun 2010 12:34:20 +0000</pubDate>
		<dc:creator>Webopius</dc:creator>
				<category><![CDATA[commercial]]></category>
		<category><![CDATA[aspdotnetstorefront]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[modules]]></category>

		<guid isPermaLink="false">http://www.webopius.com/content/?p=484</guid>
		<description><![CDATA[ASPDotNetStorefront (ASPDNSF) ships with a number of methods to get product information imported into your site including Excel-based product importing and the Web Services Interface (WSI). Sometimes, your business needs a more complex, scheduled solution that can automatically update your product, category, manufacturer and inventory data based on external data sources or triggers. Alternatively, you [...]]]></description>
			<content:encoded><![CDATA[<p>ASPDotNetStorefront (ASPDNSF) ships with a number of methods to get product information imported into your site including Excel-based product importing and the Web Services Interface (WSI). </p>
<p>Sometimes, your business needs a more complex, scheduled solution that can automatically update your product, category, manufacturer and inventory data based on external data sources or triggers.  Alternatively, you may want to notify third party providers of changes to your product or order date. This can include ERP, Accounting, CRM, Warehouse and Fulfilment systems.</p>
<h2>Custom ASPDotNetStorefront (ASPDNSF) automated data updates</h2>
<p>Webopius have developed a number of custom in-bound and out-bound data feeds for ASPDotNetStorefront. We can integrate with almost any system that can provide data as XML, CSV, Excel, via an API or other file formats.</p>
<p>Some examples of custom data modules we have developed for ASPDotNetStorefront&#8230;</p>
<ul>
<li>Enhanced Excel product and category importers</li>
<li>Inbound inventory feed that automatically updates product stock levels based on warehouse stock/customer returns. Runs daily.</li>
<li>Outbound order feed to a fulfilment provider &#8211; notifies them of new orders and updates the ASPDNSF shipped/tracking info as items are shipped. Runs hourly.</li>
<li>Inbound product feed from <strong>ICECAT</strong></li>
<li>Inbound XML product and inventory feed module based on data from third party product database</li>
</ul>
<p>None of the above modules have required changing the core ASPDotNetStorefront source code and most sit alongside the existing store and are scheduled to run on a regular basis.</p>
<p>If you would like to enhance your ASPDNSF site with near real-time data updates, then <a href="/enquiry.php">contact Webopius with your ASPDotNetStorefront requirements for a no obligation estimate</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webopius.com/content/484/custom-product-order-and-inventory-feeds-for-aspdotnetstorefront/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.673 seconds -->
<!-- Cached page served by WP-Cache -->

