Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quest for customizable e-commerce - the elixir way #44

Closed
pikender opened this issue Mar 16, 2016 · 22 comments
Closed

Quest for customizable e-commerce - the elixir way #44

pikender opened this issue Mar 16, 2016 · 22 comments
Assignees
Milestone

Comments

@pikender
Copy link
Contributor

  • E-Commerce Phoenix Project
  • Built with an intent to be served as a off-the-shelf and easily customizable e-commerce solution
  • We are looking for ideas and suggestions on how to mature the project as e-commerce framework which can be included as a library and customized as per business needs
  • Please share
@pikender pikender self-assigned this Mar 16, 2016
@pikender pikender added this to the v2.0 milestone Mar 16, 2016
@arpieb
Copy link

arpieb commented Mar 17, 2016

@pikender kind of interested to see what you guys come up with. Coming from a CMS background, I'd like to find a way to build a CMS framework that can be customized/extended without "hacking core" to allow for easy framework updates. Been kicking around using macros in combination with @on_load to self-register modules as providing some kind of framework feature, not sure how well that would work or if you'd wind up in a race condition (i.e. module loads before framework has set up module registration agents).

@pikender
Copy link
Contributor Author

@arpieb Thanks for sharing and interest. Is the CMS work available on github or under development ?

We are analysing different kind of customizations needed in e-commerce.

  • Extending on available options like integrating new payment gateway doesn't need much changes in core but a way to recognise and dispatch the new integration is needed
  • Overriding existing behavior entirely is like a re-write for component in question and the interface to other components
  • Overriding existing behavior partially
    • Hypothesizing to change the partial behavior in new module and delegating to core module for other behavior.

Not yet hooked to any approach yet but will try to minimize the use of macro in favor of defining the ways to accomplish custom tasks.

@arpieb, would be great if we can catch-up online and bounce back ideas 👍 😄

@arpieb
Copy link

arpieb commented Mar 21, 2016

@pikender thanks for the info and link - will definitely check those out. The CMS is still in the planning stages, hence my interest in your approach. First I have to get some extensible graph DB support in place, currently working on an Ecto analogue called Spiro specifically to address that, then onto the CMS.

I'm still fairly new to Elixir/Phoenix, so I'd make a good sounding board, but not yet knowledgeable enough to suggest anything that I've tried. :)

@pikender
Copy link
Contributor Author

@arpieb Spiro looks interesting 👍

We are also new to Elixir/Phoenix and on the journey :)

Added one more Wiki page for Add New Shipping Method

We have started experimenting with extension support, mainly focussing on:

  • New Routes
  • Controllers
    • Needed for New Routes
    • Adding pre-post checks for new functionality in existing functionality
  • Existing View Overrides
    • Keeping low in priority as plan is to move full-fledged API only, OR
    • relying on integration developer heavily
  • Existing Model
    • Adding New Associations
    • Adding more Validations
    • Data Scope Helpers
  • New Views
  • App Config
  • New Model
  • Migrations
  • Testing the extension

We will start putting out the structure as we progress & integrate few sample extensions

@vanloc0301
Copy link

@pikender I saw you have experience with Ruby and elixir.

Can you tell me about this project in Ruby and elixir, advantage and disadvantage of each language (include many things around it, like Phoenix, Ruby on Rails, tools,....) to this project?

And I think your project wonderful, that need more feature like an E-Commerce system.

@nimish-mehta
Copy link

figured out a few techniques to extend and modify nectar at compile time, looking for feedback on which approach is more sensible.
see #47 and #48

refer our wiki for more details: https://github.com/vinsol/nectarcommerce/wiki

@dhonig
Copy link

dhonig commented May 24, 2016

@pikender @nimish-mehta First of all this is really interesting work and I'm excited to see that its happening. Secondly, I am afraid we are taking too much design input from a certain RoR e-commerce framework we all know and love. For example, we are storing state, instead I might want to explore the use of event_sourcing to avoid some of the issues that have occurred with that other framework. In any case, I'm looking forward to seeing how this turns out and already you guys have a ton of work in place.....

@pikender
Copy link
Contributor Author

@dhonig Excited to bounce on new ideas and suggestions.

Just for the context, we did evaluate CQRS & event-sourcing as a possible alternative but looked like it would take more time & resources than we had, so we had to put it on the back burner to come back later.

Right now, it needs starting almost everything from scratch which would require more brains and hands to make it work effectively :)

Excited to have you on the side, will start to take the plunge at it again

@kathgironpe
Copy link

@pikender +1 for React Frontend. I have started an e-commerce project in Phoenix. I have initially used Ruby on Rails for this, which is by the way, complete and previously in production. Currently re-branding and redesigning a bit. I am probably launching this month.

It would be good if you give people flexibility in styling the application. You can pick a default CSS framework, but do not rely completely on the classes of that framework. Sort of saying, you're better off thinking up the CSS architecture. Make it flexible by choosing the classes and just letting users change the design if they want by extending those classes. This is possible through LESS and SASS.

@pikender
Copy link
Contributor Author

pikender commented Jul 4, 2016

@katgironpe thanks for the suggestion and sharing insights and I completely agree to not solely rely on framework and diverge where its more application specific.

we are running a little late on React front-end separation due to time availability and Phoenix fast rendering :)

Can you share what CSS framework you prefer ??

@kathgironpe
Copy link

@pikender Honestly, it's not what "I" prefer. Choose one which most prefer. I suspect it's Bootstrap. I would choose Materialize.css over Bootstrap on any day. Anything which supports Flex for layouts is fine. Re: React.js. Yes, it's so challenging to structure a React.js app. But I think it would pay off later. This is my work today.

@ghost
Copy link

ghost commented Oct 3, 2016

👎 React frontend

I would recommend using Elm for the frontend. It's a new language to learn, I know, but it will pay off in the long run. This is the PEPE stack - Postgres/Elixir/Phoenix/Elm that is popular within the Elixir community. http://elm-lang.org

🌟 Thank you and great job so far! The ecommerce space needs a fast and extensible CMS and Elixir/Phoenix is the perfect fit.

@pikender
Copy link
Contributor Author

pikender commented Feb 9, 2017

Closing for more fresh ideas ❤️

@pikender pikender closed this as completed Feb 9, 2017
@odyright
Copy link

why don't use the concept of "

phoenix is not your app

"? I recommend it!
By doing things like that, we could implement the use of the new Registry & GenServer module in Elixir 1.4.0

@pikender
Copy link
Contributor Author

@odyright Good to hear fresh ideas 👍

We will definitely look at the use of Registry and Genserver more.

If you have any thoughts and ideas on same, do share them. Thanks ❤️

@harinanda
Copy link

Do you have plans to enhance it if I funded to some extent with more features and components like search and catalogue .. etc .. analytics..

@agustif
Copy link

agustif commented Jul 10, 2017

This could be cool for the admin frontend
https://marmelab.com/admin-on-rest//

@pikender
Copy link
Contributor Author

@agustif that surely is cool. We can integrate it once we get apis in place 👍

@pikender
Copy link
Contributor Author

@harinanda it would be exciting if we can enhance with features helping someone. Do feel free to connect and discuss AT avid.piks@gmail.com 👍

@Keam
Copy link

Keam commented Dec 3, 2017

@pikender Hi, Is this still in development?

@pikender
Copy link
Contributor Author

pikender commented Dec 4, 2017

@Keam I am not involved with project anymore so can't comment.

@nimish-mehta @bansalakhil can you please share the current and future development plans ?

@pikender
Copy link
Contributor Author

pikender commented Dec 4, 2017

@Keam if you have some questions regarding to project and facing any issues with it, I can help you with them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants