# ExCatalog

[![Coverage Status](](
![GitHub last commit (branch)](

** A General E-commerce Catalog System **

Think of this like an old school paper mail in catalog, we dont need all the fluff (extra db tables etc) as in in most ecommerce implementations, this is just a catalog, decoupled from inventory management with some options such as csv and pdf export, integer or binary primary key.

## Installation

If [available in Hex](, the package can be installed
by adding `ex_catalog` to your list of dependencies in `mix.exs`:

def deps do
    {:ex_catalog, ">= 0.0.0"}

## Creating the Database Tables

The Database Tables can be created by running the mix alias.

mix install

## Config

Add the following to your config.exs
config :ex_catalog, :ecto_repos, [ExCatalog.Repo]

config :ex_cldr,
  json_library: Jason

Add the following to your dev and/or prod config
config :ex_catalog, :ecto_repos, [ExCatalog.Repo]

config :ex_catalog, ExCatalog.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: "postgres",
  password: "postgres",
  database: "ex_catalog_dev",
  hostname: "localhost",
  pool_size: 10,
  primary_key_type: :uuid ## optional

## Generate a migration
mix ExCatalog.install

## (Optional) startup config options for using currency autoloader etc
config :ex_money,
  exchange_rates_retrieve_every: 300_000,
  api_module: Money.ExchangeRates.OpenExchangeRates,
  callback_module: Money.ExchangeRates.Callback,
  exchange_rates_cache_module: Money.ExchangeRates.Cache.Ets,
  preload_historic_rates: nil,
  retriever_options: nil,
  log_failure: :warn,
  log_info: :info,
  log_success: nil,
  json_library: Jason,
  default_cldr_backend: ExCatalog.Cldr
config :ex_catalog, :autoload_exchange_rates, true 

Documentation can be generated with [ExDoc](
and published on [HexDocs]( Once published, the docs can
be found at <>.