Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

All other Modules /

Discuss all other Modules here.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Magento integration


Go to End
Reply


20 Posts   6415 Views

Avatar
puredevotion

Community Member, 4 Posts

22 June 2010 at 10:24pm

Edited: 23/06/2010 7:50am

Hi there,

I'm not sure if this is the correct board, if not, please move to the correct one :-)

I'm here to announce that I'm starting on the integration of Magento (an E-commerce solution) into silverstripe.
I noticed that the current E-commerce module isn't as extensive as Magento, thus I felt the need for an integration with magento.
I'm calling it Magss (for MAGentoSilverStripe)

This task will follow roughly the following steps:

1. orientation -> compare Magento and Silverstripe architecture
compare the database structures, see how stuff is stored. see how addons are added, how we can keep the flexibility of both while unifying some aspects that come with integration

2. implementation plan -> draw a list of tasks to make a succesful integration
important issue is how to integrate. How to structure directories, and whether or not it cares which of the two you install first.

3. user integration -> I figure that easiest start is to get a unified user system
Integrate the user tables so that when users register, they register for both systems. There should be some tool for transfering users. Note: this might be a good moment also to release some kind of installation guide.

4. front-end integration -> get front-ends integrated

5. back-end integration -> get back-ends integrated.

I'll be posting shortly on any follow ups, and files :-)
any help is apreciated :-)

edit:// Google Code project is created: http://code.google.com/p/magss/

Avatar
Willr

Forum Moderator, 5513 Posts

22 June 2010 at 11:43pm

Hi puredevotion,

That sounds like a great idea! Note there is a movement to rewrite / fix up the ecommerce module which has quite a few people offering help. (http://code.google.com/p/silverstripe-ecommerce/). Thats going to bring the module up to scratch but I'm sure people would like to use Magento though so having that option is great.

I recommend setting up a google code project or a github project to store you code so that people can download, submit fixes easily. Dealing with file zips etc gets hard to manage! Things like google code / github also will allow you to have wikis to manage documentation and planning.

Good Luck :)

Avatar
UncleCheese

Forum Moderator, 4094 Posts

23 June 2010 at 2:24am

This is something we've been talking about doing for a long time. Magento being hands-down the most robust ecomm platform out there right now, I think marrying it to a robust content management application (read: Silverstripe) would create a very competitive solution.

Here's what I see as the most logical path at this point:

- Read about and learn the Magento API. It's very, very good.

- Create a magento Silverstripe module that integrates with the API. You'd have to create a series of frontend controllers that communicate with Magento's backend to retrieve products, etc, and effectively create your store

- Finding a way to do single sign-on, that is allowing the user to access both Magento and Silverstripe through the same credentials would be ideal, but I don't think it could happen easily.

The advantage of using the API is that you get to take advantage of what each framework does best. Magento has a slick UI with an amazing feature set. It doesn't need to be messed with. Any backend you create in Silverstripe just isn't going to be as good.

Silverstripe steps in on the frontend with a solid, easily themeable MVC framework. If you've ever created a Magento store, you probably share my opinion that'd I'd take the Sapphire framework over that jungle of cryptic XML any day of the week.

It's a parity that could be very strong. Each component gets to do what it does best. I don't know of any ecomm solutions that offer CMS to any significant degree. Magento's CMS component is essentially nothing more than a really bare-bones wysiwyg editor, and even that doesn't work too well.

I think you're wise to be going down this path. I've wanted to for a long time, but we can never find the justification for a time investment. Good luck!

Avatar
sonet

Community Member, 33 Posts

23 June 2010 at 3:52am

Magento in opinion is overkill. It is slow. The code is total mess. Very hard to update and optimize. I much rather would like to see a marriage between SilverStripe and OpenCart.

Avatar
jam13

121 Posts

23 June 2010 at 5:27am

We've completed one SilverStripe/Magento integration project already (http://www.time2.co.uk/), and have another one launching in a few days (fingers crossed).

The approach that we took was to keep the systems loosely coupled by exchanging data over http and then caching it to improve perfromance. Magento already has a SOAP api for this which we used, and on the SilverStripe side we wrote a simple controller which delivered json encoded arrays.

For session data we have attempted to share sessions between the two systems, which works fairly well for things like login status, basket count and recently viewed products, but has a few issues with regards the two authentication systems. I'm considering looking at integrating the Zend session libs into SilverStripe to make this easier, as the current session code is very thin.

If anyone's interested in seeing the code then I can probably put some very rough modules together.

As to my opinions on Magento, here's my highlights:

For:
- You can get a very fully featured store set up in very little time
- It's got a good admin interface
- Pretty good support for payment gateways
- Very customisable and modular, both core code and templates
- SOAP api
- It is developing brand recognition with customers

Against:
- It's a memory hog
- The import system is complex, lacks features, and is horribly slow
- Once you go beyond xml/css customisation, it makes future upgrades tricky
- Database architecture is overly complex (EAV)
- Whole thing feels over engineered, simple changes often require editing many files
- Requires javascript (heavy use of prototype and scriptaculous)
- Developer documentation is almost non existant, zero code commenting, and as the whole thing is glued together with xml it make following the code very hard work
- XML configuration for everything (:shudder:)

There's not much else out there to touch it featurewise at the moment though.

Jamie

Avatar
puredevotion

Community Member, 4 Posts

23 June 2010 at 7:24am

That's exactly why I want Magento, it's simply the best.

Any help, or code available is definitly welcome. I'll create a Google Code acount in a minute.
I'm more or less familiar with the Zend session libs, so I'll look into that aswell.
(I actually saw yout time2.co.uk, but couldn't find any info on code/modules. If you could provide code that would be great!)

Avatar
SlothMaster456

Community Member, 3 Posts

23 June 2010 at 8:45pm

Magento and SilverStripe together? Using SOAP to share data? I pity your end-users. Not to mention your fellow engineers and sysadmins.

Seriously I think you need to re-read Mary Shelley's Frankenstein again before you attempt this.

Combining two extremely complicated packages with 15 year-old glue just cannot be a good idea.

Remember KISS? That should be your prime directive as a software engineer.

BTW I have built projects in both SS and Magento.

Attached Files
Avatar
jam13

121 Posts

23 June 2010 at 9:29pm

We used soap because that's the preferred api for magento. Sending data from silverstripe to magento was done using simple json encoded arrays.

As to whether we've created a monster, maybe. But we've purposely kept the two systems loosely connected rather than combining the two stacks which I've seen done for wordpress integrations. With the addition of caching on both sides (both silverstripe and magento use the zend cache libs), the number of calls between stacks is very low and performance is no worse than either one on it's own.

If you know Magento, then you should understand the attraction of avoiding using it as a cms.

Go to Top