<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Spree News</title>
    <link>http://spreehq.org/rss/</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Latest news concerning the Spree commerce project for Ruby on Rails.</description>
    
    
        <item>
          <title>Integrated SSL Support</title>
          <description>&lt;p&gt;Spree has just added SSL support using the excellent &lt;a href=&quot;http://github.com/rails/ssl_requirement/tree/master&quot;&gt;ssl_requirement&lt;/a&gt; plugin written by DHH.  Now the credit card payment and order summary pages are served up using &lt;code&gt;HTTPS&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You will need an SSL certificate for your production site (obviously) along with a proper virtual host setup for the 443 port.  Don&amp;#8217;t forget to use the following to ensure that Mongrel is able to tell which requests are already over &lt;code&gt;HTTPS&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;RequestHeader set X_FORWARDED_PROTO 'https'&lt;/pre&gt;

&lt;p&gt;The default behavior of the &lt;code&gt;ssl_requirement&lt;/code&gt; plugin is to not require SSL for any of the pages when running in development mode.  If you don&amp;#8217;t want to use SSL in production mode, just comment out the &lt;code&gt;ssl_required&lt;/code&gt; lines in your controllers.  You might also want to check out &lt;a href=&quot;http://www.subelsky.com/2007/11/testing-rails-ssl-requirements-on-your.html&quot;&gt;this&lt;/a&gt; interesting blog post by Mike Subelsky for more information on working with SSL in Rails.&lt;/p&gt;

&lt;p&gt;Special thanks to Ricardo Shiota Yasuda (&lt;a href=&quot;http://github.com/shadow11&quot;&gt;shadow11&lt;/a&gt;) for providing and testing the patch.&lt;/p&gt;</description>
          <pubDate>Thu, 20 Nov 2008 19:26:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/11/20/integrated-ssl-support/</guid>
          <link>http://spreehq.org/articles/2008/11/20/integrated-ssl-support/</link>
        </item>
    
        <item>
          <title>Shipping Framework</title>
          <description>&lt;p&gt;Spree now includes a complete shipping framework that allow you to configure shipping for your exact needs. Shipping is implemented through a combination of zones and calculators.  The core shipping extension in Spree adds several columns to the variant table to assist in shipping. Each product variant has a weight, height, width and depth field. There is an assumption of an implicit common unit of measurment for each of these fields.&lt;/p&gt;

&lt;p&gt;The core shipping extension also adds a shipping_category field to the Product model. Products can be assigned to zero or one shipping category. The shipping_category field is entirely optional. Shipping calculators can be designed to take advantage of this category information or ignore it entirely.&lt;/p&gt;

&lt;p&gt;Each of the shipping methods relies on a calculator to determine the actual shipping costs. Calculators contain a calculate_shipping method to which you pass an Order object. The order contains an Address which is the shipping address as well as LineItems which contain references to the Variants and their quantities.&lt;/p&gt;

&lt;p&gt;It is our experience that most applications require very specific logic for their shipping needs. Most open source platforms fall into the trap of trying to integrate a shipping solution that attempts to meet everyone’s needs. Spree takes a different approach. Spree comes with a simple flat rate shipping option as well as the ability to turn off shipping all together (just remove the shipping extension.) It is expected that you will either develop your own shipping extension or use an existing third party extension. Spree puts an emphasis on making it easier to customize the piece that always ends up needing to be customized anyways.&lt;/p&gt;

&lt;p&gt;Please see the &lt;a href=&quot;http://support.spreehq.org/wiki/1/Shipping&quot;&gt;shipping chapter&lt;/a&gt; of the user&amp;#8217;s guide for more details.  Also, be sure to checkout the &lt;a href=&quot;http://support.spreehq.org/wiki/1/Extensions_listing&quot;&gt;extensions listing&lt;/a&gt; for more information on all of the shipping and other Spree extensions.  &lt;/p&gt;</description>
          <pubDate>Tue, 11 Nov 2008 10:28:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/11/11/shipping-framework/</guid>
          <link>http://spreehq.org/articles/2008/11/11/shipping-framework/</link>
        </item>
    
        <item>
          <title>OpenID Extension</title>
          <description>&lt;p&gt;The new &lt;a href=&quot;http://github.com/schof/spree-open-id/tree/master&quot;&gt;openid extension&lt;/a&gt; for Spree is now available.  The business logic included in this extension provides sensible defaults for various user authentication/creation scenarios.  Feel free to fork and modify to taste.&lt;/p&gt;

&lt;p&gt;The authorizaiton requests make user of the &lt;a href=&quot;http://openid.net/specs/openid-simple-registration-extension-1_0.html&quot;&gt;OpenID Simple Registration Extension 1.0&lt;/a&gt; when possible.  So if the OpenID provider supports this specification, then requested user information (by default only email) will be returned as &lt;code&gt;sreg&lt;/code&gt; parameters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Authentication&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Authentication refers to the login screen where the user is asked to supply their email and password (or OpenID.)  If the user provides an openid url then they will be taken to the standard login screen for that user&amp;#8217;s provider.  Upon successful authentication, the url will be checked against existing users in the Spree database.  The user is authorized if a record is found with a matching url.  &lt;em&gt;(See also auto creation for other scenarios.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Creation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the user successfully authenticates via OpenID but there is no user with a corresponding URL, then Spree will attempt to create a new account automatically.  If there is an &lt;code&gt;sreq&lt;/code&gt; parameter for email, we first check to see if there is a user with a corresponding email.  &lt;/p&gt;

&lt;p&gt;If there is a matching email, the user will be presented with a screen and given the opportunity to associate this openid url with their account.  In order to do so, the user must enter their original password in order to prevent malicious attempts to hijack another user&amp;#8217;s account.&lt;/p&gt;

&lt;p&gt;If no matching email is found then Spree will ask the user to &amp;#8220;complete&amp;#8221; the account creation process by supplying a valid email.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;script/extension install git://github.com/schof/spree-open-id.git&lt;/pre&gt;</description>
          <pubDate>Mon, 10 Nov 2008 17:02:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/11/10/openid-extension/</guid>
          <link>http://spreehq.org/articles/2008/11/10/openid-extension/</link>
        </item>
    
        <item>
          <title>Rails 2.1.2 Support</title>
          <description>&lt;p&gt;The edge version of Spree now requires Rails 2.1.2.  We just upgraded to the latest version of &lt;a href=&quot;http://github.com/giraffesoft/resource_controller/tree/master&quot;&gt;resource_controller&lt;/a&gt; which seemed to have resolved issues people were experiencing when attempting to use the earlier Rails 2.1.1 release with Spree.  &lt;/p&gt;

&lt;p&gt;Since Spree uses SEO friendly permalinks, we need to make a few minor changes to the &lt;code&gt;resource_controller&lt;/code&gt; plugin.  Those changes are being tracked in a github &lt;a href=&quot;http://github.com/schof/resource_controller/tree/master&quot;&gt;fork&lt;/a&gt; which you may be intersted in using if you require further modifications to &lt;code&gt;resource_controller.&lt;/code&gt;&lt;/p&gt;</description>
          <pubDate>Mon, 03 Nov 2008 09:17:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/11/03/rails-2-1-2-support/</guid>
          <link>http://spreehq.org/articles/2008/11/03/rails-2-1-2-support/</link>
        </item>
    
        <item>
          <title>Extension Tip: Using Migrations for your Configuration</title>
          <description>&lt;p&gt;Spree comes with all sorts of default configurations that you will likely want to customize.  Many of these values can be changed now through admin screens (those that can&amp;#8217;t be changed will be able to shortly once those screens are written.)  Once a preference is changed from its default, the value is stored in the database.&lt;/p&gt;

&lt;p&gt;It is possible to use a migration to setup these preferences so that you can set the preferences of your site automatically.  This is handy when migrating a new series of configurations from a tested development environment to production.  You no longer have to remember to manually change these settings, just run the migrations like normal.&lt;/p&gt;

&lt;p&gt;For example, the default country in Spree is United States.  If you wanted the default country to be Ireland you could add the following to your site extension:&lt;/p&gt;

&lt;pre&gt;
class AddCustomConfigurations &lt; ActiveRecord::Migration
  def self.up
    Spree::Config.set(:default_country_id =&gt; 96)
  end

  def self.down
  end
end
&lt;/pre&gt;</description>
          <pubDate>Tue, 28 Oct 2008 13:30:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/10/28/extension-tip-using-migrations-for-your-configuration/</guid>
          <link>http://spreehq.org/articles/2008/10/28/extension-tip-using-migrations-for-your-configuration/</link>
        </item>
    
        <item>
          <title>Migration Generator for Extensions</title>
          <description>&lt;p&gt;Extensions have always provided a handy generator for migrations that took care of the new model case.  If you had a &lt;code&gt;foo_extension&lt;/code&gt; and wanted to create a &lt;code&gt;bar&lt;/code&gt; model you could always use:&lt;/p&gt;

&lt;pre&gt;
script/generate extension_model foo bar
&lt;/pre&gt;

&lt;p&gt;This would yield the following:&lt;/p&gt;

&lt;pre&gt;
exists  app/models/
exists  spec/models/
create  app/models/bar.rb
create  spec/models/bar_spec.rb
create  vendor/extensions/foo/db/migrate
create  db/migrate/20081022232711_create_bars.rb
&lt;/pre&gt;

&lt;p&gt;That works most of the time but if you decide to further modify the foo table (or if you need a migration unrelated to a specific model) then you&amp;#8217;re pretty much stuck.  What would be really handy is a generator that generates additional migrations for an extension using the current timestamp that standard migrations receive.&lt;/p&gt;

&lt;p&gt;Thanks to a brand new edge feature, this is now possible.&lt;/p&gt;

&lt;pre&gt;script/generate extension_migration foo add_foo_property&lt;/pre&gt;

This now gives you the desired migration:

&lt;pre&gt;
exists  vendor/extensions/foo/db/migrate
create  vendor/extensions/foo/db/migrate/20081022232740_add_foo_property.rb
&lt;/pre&gt;</description>
          <pubDate>Wed, 22 Oct 2008 19:10:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/10/22/migration-generator-for-extensions/</guid>
          <link>http://spreehq.org/articles/2008/10/22/migration-generator-for-extensions/</link>
        </item>
    
        <item>
          <title>Upcoming Features: Shipping and "Near Static" Content</title>
          <description>&lt;p&gt;There are two interesting features that are in the works for the upcoming version of Spree.    The first major new feature is a basic shipping framework that is designed to support almost any conceivable method of shipping.  The basic idea is that extensions will be able to provide their own shipping &amp;#8220;calculators&amp;#8221; which can be plugged into this framework.&lt;/p&gt;

&lt;p&gt;The next version of Spree will likely ship with several calculators included.  There will be some basic implementations in the core such as flat rate shipping.  Brian is working on a cool &lt;a href=&quot;http://github.com/BDQ/spree-flexi-rate-shipping/tree/master&quot;&gt;extension&lt;/a&gt; that calculates shiping using predefined amounts.  We&amp;#8217;re also hoping to support USPS and UPS shipping by providing calcualtors that will wrap the &lt;a href=&quot;http://github.com/Shopify/active_shipping/tree/master&quot;&gt;active_shipping&lt;/a&gt; gem.  &lt;/p&gt;

&lt;p&gt;We&amp;#8217;ll have a lot more to tell you about as the feature develops.  For those of you who are interested in getting a sneak peak, please see the &lt;code&gt;shipping&lt;/code&gt; branch.&lt;/p&gt;

&lt;p&gt;The second feature to tell you about is support for what we call &amp;#8220;near static&amp;#8221; content.  By near static, we mean content that is mostly just html but needs to be presented within a reusable layout.  It may or may not also have need for helpers or other minor Ruby templating.  The main thing to keep in mind is that we&amp;#8217;re &lt;strong&gt;not&lt;/strong&gt; talking about typical Rails views that iterate through instances of &lt;code&gt;Active Record&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Think of near static content as basically the &amp;#8220;brochure&amp;#8221; parts of a commerce site.  Many commerce sites have such content and we wanted to come up with a way to organize the content without resorting to a bunch of controllers for simple pages that just needed SEO friendly URL&amp;#8217;s.  So here&amp;#8217;s a &lt;a href=&quot;http://github.com/schof/spree/commit/7bb14c79904e71ae0bce31b1288ee586a937004e&quot;&gt;quick solution&lt;/a&gt; to this &lt;a href=&quot;http://support.spreehq.org/issues/show/99&quot;&gt;problem&lt;/a&gt; that we wanted to get some feedback on.  You can either cherry pick this commit or simply checkout the &lt;code&gt;static-content&lt;/code&gt; branch in github.&lt;/p&gt;

&lt;p&gt;Fair warning, these features are rough and incomplete.  The fact that they are on their own branches indicates that they are currently too rough to even be considered &amp;#8220;edge.&amp;#8221;  Think of them as &amp;#8220;edge plus.&amp;#8221; That said, you should check them out if you have an urgent need or if you are just curious.&lt;/p&gt;</description>
          <pubDate>Tue, 21 Oct 2008 20:34:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/10/21/upcoming-features-shipping-and-near-static-content/</guid>
          <link>http://spreehq.org/articles/2008/10/21/upcoming-features-shipping-and-near-static-content/</link>
        </item>
    
        <item>
          <title>Spree 0.4.1 Released</title>
          <description>&lt;p&gt;Spree 0.4.1 has just been officially released.  This is a minor patch improvement to the previous 0.4.0 release.  The release includes a few important bug fixes related to the use of extensions.  &lt;/p&gt;

&lt;p&gt;The routing problems in extensions are now fixed.  Its also now possible to run the specs for your custom extensions within your project.  Special thanks to &lt;a href=&quot;http://github.com/edmundo&quot;&gt;Edmundo&lt;/a&gt; for providing the extension fixes.&lt;/p&gt;</description>
          <pubDate>Tue, 14 Oct 2008 16:55:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/10/14/spree-0-4-1-released/</guid>
          <link>http://spreehq.org/articles/2008/10/14/spree-0-4-1-released/</link>
        </item>
    
        <item>
          <title>Spree 0.4.0 Released</title>
          <description>&lt;p&gt;Spree 0.4.0 has now been released.  We have decided to jump version numbers in order to avoid possible confusion with developers who have already installed an &amp;#8220;edge&amp;#8221; version of the source locally on their machine as version 0.3.0.  Going forward, the edge version of the source will be considered 0.4.99 and any patch releases to this version will be considered 0.4.1, etc.  This is basically the same approach taken by the Rails project.&lt;/p&gt;

&lt;p&gt;The current release of Spree contains many significant improvements from the previous 0.2.0 release.  Some of the highlights include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rails 2.1 support&lt;/li&gt;
&lt;li&gt;SEO improvements&lt;/li&gt;
&lt;li&gt;Security enhancements&lt;/li&gt;
&lt;li&gt;Public assets for extensions&lt;/li&gt;
&lt;li&gt;Mailer templates for extensions&lt;/li&gt;
&lt;li&gt;VAT inclusive pricing&lt;/li&gt;
&lt;li&gt;Taxonomy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We&amp;#8217;re looking forward to seeing some of the great third party extensions for Spree which are being written as you read this.  The Paypal Website Payment Standard extensions is also currently being overhauled to be compatible with the new release.&lt;/p&gt;

&lt;p&gt;Spree 0.4.0 requires Rails 2.1.  It is not yet compatible with Rails 2.1.1 due to some issues with the resource_controller plugin.  Enjoy the new release!  &lt;/p&gt;</description>
          <pubDate>Thu, 02 Oct 2008 19:52:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/10/02/spree-0-4-0-released/</guid>
          <link>http://spreehq.org/articles/2008/10/02/spree-0-4-0-released/</link>
        </item>
    
        <item>
          <title>Taxonomies Are Here!</title>
          <description>&lt;p&gt;In preparation for the upcoming 0.4.0 release we&amp;#8217;ve just checked in a version of the new Taxonomy based categorization system. This provides a simple, yet robust way of categorizing products by enabling store administrators to define as many separate structures (taxonomies) as needed, and to link products to multiple nodes (taxons) from each taxonomy.&lt;/p&gt;

&lt;p&gt;The sample store includes a basic implementation of the taxonomies system to structure products by &lt;em&gt;Category&lt;/em&gt; and &lt;em&gt;Brand&lt;/em&gt;.  We&amp;#8217;ve also added some more details on this to the &lt;a href=&quot;http://support.spreehq.org/wiki/1/Taxonomy&quot;&gt;wiki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We&amp;#8217;re keen to get your feedback on this important new feature, so please checkout the latest source and let us know what you think!&lt;/p&gt;</description>
          <pubDate>Wed, 01 Oct 2008 04:39:00 GMT</pubDate>
          <guid>http://spreehq.org/articles/2008/10/01/taxonomies-are-here/</guid>
          <link>http://spreehq.org/articles/2008/10/01/taxonomies-are-here/</link>
        </item>
    
    
  </channel>
</rss>

