View Source ExCatalog

Coverage Status CircleCI Version GitHub 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.



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



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