Awesome
Nectar E-Commerce
Nectar is an open source e-commerce Elixir/Phoenix project to be evolved into E-Commerce framework the elixir way Please share your ideas here
It includes:
Admin
-
Product Management
- Manage OptionTypes/OptionValues
- Manage Categories
- Product with / without variants
- Search
-
Configuration Management
- General Settings
- Shipping Methods
- Payment Methods
- Stripe and Braintree supported
-
Cart Management
- Add / Remove Variant
- Add Shipping / Billing Address
- Choose Shipping Method
- Choose Payment Method
-
Order Management
- Cancel LineItem
- Fulfill Order
- Create New Order
- Search
-
User Management
- Create Users
- Promote / Demote as Admin
User
- User Registration / Login
- Product Browsing
- List and Search
- on available categories
- Cart Management
- Check Order Details
Demo
- Browse User Interface
- Username: alice@example.com
- Password: foobar
- Browse Admin Interface
- Username: bob@example.com
- Password: secured
Docker Image
https://hub.docker.com/r/vinsol/nectarcommerce
- Simply run
docker run -it -p 4000:4000 vinsol/nectarcommerce:latest
and go tohttp://localhost:4000
Getting Started
-
Pre-requisites
- Install Elixir
- Check
elixir -v
, better to have 1.2.2 or higher
- Check
- Install Hex Package Manager
mix local.hex
- Check
mix hex.info
- Install Nodejs 5
- Install Postgres 9.4 or higher
psql postgres
- Check
SHOW SERVER_VERSION
- Check
- jsonb[] type is used and not available on previous versions
- Install ImageMagick
- Install Elixir
-
Clone Project Locally
git clone https://github.com/vinsol/nectarcommerce.git
-
Set up Development Environment
- Copy apps/nectar/config/dev.secret.exs.example as dev.secret.exs
cp apps/nectar/config/dev.secret.exs.example apps/nectar/config/dev.secret.exs
- Configure Postgres Database
- Configure Arc for images upload
- Local Image Upload for Development
- As uploads would be done on App Root so a symlink is needed
mkdir -p apps/nectar/priv/static/uploads
ln -s uploads apps/nectar/priv/static/uploads
# run from project root
- As uploads would be done on App Root so a symlink is needed
- S3 Image Upload for Production
- Local Image Upload for Development
- Configure Payment Methods
- Get Application Dependencies
mix deps.get
- Set-up Application Database
- Drop Database
mix ecto.drop -r Nectar.Repo
- Create Database
mix ecto.create -r Nectar.Repo
- Migrate Database
mix ecto.migrate -r Nectar.Repo
- Seed Database
mix run apps/nectar/priv/repo/seeds.exs
- Drop Database
- Build Assets
cd apps/nectar
npm install
npm install babel-preset-es2015 --save
./node_modules/brunch/bin/brunch build
- Optionally might need
bower install
- Run Phoenix Server with IEx
- iex -S mix phoenix.server
- Copy apps/nectar/config/dev.secret.exs.example as dev.secret.exs
-
Browse User Interface
-
Browse Admin Interface
Contributing
- Fork the repo.
- Clone your repo.
- Check Getting Started
- Make your changes.
- Ensure tests pass by running
mix test
. - Submit your pull request.
Running Tests
We use Travis CI to run the tests for Nectar.
You can see the build statuses at https://travis-ci.org/vinsol/nectarcommerce.
RoadMap
- Evolve into a Phoenix E-commerce Framework
- Better and More Shipping Methods Customization
- Better and More Payment Methods Customization
- Customize Tax Rate Calculations
- Customize Package Management
- Add Order Splitters
- RealTime Updates using Channels
- Upgrade to ecto-2
- Customisable and decoupled Frontend and Backend
- React Frontend
- Phoenix Api Backend
- Improved Stock Management
- Returns / Refunds Management
- Payments
- Add support for capture and refunds
- Marketing
- Promotions
- Email Campaigns
- More features as per contributions and use :)
Credits
Copyright (c) 2016 vinsol.com, released under the New MIT License