Skip to content

solidusio-contrib/solidus_kustomer

Repository files navigation

solidus_kustomer

CircleCI codecov

This extension allows you to integrate your Solidus store with the customer support application Kustomer via solidus_tracking.

Installation

Add solidus_kustomer to your Gemfile:

gem 'solidus_tracking', github: 'solidusio-contrib/solidus_tracking'
gem 'solidus_kustomer', github: 'nebulab/solidus_kustomer'

Bundle your dependencies and run the installation generator:

bin/rails generate solidus_kustomer:install

Usage

Once installed the extension will provide access to a SolidusKustomer::Client with the ability to interact with Kustomer KObjects.

This client is used interally via solidus_tracking to track relevant Solidus events to make them appear on customers' timelines.

Preparation

This extension assumes that your Kustomer organization have already present the following Klasses:

  • order

Events tracked

The events tracked by default are:

  • order_finalized

Creating customers on Kustomer

If you want to automatically create a customer on the Kustomer app upon account creation, you can set the identify_customer_on_creation configuration flag to true:

# config/initializers/solidus_kustomer.rb

SolidusKustomer.configure do |config|
  # ...
  config.identify_customer_on_creation = true
end

Newly created users will be automatically identified (registered as customers) on Kustomer.

Development

Testing the extension

First bundle your dependencies, then run bin/rake. bin/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 bin/rake extension:test_app.

bin/rake

To run Rubocop static code analysis run

bundle exec rubocop

Running the sandbox

To run this extension in a sandboxed Solidus application, you can run bin/sandbox. The path for the sandbox app is ./sandbox and bin/rails will forward any Rails commands to sandbox/bin/rails.

Here's an example:

$ bin/rails server
=> Booting Puma
=> Rails 6.0.2.1 application starting in development
* Listening on tcp://127.0.0.1:3000
Use Ctrl-C to stop

Updating the changelog

Before and after releases the changelog should be updated to reflect the up-to-date status of the project:

bin/rake changelog
git add CHANGELOG.md
git commit -m "Update the changelog"

Releasing new versions

Your new extension version can be released using gem-release like this:

bundle exec gem bump -v 1.6.0
bin/rake changelog
git commit -a --amend
git push
bundle exec gem release

License

Copyright (c) 2020 Nebulab SRLs, released under the New BSD License.