# BasicECommerce

A library to manager orders in a basic e-commerce application.

## Installation
1. Add the library to your app dependencies in your `mix.exs`:
  defp deps do
      {:basic_ecommerce, "~> 0.1.0"}
2. Configure an adapter in `config/config.exs`:
  config :my_app, MyApp.BasicECommerce,
  adapter: BasicECommerce.DataSource.JsonAdapter,
  json_file_path: "/data/price_data.json"
3. Define your own module using the configured adapter 
  defmodule MyApp.BasicECommerce do
    use BasicECommerce, otp_app: :my_app

## Usage
The main logic is in `BasicECommerce.compute_total/1` which takes a `BasicECommerce.Order` and returns a total price.

To create a new order, call ``.

And to add products to an order, call `BasicECommerce.Order.add_product/2` which takes an order and an `atom` which represent the SKU of the product.

You can have a look at the demo application in the `apps/demo` folder for a complete implementation.

## Documentation
Run `mix docs` to generate documentation.

## Tests
Run `mix test` to run unit tests.