An open API service indexing awesome lists of open source software.

https://github.com/solidusio-contrib/solidus_kustomer

Kustomer integration for the Solidus eCommerce platform.
https://github.com/solidusio-contrib/solidus_kustomer

customer-success customer-support ecommerce kustomer solidus tracking

Last synced: 1 day ago
JSON representation

Kustomer integration for the Solidus eCommerce platform.

Awesome Lists containing this project

README

          

# solidus_kustomer

[![CircleCI](https://circleci.com/gh/nebulab/solidus_kustomer.svg?style=shield)](https://circleci.com/gh/nebulab/solidus_kustomer)
[![codecov](https://codecov.io/gh/nebulab/solidus_kustomer/branch/master/graph/badge.svg)](https://codecov.io/gh/nebulab/solidus_kustomer)

This extension allows you to integrate your [Solidus](https://solidus.io) store with the customer
support application [Kustomer](https://kustomer.com) via [solidus_tracking](https://github.com/solidusio-contrib/solidus_tracking).

## Installation

Add solidus_kustomer to your Gemfile:

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

Bundle your dependencies and run the installation generator:

```shell
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](https://github.com/solidusio-contrib/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`:

```ruby
# 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`.

```shell
bin/rake
```

To run [Rubocop](https://github.com/bbatsov/rubocop) static code analysis run

```shell
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:

```shell
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:

```shell
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.