Why Broadleaf Commerce over Magento or ZenCart? - java

I have a site made in java-spring-hibernate we made our self from scratch, it shows a catalog of product and i have the logic for it. I can also manage content and product/categories with it with an administrator we have made in flex. We probably shouldn´t have gone to all the trouble since there are so many cms out there, but what's done it's done. The site renders the content managed in flex in html with jstl.
Thing is now i want to add a ecommerce to it, for that we would have to add all the payment,shipment, orders logic to the administrator and the front end (cart/user). How ever, since there are already things like magento store, i was thinking maybe i should switch and leave my beautiful app to die :/. As i was researching i stumbled upon broadleaf commerce which is an ecommerce back end made in flex-spring-hibernate. It´s relatively new and it supposed to have an active development team. So i guess my question is, Why? if there are so many opensource commerce solutions do they make this kind of effort in developing ? i mean you still have to build the GUI for the users side. Whats their difference with magento, what are the pros ? should i try to integrate with broadleaf ? what are the assests oder then keeping my loved old app ?

Let me start off by identifying myself as an employee of Broadleaf Commerce, so I may be somewhat biased. The reason for developing Broadleaf really has everything to do with the platform itself. If you look at the open source e-commerce solutions out there, you are correct in that there are a number of them. However, when you start to filter them by various parameters, including Java, Spring, Hibernate - the list becomes very small. It was always our intent to come up with a compelling e-commerce platform targeted at today's enterprise users. With that theme in mind, we knew we had to go with Java, Spring and Hibernate. This is the core technology stack that is preferred by much of the development community, especially in the enterprise segment. Also, to satisfy the complex domain and integration requirements of these users, we designed the system from the ground up with extensibility in mind. We think of extensibility as a natural extension of the Object Oriented programming techniques you already practice daily. This translates into leveraging the power of Hibernate extension and polymorphism for the domain, as well as the ability to override, tweak or completely replace every service, DAO and entity in the codebase. Our configuration is also extensible, and goes beyond standard Spring application context override to provide more configuration merge capabilities that allow us to pull away some of the additional Broadleaf configuration complexity so you can focus on the configuration that matters for your app. So while the end results may be similar between our software and others, we believe the decision on what path to take to achieve that end goal is an important one and Broadleaf Commerce offers a powerful and flexible way to get there.
I feel I should also briefly mention, since you mention Flex above, that we are currently in development of our 1.5 release, which includes a re-worked administrative application based on GWT that will replace our current Flex-based admin. This choice has allowed us to propagate the same theme of extensibility that we already embrace in the core platform to our administrative platform. The new admin will offer the same flexibility for override and replacement through Object Oriented programming paradigms that developers already enjoy in the core platform. In addition, the admin application automatically recognizes your entity extensions and includes your additional fields in the admin interface without any coding effort on your behalf. The admin interface also honors entity polymorphism and will adjust the editing interface according to each type (think of a media product that has two extensions in the form of book and movie - even though they are both media entities, they each have unique fields and the admin interface honors this distinction). We're also working on changesets and some other interesting features for 1.5. We're targeting milestone releases beginning around April, so stay tuned for more.

What Spring and Hibernate are missing is a proper datamodel and erp application so everybody starts building their own.
We are all building together on the same application and framework.
That is just OFBiz: framework and a proper datamodel and application. You know the best part? It is not controlled by a single company but by the biggest open source foundation in the world: The Apache foundation sponsored by all large IT companies.
Anybody starting his own implementation of either erp of ecommerce should really reconsider.
More info on Apache ofbiz?
http://www.ofbiz.info
http://ofbiz.apache.org
Regards,
Hans

There is one Java Connector for Magento's API called as Magja.
Note: No support after 2012!

Related

Is there any CRM based on an modern Java EE Stack (Spring/EJB, JPA)?

I have to build a special customized Customer Relation Ship Managment tool. There are only basic requirements (manage customers, add notes for them, attach an email,…) for the CMR, except the one, which is about integration of a specific application to store and get some data.
So I am looking for an Open Source CRM where I can add this specific stuff, because I do not want to reinvent the weel and implement the next CRM by my own. So I am looking for an Web Based, Open Source CRM written in Java, that is based on a modern Java Web Stack. I would prefer something that is based on Spring (or EJB 3.1) and JPA. Of course more important than the used technologies is the quality of the code (and documentation).
After looking around for some hours I did not find any project that fit my needs. So I ask, can anybody recommend a CRM that matches my needs, or should I really implement it completely by my own?
Have you taken a look at?:
JFire: https://www.jfire.org/modules/content/
openCRX: http://www.opencrx.org/
openbravo: http://www.openbravo.com/
Have you checked Apache OFbiz ? They implemented a lot of stuff including customer management.
I don't have experience with opentaps, but it looks quite nice.
I can recommend Opentaps CRMSFA. I had an experience of 7 months. I hope it might be a best solution for you, using this you can perform :
Lead management ( Lead Content management, Add notes etc)
Opportunity management
Case Management
Campaign management
Email Communication ( Java mail Client)
Log emails, Calls
Dash Board reporting
PDF, HTML, XLS Reporting
Calender Management
Team management etc
But it is not a ready made baby, you should understand the work-flow in order to implement you business logic.

WordPress, CMS Made Simple or other?

I'm a Java/.NET developer but on my spare time I've started looking into WordPress (for personal projects). I'm not as good in PHP as I am in Java or C# but I manage. With that said, I accept tips from either language (since it's personal projects I prefer to go open source cause it's free).
What I'm trying to do is creating a small multi-language business web site with standard pages (home, about us, contact us and so on), news, a simple web shop (just listing the products is good enough in the beginning) and a photo gallery.
What I like about WordPress is that it's very flexible with custom post types and so on (since I'm gonna need news entries, products and different content types on the same site). A set back is the admin interface for a "client" with minor computer knowledge, they have to "Create a Post" with post type product instead of the menu saying "Create Product" or "Create News Entry".
So basically my needs are:
Standard Pages (Start page, contact form page and so on)
Multi-Language (In both content and pages)
Web Shop (Really simple one)
Photo Gallery (Simple as well)
News
"Company Admin" (A user that can only access publishing stuff. Create news, pages and so on. Not install plugins or manage layout)
Simplify Admin GUI ("Create Product" instead of "Create Post" with product as post type)
The question is: What CMS should I use?
Hope I made it clear enough what I'm trying to achieve!
Any input is welcome! Thanks in advance!
I've had good results with both Silverstripe and Concrete 5. They both have user management and an interface that can be used by novice users. What's more, they are both built upon a custom MVC framework and expect customization to be done by a programmer rather than in the CMS itself. This way, the interface contains less distracting configuration stuff.
If this doesn't work for you, there's always Drupal, which is very customizable and specialized in custom page types as well.
Good luck!
I just read that you chose for Silverstripe. I'd love to hear about your experiences with it as I myself have never tried that one.
However, I too would have recommended CMS made Simple™ if I had seen your post sooner. I have made dozens of sites with it. Compared to some of its brothers and sisters the admin interface is very intuitive and easy to manage. I usually even say "heaven for the digital illiterate end customer".
However, for the person who builds a site powered by CMSMS it's a must to know his/her way around (x)html and css. The same goes for basic knowledge of installing databases and permissions on folders.
The system is basically intended for designers and developers with a professional background and does not provide you with hundreds of ready made templates. It's up to you to make them yourself if you want to create something original. However, if one has the upper mentioned knowledge, freedom is at hand. No restrictions in layout :-)
Last note: if you want to do a multilingual site in CMSMS, I recommend you look here: http://www.i-do-this.com/blog/25/Another-method-of-Multilingual-CMSMS-Page. This method gives you extreme control over SEO and the URL structure. I point you to this as some time ago the MLE fork takien was telling about in his post has been proclaimed unsupported by the core dev team. The reason for this is that they cannot guarantee breakdown on updates to newer versions as it is actually a third party fork of CMSMS. The developer (Alberto Benati) who made the fork has moved the project to his own site.
Modern CMSs with the addition of their plugins and extensions are more or less doing what you need. I've used Joomla before to build up sites with most of your requirements with minimal effort. I also have a Java background and I've found Liferay, which is written in Java, very interesting. At this stage it's a mature product with extensive user/group customization and Portal development in the form of portlets.
Concerning Joomla addressing your requirements:
Joomfish for multilanguage support
Home page treated specially, contact and form pages in the form of modules
VirtueMart for shopping cart
Lots of photo galleries to choose from in the form of extensions
I think built-in News functionality as module (not sure) but as well lots of extensions
"Company Admin" as you describe can be a lower privileged users.For Joomla Admin separation have a look here
Not sure what you mean by simplify Admin GUI. A user with lower privileges will have fewer settings in the site after they login.
Please don't use Joomla! I've been using it for years and it gets the job of putting together simple sites done quite well, but if you want to change any of the aspects about how your site works, it stops being simple to use. You will end up hacking PHP files to achieve things that are possibly very easy in other CMSses.
I had very good experiences with Drupal, where you can define your own Classes of "posts", so, for example, "Products", which will have special fields that are only associated to products. Joomla will never be able to do that!
Apart from that, Silverstripe is a good CMS that's very easy to handle. Wordpress might not get you far as I'm concerned with building shops, but I haven't looked into it.
for your needs, I would like to recommend yo to choose CMS Made Simple (CMSMS) rather than Wordpress. CMSMS has multi language feature (choose multilanguage package) which is very easy to setup and manage.Don't worry about customization, CMSMS is easy to use, nice admin page, easy to make your own themes.
I'm not disfigure Wordpress, but since peoples not good in PHP, their site would be just another Wordpress blog. :D
There has been a new module added to CMSMS that makes multi lingual setup much smoother. More information can be found at this very useful blog:
http://blog.arvixe.com/creating-a-multilingual-cmsms-site-using-mlecms-module/
For the gallery for wordpress, the best solution in my opinion is to use an outside gallery, hosted on Picasa or Flickr for instance, and a simple plugin (you have a few to choose from) for that platform.
For translation, all the plugins I haved tried are very easy to break with other plugins or with WP upgrades if the plugin is not upgraded with it. For just two languages, I would just use a category based language organization. Not a perfect solution, and you will need to tweak the templates a bit, but it have worked for me.
Having said that, I would probably prefer to use Joomla if this were a project for myself, you would only miss the simplicity of Wordpress for plugin or template modifications (or even creation from scratch). And Joomfish is much better than any language support in WP as far as I can tell. And the same goes for VirtueMart, which is simple, easy to install, easy to use and have been there for years (= lots of modules, support, documentation, etc).

Recommendation of Java or JVM based web app framework

I've been given an assignment to create a visual component for a software competition. The only solid requirements I have are that
1. It needs to visualize data given through ActiveMQ
2. The information needs to be organized and visually appealing (information is presented as charts and graphs, and some nice UI elements are desireable, like tabs, accordion menus etc.)
At first, SmartGWT seemed like a good choice, but it seems that I cannot connect it to any messaging service before upgrading to a paid license, for which I do not have the funds.
Considering the fact that the requirements haven't yet been clearly stated and will be redefined probably in the near future, I cannot waste anymore time studying new technologies only to find out that I cannot use them for my needs. I'm considering something as close to Java (or JVM) as possible, as the software competition is Java based.
So, what framework would you recommend for me and why?
Grateful in advance!
Spring MVC ala the Spring framework.
It works in conjunction with ActiveMQ which meets your initial request. In addition the level of separation via the MVC pattern it provides is very nice as well as the ability to plug-in 3rd party components as needed.
Here is an article stating reasons to make use of Spring. You can ignore the J2EE stuff unless it is applicable to you; however note the Dependency Injection, Inversion of Control, and Aspect programming sections.

RoR web tier with Java middle/backend

I'm looking for some advice/feedback about using different languages in a layered architecture. Right now the architecture in question is an all java stack (db, middle tier, and web tier) using Spring to tie everything together. We've been tossing around the idea of using Ruby on Rails for the web tier, but I'd like to know if anyone has done this before (maybe with different languages/technologies). The idea behind switching to RoR is to increase development speed in the web tier, however my initial analysis is that it will also decrease development speed in the middle tier.
Some of the questions I'm trying to get data points on are:
Have any small development teams actually used a hybrid language approach in a similar architecture?
Why did you use that approach? What worked well and what didn't?
How would you handle interfaces and models (maybe use something like Google protocol buffers or Apache Thrift)?
Are there any other benefits or pitfalls to using an approach like this?
While I have no experience of RoR, we have taken a similar approach with Django as a front end layer, where we would use java based services for high volume transaction processing back ends.
We define the DB in a django model, develop the web front end with django views/ jquery and obviously get a for free admin site.
On the java side we run a hibernate reverse engineering task to generate DB access classes for the java code. Where required we use home crafted JSON over AMQP RPC mechanism to communicate between python and java components.
There are ups and downs to this approach. For us as we were not using any big java frameworks, it gave us access to quick / lightweight web front end to our solution as well as the ease of modelling our database using the Django model format (which I like a lot).
On the down side we did encounter some tricky stuff with hibernate reverse engineering configuration (which is complex if you are doing anything that is not bog-standard - especially in relation to some Django ManyToMany relations).
I notice you mention that you already have a Spring based architecture with a web tier. I'm no expert here but that may present you with opportunities worth exploring such as groovy/grails or the SpringMVC which in version 3 claims to be much simplified and faster to develop against. This may give you the wins you need.
A compromise might be to look at some RoR inspired Java tools like Rife.
Bottom line is that you will have to make the call in light of what your own application requirements and team capabilities are. It worked for us and was I think the correct decision for us but if your team is already tooled up with Java & Spring skills then Spring 3 might be the way to go (but ask a Spring expert about that :-) )
Rob
This presentation will probably be interesting to you: Rails on Spring - Using JRuby as the Secret Sauce

Java Portals and Portlets

The Java world has a JSR-286 standard for how portals and portlets should interoperate: software components sharing a unified web page.
There seem to be a number of portal implementations. But is there a live "marketplace" of interchangeable portlets that will run in them? From what I can find searching the web, it looks very lopsided - all portals and no portlets. It's like if there were dozens of Android phones and no apps.
If a product were to base itself on JSR-286 (or some implementation thereof), what's the likelihood of a corporate customer having a bunch of portlets that it might want to add to the portal?
It strikes me that most corporates will already have a portal-like page based on their choice of ERP or CRM product that their business runs on, or maybe even just MS Outlook's "Today" page. So if I ship a new product intended for corporate customers, and I make it a portal (rather than a set of portlets) what is the likelihood of my customers abandoning their existing IBM/SAP/Oracle portal and using my portal as their new homepage? (I'm guessing: not great.) And if I make it a set of JSR-286 compliant portlets, are my customers going to have a way to host host portlets? (I'm guessing: also not great).
Finally, JSR-286 seems quite mute about HTML+JavaScript, i.e. how portals and portlets would interoperate inside the browser. It's all about Java-based server-side stuff, defining a way to cooperate in the use of URLs so that each full-page-refresh can be routed to the correct portlet. It doesn't seem to acknowledge the modern, rich AJAX approach. It mentions AJAX only in passing.
This blog post (and the comments under it) have provided a lot of food for thought and seem to confirm my suspicions:
Professional hands-on experience along
with the above research led me to the
conclusion that the portal
architecture lacks enough technical
advantages and distinguishing features
to warrant an increase in acceptance.
In practice, few applications can
constrain themselves to the isolated
and disparate functionality of
portlets, and relinquishing this
degree of architectural control is
unrealistic in enterprise-level
software... the portal architecture's
window of opportunity to become a
mainstream technology has not only
closed, but closed quite some time
ago.
So to summarise this as a more coherent question: what actual value would I get by building on JSR-286 at this point?
The only advantage I know of offhand is that when vendors of enterprise software have "portal integration" on their feature checklist, it usually means they've written portlets according to the JSR-168 or JSR-286 standards. SAP, Banner, and Magnolia are some of the systems that we use here that work this way, and some organizations find value in the portal approach.
However, as you correctly point out, this imposes some frustrating limitations on the application author. We've also found the value of portals to be somewhat dubious when put up next to a Single Sign On system that saves the user the hassle of signing into multiple applications, but which still allows each application the full benefits of the browser environment.
FWIW, if you do decide to distribute your work as a collection of portlets, there are existing portal systems that are free/open source which you could provide for folks who didn't already have a portlet container:
http://java-source.net/open-source/portals
Hope all of that helps a bit.

Categories