This project is read-only.

Orchard as base framework to implement an ERP + CRM

Topics: General
Dec 2, 2014 at 8:50 AM
I'm studing the possibility of use Orchard for iimplement an ERP and a CRM.

Have you done it before?

What troubles have you seen?

Dec 2, 2014 at 12:56 PM
I'm in a similar position building a B2B solution over a year now.
It depends .
If you want your product to be highly customizable , pluggable etc, if you appreciate good software architecture then orchard is great, although there will be a steep learning curve.
If extensibilty is not that important , then standard mvc will be easier.
In my case I am glad of taking the orchard road.
Dec 2, 2014 at 1:31 PM
Edited Dec 2, 2014 at 1:31 PM
Giannik could we collaborate?

Is possible to buy or leasing your B2B solution...

I interested to use Orchard in Background and a pure HTML5 + AngularJS in front-end
Dec 2, 2014 at 1:42 PM
I think it all really depends on what you are trying to achieve. If you sketch out a CRM.... you are really talking about users (contacts/leads are all states) moving through individual states within your system - which should be easy to accomplish.

All other parts of complete packages are individual modules... such as BI, Email, Call Logging etc.

Try to think of the simplest thing, then build up from there. When you think a piece of code could be applied to something outside of that module, move it to its own module. Abstract!
Dec 2, 2014 at 2:09 PM
ERP with Orchard and Angular ?
you mean, like creating a content item along with its parts using angular ?
I've been using orchard for quite some time now, I think the most challenging thing when you decide to use orchard for ERP is :
Splitting an entity into parts. Take an invoice, you might want to split it into several parts. But most of the time you need to work with invoice as a whole.

hi Giannik, if you dont mind, would you share what your solution is about and i would love to hear your experience with it using orchard too.

Dec 2, 2014 at 2:53 PM
Edited Dec 2, 2014 at 3:02 PM
@arjunatantri, your concern about domain entities and orchard parts was the most puzzling thing for me too.
Our main requirement was to have entity domain modelling separated from the orchard part type system.
So that out domain modeling could have typical entity relations (1 -1 , 1-Many, Many-To Many) and some how hook the data models into orchards UI composition model (which is done through content parts).
The path we took , which turned out be be quite elegant and simple, is to simply create a custom part which acts as a gateway between the orchard type system and our domain modelling system (which is based on EF).
This custom part simply holds a unique identifier to the entities in our domain model (like domain, model , field , id key) and using services we get our data from EF and feed into content parts which are rendered in html views.

So basically we have orchard content types which basically act as forms for the UI rendering (not for actually doing entity domain modelling).
The great thing is that we didn't touch a single line of core code , all is done through hooking into handlers and custom services which kind of proves that great work that is baked into Orchards architecture.

@albertoleonTis I'd like to help in any way , although the solution is still in the works. Just let me know anything else specific you would like me to share.
Dec 2, 2014 at 3:49 PM
If i get it correctly, you're saying that your entities are not orchard content item.
Rather, you have a generic content part that communicate with your real entities. correct ?

are you still able to use orchard content types for your entity ?
I mean, if we have a productPart, we can basically turn anything into a product, with different types.
can you still do it?

I did a funny thing. I tried to customize orchard framework from day 1.
So I had several ContentItemRecord tables, grouping similar entities into one.
It worked, but turn out to be a pain in the ass.
Dec 2, 2014 at 4:59 PM
yep, say i have a 2 domain entities Order and Order Details with a 1-to Many relationship.
lets say i store records for orders with ID's like:
OrderId= 1, OrderId=2 ......

In Orchard I would have a content type called OrderEntryForm (or call it whatever you want).

This would have 3 parts basically :

Order Header (shows basic order info , like order date, customer etc)
Order Details (the order items -the many side of relationship)
MyEntityIDContainer (the custom part which holds the order id from my entity eg. Order1, Order2 etc)

These parts are regular contentparts (without orchard records) except for MyEntityIDContainer which stores in orchard field the Order Id

So anywhere in your content type you have access to your unique id , get your data from a service or in the drivers, cache it , and populate your views.
Dec 3, 2014 at 3:27 PM
Cool stuff.
I assume the generated Id by MyEntityIdContainer is not the Id of ContentItemRecord.
Instead, you have several MyEntityIdContainer depends on your entities.

albertoleonTis, have you tried using angular with orchard content parts?
I'm experimenting with it.
One of the issue is validation, while regular parts use unobstrusive validation, angular has its own validation system.
Maybe creating a custom directive might be able to solve it. but i just dont feel right, angular is built for Single Page Apps.

Dec 3, 2014 at 3:42 PM
Not yet. I will prove it soon. Could be we can start an Open Source project in Github to do together an ERP, CRM and other features?

Do anyone think it is an interesting option?
Dec 3, 2014 at 5:47 PM
@arjunatantri, yes thats right .
I store my own identifier , not orchards id.
Dec 3, 2014 at 7:32 PM
erp and crm. the scope is too big i quess. but we could at least try.
Dec 3, 2014 at 10:10 PM
Absolutely it is a great idea. Indeed new dynamic forms looks it to fit specially well for this purpose.
Maybe a little CRM is a good start.
Jan 4, 2015 at 2:35 PM
i am facing @albertoleonTis what you want to do
and i recent post questions about my need
i want to share with you what i tried i think it build over orchard but it hard to me to configure more features that i want to do like security module ,reporting module and Workflow