<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/wordpress-mu-1.0" -->
<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/"
	>

<channel>
	<title>ChannelAdvisor Blog</title>
	<link>http://blog.channeladvisor.com</link>
	<description>Opinions. Insights. Discoveries.</description>
	<pubDate>Thu, 17 Jul 2008 15:39:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=wordpress-mu-1.0</generator>
	<language>en</language>
			<item>
		<title>The Feed Doctor Meets a Clever Hack</title>
		<link>http://blog.channeladvisor.com/blog/2008/06/24/the-feed-doctor-meets-a-clever-hack/</link>
		<comments>http://blog.channeladvisor.com/blog/2008/06/24/the-feed-doctor-meets-a-clever-hack/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 19:17:34 +0000</pubDate>
		<dc:creator>Anthony Alford</dc:creator>
		
		<category>Comparison Shopping</category>

		<guid isPermaLink="false">http://blog.channeladvisor.com/blog/2008/06/24/the-feed-doctor-meets-a-clever-hack/</guid>
		<description><![CDATA[Just FYI, by &#8220;hack&#8221; I mean &#8220;a clever or quick fix to a computer program problem,&#8221; not a security exploit.  When programmers talk about a &#8220;hack,&#8221; they often mean a solution that gets the job done, even though seems like it &#8220;breaks the rules,&#8221; because it uses a piece of technology in a way [...]]]></description>
			<content:encoded><![CDATA[<p>Just FYI, by &#8220;<a href="http://en.wikipedia.org/wiki/Hack_%28technology%29">hack</a>&#8221; I mean &#8220;a clever or quick fix to a computer program problem,&#8221; not a security exploit.  When programmers talk about a &#8220;hack,&#8221; they often mean a solution that gets the job done, even though seems like it &#8220;breaks the rules,&#8221; because it uses a piece of technology in a way the maker probably didn&#8217;t intend.  Sometimes this happens because the right tool for the job either doesn&#8217;t exist, or we&#8217;re too lazy to go get it&#8212;ever open a paint can with a screwdriver?</p>
<p>One of ChannelAdvisor&#8217;s own CSE experts, <a href="http://www.csestrategies.com/cse/2008/03/the-importance.html">Mark Vandegrift</a>, sent me the following hack he used to create a clever business rule for filtering.  He wanted a rule that would filter out items that did NOT have certain words in their titles.  Another way to put it is he wants a filter that only keeps items if their titles contain certain &#8220;keeper&#8221; words:</p>
<blockquote><p>But the list [of keeper words] was so long that writing the filter as NOT(CONTAINS OR CONTAINS OR CONTAINS&#8230;.) was not an option.  So instead I created a lookup list with the words/phrases I was looking for as the &#8220;Name&#8221; and something arbitrary as the &#8220;Value&#8221; (I used &#8220;vandegrift&#8221;).  I then used as part of my filter an expression that looks like this:</p>
<p>NOT(CONTAINS(<br />
  REPLACEWORDLIST(&#8221;topseller-title-search&#8221;,<br />
     TOLOWER($offername)),&#8221;vandegrift&#8221;)))</p>
<p>So the system is going through my list of &#8220;include&#8221; terms, replacing that term in the title with the arbitrary word, then looking for the arbitrary word.  Thought this was worth sharing as it could have many applications. Next time you find your self writing a long string of CONTAINS OR CONTAINS&#8230;  give this a try.
</p></blockquote>
<p>Thanks, Mark!  Of course, what this is telling me is that Mark <em>really</em> needs a new function that is to REPLACEWORDLIST as CONTAINS is to REPLACE: that is, it checks a piece of text to see if it contains words from a given list.  Call it CONTAINSWORDLIST.</p>
<p>Guess I know what I&#8217;ll be working on for my next fun project&#8230;
</p>
<p class="akst_link"><a href="http://blog.channeladvisor.com/?p=572&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_572" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.channeladvisor.com/blog/2008/06/24/the-feed-doctor-meets-a-clever-hack/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Feed Doctor on Sale</title>
		<link>http://blog.channeladvisor.com/blog/2008/05/20/feed-doctor-on-sale/</link>
		<comments>http://blog.channeladvisor.com/blog/2008/05/20/feed-doctor-on-sale/#comments</comments>
		<pubDate>Wed, 21 May 2008 01:30:28 +0000</pubDate>
		<dc:creator>Anthony Alford</dc:creator>
		
		<category>Comparison Shopping</category>

		<guid isPermaLink="false">http://blog.channeladvisor.com/blog/2008/05/20/feed-doctor-on-sale/</guid>
		<description><![CDATA[The topic for today&#8217;s post comes from Brian Wulfe, Online Marketing Manager for Richlund Ventures, Inc.  Brian and I have been having forum discussions at our Strategy and Support Center, and he&#8217;s come up with several scenarios for business rules to calculate discounted prices.  One quick note:  All the rules I&#8217;m showing [...]]]></description>
			<content:encoded><![CDATA[<p>The topic for today&#8217;s post comes from Brian Wulfe, Online Marketing Manager for Richlund Ventures, Inc.  Brian and I have been having forum discussions at our <a href="http://ssc.channeladvisor.com/forums/">Strategy and Support Center</a>, and he&#8217;s come up with several scenarios for business rules to calculate discounted prices.  One quick note:  All the rules I&#8217;m showing below use the FORMATCURRENCY function to make sure the final value is&#8230;well, formatted correctly; that is, it&#8217;s a number with no currency symbol, and exactly two digits to the right of the decimal point.</p>
<p><strong>Excluding Products from the Discount</strong><br />
Here&#8217;s Brian&#8217;s first scenario:</p>
<blockquote><p>We currently apply the business rule FORMATCURRENCY(0.95 * $currentprice) to the product price field to compute a 5% discount. How could we exclude a selection of products from that rule?</p></blockquote>
<p>Assuming the items you want to exclude were in a list called &#8220;No Discount&#8221;, I would try the following:</p>
<p><code>FORMATCURRENCY(IF(ISINLIST("No Discount",$model), 1.0, 0.95) * $currentprice) </code></p>
<p>This is the same as what you have, except instead of always multiplying the price by 0.95, we calculate a multiplier using the following logic:</p>
<ul>
<li>if the item&#8217;s model (a.k.a., &#8220;sku&#8221;) is in the list called &#8220;No Discount&#8221;, the multiplier is 1.0 (i.e., no discount)</li>
<li>otherwise, the multiplier is 0.95</li>
</ul>
<p><strong>Discounting Only Items from a Certain Manufacturer</strong><br />
Here&#8217;s the next scenario:</p>
<blockquote><p>I am trying to use the IF function to apply discount only to a single set of products and leaving everything else the same. I would like to apply this discount by looking in the Manufacturer column and finding &#8220;XYZ&#8221; and then reducing the corresponding prices by 10%.</p></blockquote>
<p>This one is just a variation of the first; instead of applying the discount to all items except certain ones, the discount is only for certain items.  So:</p>
<blockquote><p>FORMATCURRENCY(IF($manufacturer = &#8220;XYZ&#8221;,0.90,1.00) * $currentprice)</p></blockquote>
<p><strong>Multiple Discount Rates</strong><br />
Brian&#8217;s last scenario:</p>
<blockquote><p> I want to apply a blanket discount of 7% to all skus except for a particular look up list called &#8220;No Discount.&#8221;  In addition, I would like to specify unique discounts to certain categories such as &#8220;Outdoor Living&#8221; or &#8220;Appliances &gt; Ice Makers,&#8221; but I need a &#8220;wild card&#8221; as there are several different subcategories within each.</p></blockquote>
<p>Here&#8217;s what I cam up with:<br />
<code><br />
FORMATCURRENCY(<br />
SELECTCASE(<br />
ISINLIST("No Discount",$model),1.0,<br />
CONTAINS($merchantcategory,"Outdoor Living"),0.90,<br />
CONTAINS($merchantcategory,"Ice Makers"),0.95,<br />
0.93)<br />
* $currentprice)<br />
</code><br />
This is still the same pattern:  we have a logic block that computes a multiplier, which is then multiplied by the price.  However, since there are several different cases we need to consider, we&#8217;re not using the IF function.  We&#8217;re using <a href="http://blog.channeladvisor.com/blog/2007/08/06/feed-doctor-on-not-a-lookup-list/">SELECTCASE</a>.  Inside the SELECTCASE we&#8217;re using the <a href="http://blog.channeladvisor.com/blog/2007/11/18/the-feed-doctor-contains-multitudes/">CONTAINS</a> function to match the category values.</p>
<p>Another possibility, if you have lots of categories with different discounts, is to use a lookup list for that as well. You would have each discounted category in the &#8220;name&#8221; boxes, and the respective discounts in the &#8220;value&#8221; boxes. If you name the list &#8220;Category Discounts,&#8221; then your rule could look like this:<br />
<code><br />
FORMATCURRENCY(<br />
IF(ISINLIST("No Discount",$model),1.0,<br />
IFBLANK(LOOKUP("Category Discounts",$merchantcategory),"0.93"))<br />
* $currentprice) </code></p>
<p>That&#8217;s all for now.  Thanks, Brian, for sharing your ideas with us!  And you readers out there, let me hear from you.
</p>
<p class="akst_link"><a href="http://blog.channeladvisor.com/?p=570&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_570" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.channeladvisor.com/blog/2008/05/20/feed-doctor-on-sale/feed/</wfw:commentRss>
		</item>
		<item>
		<title>April ChannelAdvisor Complete Release - Shop.com CPC and more</title>
		<link>http://blog.channeladvisor.com/blog/2008/05/01/april-channeladvisor-complete-release-shopcom-cpc-and-more/</link>
		<comments>http://blog.channeladvisor.com/blog/2008/05/01/april-channeladvisor-complete-release-shopcom-cpc-and-more/#comments</comments>
		<pubDate>Thu, 01 May 2008 14:52:19 +0000</pubDate>
		<dc:creator>Rick Watson</dc:creator>
		
		<category>United Kingdom</category>

		<category>ChannelAdvisor Complete</category>

		<category>Comparison Shopping</category>

		<guid isPermaLink="false">http://blog.channeladvisor.com/blog/2008/05/01/april-channeladvisor-complete-release-shopcom-cpc-and-more/</guid>
		<description><![CDATA[I&#8217;m happy to announce that this past Saturday, ChannelAdvisor shipped its April release.  One of the major items released was Shop.com CPC Support in the US and the UK!
This new CPC model allows customers to take advantage of Shop.com &#8217;s traffic and treat it like a traditional comparison shopping engine rather than a marketplace.
To [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce that this past Saturday, ChannelAdvisor shipped its April release.  One of the major items released was <a href="http://www.channeladvisor.com/company/press_releases/2008/pr080501.html"><strong>Shop.com CPC Support in the US and the UK</strong></a>!</p>
<p>This new CPC model allows customers to take advantage of Shop.com &#8217;s traffic and treat it like a traditional comparison shopping engine rather than a marketplace.</p>
<p>To my knowledge (and if you can&#8217;t trust a Google/News/Blog search, who can you trust?), we&#8217;re the first third-party to announce support for this.  We&#8217;re seeing substantial interest in this new, easy to use channel from Shop.com and believe this immediately vaults their site into the &#8220;top tier&#8221; of paid comparison shopping engines in the US.  Did I mentioned we added support for our UK customers as well?</p>
<p>The same feed supports either the existing Shop.com marketplace (CPO) or the cost-per-click offering.  The customer&#8217;s relationship with Shop.com determines which solution they are a part of.  <a href="http://www.shop.com/about-merchantinfo-a.shtml">Here&#8217;s some more information from Shop.com directly about their different programs.</a></p>
<p><strong><em>With ChannelAdvisor?</em> </strong>Shop.com is enabled as a channel for all customers on the ChannelAdvisor Complete platform, both MarketplaceAdvisor Premium and full ShoppingAdvisor customers.  Contact your Corporate Account Manager for more details.</p>
<p><em><strong>Not with ChannelAdvisor?</strong></em> <a href="http://www.channeladvisor.com/shop/701000000000jlS.html">Get more information on how to sign up.</a>
</p>
<p class="akst_link"><a href="http://blog.channeladvisor.com/?p=567&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_567" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.channeladvisor.com/blog/2008/05/01/april-channeladvisor-complete-release-shopcom-cpc-and-more/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Feed Doctor on Proper Casing</title>
		<link>http://blog.channeladvisor.com/blog/2008/04/26/the-feed-doctor-on-proper-casing/</link>
		<comments>http://blog.channeladvisor.com/blog/2008/04/26/the-feed-doctor-on-proper-casing/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 11:17:59 +0000</pubDate>
		<dc:creator>Anthony Alford</dc:creator>
		
		<category>Comparison Shopping</category>

		<guid isPermaLink="false">http://blog.channeladvisor.com/blog/2008/04/26/the-feed-doctor-on-proper-casing/</guid>
		<description><![CDATA[I&#8217;ve been up since 5am because of the rollout today, so this post will be short and simple.  Today&#8217;s letter comes from &#8220;R.&#8221; in Winterset, IA.  He writes:
Dear Feed Doctor,
Some of my item titles are in ALL CAPS, but in my feeds I&#8217;d like to have &#8220;proper&#8221; or &#8220;title&#8221; casing, so that only [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been up since 5am because of the rollout today, so this post will be short and simple.  Today&#8217;s letter comes from &#8220;R.&#8221; in Winterset, IA.  He writes:</p>
<blockquote><p>Dear Feed Doctor,<br />
Some of my item titles are in ALL CAPS, but in my feeds I&#8217;d like to have &#8220;proper&#8221; or &#8220;title&#8221; casing, so that only the first letter of each word is capitalized.  Let me guess: I need a regex, right?
</p></blockquote>
<p>That&#8217;s a good guess, R., but we actually have a function that does just what you want.  It&#8217;s called PROPER.  It takes in a text input, and outputs that text just as you said: all the letters are lower-case, except the first letter of each word, which is upper-case.  Here&#8217;s what the R&#8217;s rule looks like:</p>
<p><code>PROPER($offername)</code></p>
<p>And here are some examples:</p>
<table align="center" border="1">
<tr>
<th>Original Title</th>
<th>Output Title (From Rule)</th>
</tr>
<tr>
<td align="center">I AM SHOUTING</td>
<td align="center">I Am Shouting</td>
</tr>
<tr>
<td align="center">i am quiet</td>
<td align="center">I Am Quiet</td>
</tr>
<tr>
<td align="center">This is a title, or nitpick this</td>
<td align="center">This Is A Title, Or Nitpick This</td>
</tr>
</table>
<p>Now, nitpickers might point out that this isn&#8217;t <em>technically</em> title casing, because PROPER will capitalize conjunctions, articles, and prepositions (&#8221;and,&#8221; &#8220;the,&#8221; &#8220;of,&#8221; etc.).  Well, they&#8217;re right.  As a nitpicker myself, I sympathize.  If it really bothers you, write to me and we&#8217;ll come up with a regular expression or something to fix it.
</p>
<p class="akst_link"><a href="http://blog.channeladvisor.com/?p=565&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_565" class="akst_share_link" rel="nofollow">Share This</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.channeladvisor.com/blog/2008/04/26/the-feed-doctor-on-proper-casing/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
