Presentation on how to integrate Magento into Joomla!, made for the Joomla!Days 2011 Netherlands. A fair comparison between JFusion, JMint and MageBridge.
2. Joomla! vs Magento
Moogla
• Joomla!
– Most popular open-source CMS
– Community-driven
– User-friendly; easy architecture
• Magento
– Most popular open-source e-commerce system
– Created by company Varien
– Flexible; complicated architecture
4. Joomla! vs Magento
Magento is hot
• Fast growth
– Rapid development of new features
– Quick adaption of market (because there is no good alternative?)
– Buzz
5. Joomla! vs Magento
Why Magento?
• Highly configurable
• Numerous payment gateways and other modules
• All HTML can be modified
• Cool frontend features
• Layered Navigation (or “Shop by ...”)
• One Page Checkout
• Never a need for core-hacks
• Parent/child theming
• Class overrides
• Observable events
6. Joomla! vs Magento
Serious e-commerce features
• Catalog features
• Product comparison
• Shop by color / manufacturer / price / ...
• Reviews, rating, wishlists
• Upselling, cross-selling, gift-certificates
• Ordering features
• Multiple shipping addresses
• One Page Checkout
• Multicurrency, multicountry, multisite, multistore, multilingual
• Online order-reviewing by admins
• Backend features
• Export / import functionality
• APIs for connecting to 3rd party ERP / CRM / bookkeeping
7. Joomla! vs Magento
Magento is for big shops
• Higher costs
• Full implementation easily takes 50 hours of an expert
• Cheap shared hosting doesn't work
• Majority of Magento extensions is commercial
• Flexibility in favor of user-friendliness
• XML layouts in Magento theming
• MVC-usage and observer/observables
• Clustering capabilities, advanced caching
• Only worth it, if you want to earn money
9. Joomla! vs Magento
Integrating Magento and Joomla! (2)
• Common technologies
– Integration over HTTP
• JFusion: HTML webpage
• JMint: HTML webpage / SOAP
• MageBridge: JSON-RPC / custom API
– Configuration of webservice
• API user
• API role
– Visual integration or not
• IFRAME or integrated through API
• Magento blocks reused in Joomla!
• Other integrations (search, breadcrumbs)
11. Joomla! vs Magento
No integration
• Keep Joomla! separate from Magento
• No performance loss due to bridging
• Building a Magento shop is made neither simple or difficult
• No extra benefits from integration (because there is none)
• Theming used to optimize
13. Joomla! vs Magento
What is JFusion?
• Open-source project
• Latest release 1.5.5 (February 2011)
• Focussed on user-authentication and user-sync
• Magento, phpBB, WordPress, SMF, vBulletin, Moodle, Gallery2
14. Joomla! vs Magento
JFusion architecture
• Parsing of Magento-generated HTML
– HTML-blocks are extracted (for instance login-form)
– Form is submitted to Magento
– No API, no Magento extension
• Managing user records
– User synchronization (pull from Joomla!)
– Single Sign On between applications
• Joomla! requires access to Magento filesystem
20. Joomla! vs Magento
What is JMint?
• Created by Anh Nguyen
• Google Summer of Code 2009 Project
• Latest version 1.0 in August 2009
21. Joomla! vs Magento
JMint architecture
• Parsing of Magento-generated HTML
– HTML-blocks are extracted
– Use Firebug to identify DOM ID
– URLs are dynamically replaced (Magento-to-Joomla!-URL)
• SOAP API
– User synchronization (pull from Joomla!)
28. Joomla! vs Magento
What is MageBridge?
• Created by Yireo
• Commercial package, free SVN-access
• Latest major version 1.6 in February 2011
29. Joomla! vs Magento
MageBridge architecture
• JSON / JSON-RPC API
– All API-requests in one single HTTP-request
– HTML-blocks combined with API-data
– No usage of stand-alone Magento frontend
• Extra features
– “Easier” setup and checks
– Menu-Items with Lightbox-popups
– JCE integration
– Template-patches to make Magento / Joomla! combo easier
33. Joomla! vs Magento
MageBridge Magelib plugin
• Load Magento classes inside Joomla! code
– Initialize Magento application (partially)
– Call upon any Magento class within Joomla! extensions
• Magento blocks built-in Joomla!
• Checkout using Joomla! component
• Joomla! plugins reacting on Magento events
• Code
• No hacks
• Works only under Joomla! 1.6
• Autoloading all classes when plugin is activated
$customer = Mage::getModel('customer/customer');
35. Joomla! vs Magento
Comparison (1): General
JFusion JMint MageBridge
Type Free Free Commercial
License GPL GPL / OSL GPL / OSL
Joomla! 1.5 compatible Yes Yes Yes
Joomla! 1.6 compatible Yes No Yes
Configuration Backend PHP-class Backend
Joomla! ext ension(s) Yes Yes Yes
Magent o extension(s) No Yes Yes
Ease-of-setup Difficult Xtra difficult Fairly difficult
Documentation Yes Yes Yes
36. Joomla! vs Magento
Comparison (2): Users
JFusion JMint MageBridge
Authentication from J to M Yes Yes Yes
Authentication from M to J No (#1) No Yes
User synchronization Yes (auto) Yes (manually) Yes
Usergroup synchronization No Yes Yes (partially)
Single Sign In (integrated) Yes Yes Yes
Single Sign On (separate apps) Yes No Yes
Password synchronization Yes No Yes
Shadow Joomla! users (#2) Yes (optionally) No Yes (optionally)
#1: JFusion assumes integration of Magento into Joomla! (to my knowledge)
#2: In other words: Users with an empty password, that require remote authentication
37. Joomla! vs Magento
Comparison (3): Visual integration
JFusion JMint MageBridge
Visual integration IFRAME (#1) Int egrated Int egrated
Magent o blocks Yes Yes Yes
Search plugin Yes No Yes
Menu-Items No No Yes
Breadcrumbs No No Yes
Extra modules (cart, product s) No No Yes
Hacks in Joomla! core No Yes (#2) No
#1: JFusion 2.0 will introduce “Frameless Integration” of Magento
#2: This could have been done through a simple System Plugin instead
38. Joomla! vs Magento
Comparison (4): Advanced
JFusion JMint MageBridge
Output caching No Yes Yes
Database integration Yes (partially) No No
Support for multisite Yes No Yes
Backend int egration No Yes Yes
Full Magent o bootstrap Yes Yes No
HTTP requests Multiple Single Single
Install in same directory Yes No No
39. Joomla! vs Magento
Comparison (5): Extras
JFusion JMint MageBridge
JCE integration No No Yes
Multilingual int egration Yes (#1) No Yes (#2)
Magent o code inside Joomla! Yes (#3) No Yes (#4)
Joomla! after-sales actions No No Yes
ACLs to apply private sales No No Yes
#1: JoomFish
#2: JoomFish, Nooku Content, m17n
#3: Requires some small core-hacks inside Magento code
#4: Only works with Joomla! 1.6