Evo

Build Status

OTP cart meant for use in eCommerce applications

Current Roadmap

  • Consider changing update quantities API from delta to new quantity
  • Need stale cart clean-up strategy

Installation

  1. Add evo to your list of dependencies in mix.exs:

        def deps do
          [{:evo, "~> 0.4.1"}]
        end
        ```
    
  2. Ensure evo is started before your application:

        def application do
          [applications: [:evo]]
        end
        ```
    

Usage

cart_id = 123
Evo.create_or_get_cart(cart_id)

item = %Evo.Cart.CartItem{
  id: "SKU123",
  name: "Foosball",
  price: 4.99,
  qty: 2,
  meta: %{personalized: "Johnny"}
}

Evo.add_item(cart_id, item)
#=>  {:ok, %Evo.Cart{
#        discount: 0.0,
#        total: 9.98,
#        items: [%Evo.Cart.CartItem{
#          id: "SKU123",
#          name: "Foosball",
#          price: 4.99,
#          qty: 2,
#          meta: %{personalized: "Johnny"}
#      }
#    }]
#}}

Check out the docs for the full feature list.

license

Evo source code is released under the Apache 2 License.