Evo
OTP cart meant for use in eCommerce applications
Current Roadmap
- Add subtotal
- Consider changing update quantities API from delta to new quantity
- Move to using a global registry lib (gproc, syn, etc)
- Need stale cart clean-up strategy
Installation
-
Add
evoto your list of dependencies inmix.exs:
```elixir
def deps do
[{:evo, "~> 0.2.0"}]
end
```-
Ensure
evois started before your application:
```elixir
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.