Alchemy CMS Spree Extension
The World's Most Flexible E-Commerce Platform meets The World's Most Flexible Content Management System!
This gem is a Alchemy CMS and Spree connector.
For now it does this:
- It provides an Alchemy module that displays Spree admin in an iframe inside Alchemy admin.
- It gives you new Essences for Alchemy called EssenceSpreeProduct and EssenceSpreeTaxon that you can use to place a Spree product and Taxon on your pages.
- Shares admin session between Alchemy and Spree.
Compatibility
Spree
This version runs with Spreecommerce 2.1 and above.
Alchemy
This version runs with Alchemy 3.0
Installation
Add this line to your application's Gemfile:
gem 'alchemy_spree', github: 'magiclabs/alchemy_spree', branch: 'master'
And then execute:
$ bundle
Install the migrations:
$ rake alchemy_spree:install:migrations
Migrate the database:
$ rake db:migrate
Authentication system installation
Since Alchemy 3.0 has dropped the authentication from its core, you will need to choose one authentication system. The easiest choice is to use the alchemy-devise gem.
To install alchemy-devise:
# Gemfile
gem 'alchemy-devise', '~> 2.0'
And then execute:
$ bundle
Finally, you'll need to instruct Spree accordingly:
# config/initializers/spree.rb
Spree.user_class = "Alchemy::User"
Usage
Create a new Element for Alchemy
# config/alchemy/elements.yml
- name: product
contents:
- name: spree_product
type: EssenceSpreeProduct
- name: product_category
contents:
- name: spree_taxon
type: EssenceSpreeTaxon
Generate the views
$ rails g alchemy:elements --skip
Place this element on a page layout
# config/alchemy/page_layouts.yml
- name: product
elements: [product]
- name: products
elements: [product_category]
You can haz Spree product and taxons!
# app/views/alchemy/elements/_product_view.html.erb
<%= element.ingredient('spree_product') %>
# app/views/alchemy/elements/_product_category_view.html.erb
<%= element.ingredient('spree_taxon') %>
Alchemy :heart: Spree!
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request