/spree_reffiliate

Spree Affiliate and Referrals extension

Primary LanguageRubyBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Spree Reffiliate

Codeship Status for kinduff/spree_reffiliate Build Status Code Climate Test Coverage

Spree Reffiliate is a Spree Extension that adds the referral and affiliate features to your Spree Store. Users are going to be able to share a unique hyperlink with their friends to gain benefits and you'll be able to create affiliate campaigns through the Spree Administrator and configure it to your needs.

Referrals

  • User can share a unique URL
  • User can signup as a referred user
  • Referred user can have promotions
  • Admin is able to see referred users and orders from user

Affiliates

  • Admin is able to create an affiliate with a custom path
  • Customize the affiliate view with a partial
  • Users are going to be able to signup as an affiliated user
  • Affiliated user can have individual promotions
  • Admin is able to see affiliated users and orders from affiliate

Spree Reffiliate

Installation

To use the stable branch, add this line to your Gemfile:

gem 'spree_reffiliate'

Alternatively, if you want to use the bleeding edge version, use this line:

gem 'spree_reffiliate', github: 'kinduff/spree_reffiliate'

Bundle your dependencies and run the installation generator:

bundle
bundle exec rails g spree_reffiliate:install

Existing Users

If you already have users within your database, you'll need to run the following command to generate the referral registry for your users:

bundle exec rake reffiliate:generate

Usage

Referral path is /r/:code and Affiliate path (assigned in the admin) is /a/:path

Once installed, you'll be able to access the following methods.

Spree::User

  • referred_by => user record
  • referral_count => user count
  • referred? => boolean
  • affiliate? => boolean
  • affiliate => affiliate record
  • referral => referral record

Spree::Referral

  • code => referral code
  • referred_users => array of users
  • referred_orders => array of orders
  • referred_count => user count
  • referral_activated_users => users with completed orders

Spree::Affiliates

  • referred_users => array of users
  • referred_orders => array of orders
  • referred_count => user count

Spree Admin

Users

User Listing

Affiliates

Referral Listing

Promotion Rules

Important: in both referrals and affiliates, do not fill in the promotion code for the promotion itself to be applied automatically to the user's order. If you add a promotion code, the user will need to apply the for promotion manually.

For referrals

Referral Rules

For affiliates

Affiliate Rules

User account

User account

Testing

First bundle your dependencies, then run rake. rake will default to building the dummy app if it does not exist, then it will run specs. The dummy app can be regenerated by using rake test_app.

bundle
bundle exec rake

When testing your applications integration with this extension you may use it's factories. Simply add this require statement to your spec_helper:

require 'spree_reffiliate/factories'

ToDo

  • Add missing documentation
  • Add 2-2-stable and 2-1-stable support (or at least test them)
  • Improve affiliates admin
  • Improve User and Orders listing at user admin
  • Add option or helper to show referral code to the user

Copyright (c) 2014 Alejandro AR, released under the New BSD License