You are here: Home Blog

E-commerce and Plone as web services

by Sasha Vinčić Nov 01, 2010 02:20 PM
With e-commerce as a web services we made Plone run along nicely with Lightning Fast Shop. LFS is a Django based e-commerce system.
E-commerce and Plone as web services

Plone conference 2010

Plone CMS or framework

Plone is a CMS not a framework and trying to shoehorn products as add ons is not always the best option. E-commerce are big and complex systems and not simple plugins.

Today we have EasyShop GetPaid and PCommerce which are installable into Plone. None of them is perfect and almost all of them are abandoned or have very little development. When they are installed they are hard to remove because your Plone CMS has become a product inventory, a order management and customer management system. Keeping this out of Plone will make your Plone experience much better.

Service Oriented Architecture

SOA has been around for a while and we use web services like Google Maps everyday. When you create or need new functions for your website think API - web service. This way you can use the best tool for the job or an existing tool like e-commerce system.

Benefits beside the best tool for the job is that your Plone site is easier to upgrade because the CMS is not polluted with a complex system. You also have the flexibility to exchange services when needed or choose to host some of them in the cloud.

E-commerce and theme as a service

When we looked for the e-commerce system we had the requirements that it should be python, it should have a good open source license and be actively developed. We could only find two python e-commerce systems, Lightning Fast Shop - LFS and Satchmo both based on Django. In our case study, Lavendeldockor we choose LFS because it was clean, small and fast. We also implemented the theme with XDV so we could reuse it for both Plone and LFS.

Plone conference 2010 presentation and further information

For more information you can watch the Plone conference presentation about External E-commerce and Plone play along or contact Sasha Vinčić at +46708 840 660 or online form.

 

Time-based publishing in Plone with higher security

by Sasha Vinčić Aug 23, 2010 09:55 PM
Categories
In Plone it's always been possible to do time-based publishing and here is a tip how to make it even safer and more secure.
Time-based publishing in Plone with higher security

Powerful Workflow Engine

Plone's powerful workflow system let you control security of each object in each state. With time-base publishing you want a new document to appear first when the effective date has been reached. In some cases you need to keep the document safe and protected from public before the effective date is reached. With Plone standard workflow the document that is in published state has already permissions which allows public to access it if they know the url even if it should be published in the future. In most cases this is enough since Plone will hide the document from searches and listings but in some cases it would be a disaster if someone accessed a document before the intended time, i.e stock market information.

Add an automatic transition to your workflow that is triggered if the publish date is in the future. Make it go from 'published' state to  "Published (future)" which should have the same permissions as the Private state. Then use the zope built in cron like system to call a simple script that finds all content in 'Publshed (future)' state with publish date before now and publishes them.

This way you will avoid security by obscurity, i.e having accessible content laying around on your websites even though it should be protected.

Need help with Plone?

Contact Sasha Vinčić at +46708 840 660 or online form.

Do you want to know more about Plone?

Read in the Plone brochure (Swedish) or contact us

.

Python based eCommerce System - technical comparison

by thulin Jul 12, 2010 11:18 AM
Categories
Valentine Web Systems went out looking for a new eCommerce system. The requirements was that it would be based on Python, open source and easy to extend.

GetPaid

License: ZPL

Technologies: Python 2.4, Plone 3.x (Plone 4 support in beta)

Extendability: Skin layers, portlets

Listed sites/users: 16

Can be run in Google App Engine: No (Plone/Zope is not compatible)

Complete solution, add-on for Plone.

Features: Donations, pay-to-publish, any content "buyable", discounts, UPS shipping (with real-time shipping charge calculation), good documentation, tests(!), getpaid products are available in a multitude of languages and all products are tagged with translatable text-ids.


EasyShop

License: GPL

Familiar technologies: Python 2.4, Plone 3.2.5

Extendability: Skin layers, portlets

Listed sites/users: A handful (most being migrated to LFS?)

Can be run in Google App Engine: No (Plone/Zope is not compatible)

Complete solution, add-on for Plone.


Lightning Fast Shop

License: BSD

Technologies: Python 2.6, jQuery, jQuery UI, TinyMCE, Django

Extendability: Product templates, portlets

Listed sites/users: 11 http://www.getlfs.com/live-shops

Can be run in Google App Engine: No (Python 2.6 can't be run)

Easy to set up, clean management interface, functional shop out of the box and well thought out design. Snappy performance!


Satchmo

License: BSD

Familiar technologies: Python, Django 1.2.1

Extendability: Very high

Listed sites/users: At least 67

Can be run in Google App Engine: No

Satchmo is a complete web shop like the rest. The admin interface works fine, is snappy but is a little bit cluttered and asks tons of questions.

 

Conclusion

All the tested solutions are functional out of the box. The two Plone based solutions have an advantage in having a tool chain that is familiar to us, but the Django based ones have better performance. LFS stands out because it also looks good out of the box


What is your experience?

Please send us comments and tell us your ecommerce experience. Which system is your favorite?

 

Links

Valentine Labs

by thulin Jun 30, 2010 08:17 AM
You probably think of Valentine Web Systems as a group of Plone Experts, but did you know that we also have a secret underground lab? Keep on reading...
Valentine Labs

Tweet Arena from Valentine Labs

For a long time, the HTML web standard has been standing still and innovation has mostly happened within proprietary plug-ins such as Flash. Today though, the future of the web is seen within the next generation HTML5 and CSS3 standards.

HTML5 and CSS3 is the new industry standard that leverages:

  • Drag & drop
  • Video
  • Audio
  • 2D and 3D graphics and visualizations
  • Transitions
  • Games

To keep up with all of this, Valentine Labs was formed by our front-end expert Per Thulin. Per comes from a creative game development background with lots of experience in multimedia, graphics and visualization. In just a few weeks we have come up with some absolutely amazing projects:

  • Valentine Notes - A CSS3 technology demo that mimics the UI and transitions of Apples iPhone Notes application.
  • ScriptMate - An application for theater actors to create and rehearse scripts together.
  • Timeline Project - Helps people reach their daily goals.
  • Tweet Arena - A CCS (content combining system) where the content is hosted on social media sites and web services.

Is your web site ready for the future?

Contact Sasha Vinčić at +46708 840 660 or online form.

Try our web applications

Valentine Labs

 More on HTML5:

New cool web sites for Jeeves

by Sasha Vinčić May 31, 2010 09:27 AM
Valentine Web Systems are proud to deliver a nice looking website with more multimedia, languages and possibilities with a simpler way to manage content. Everything powered by the most secure CMS, Plone.
New cool web sites for Jeeves

The new public website of Jeeves

For the leading supplier of ERP systems - Jeeves Information Systems, only the leading CMS, Plone, is good enough. Valentine Web Systems have delivered two websites. The first is targeted at investors where it is important that press-releases are published on time and not available to the public before they are published. The other website is translated into 11 languages where each language represents the countries where Jeeves has got local partners. Each partner has a login and can maintain their content themselves. The front page content is fully controlled by the editors.

"In May 2010 we launched a new website which we have worked with very intensively since the beginning of this year. With the new website, we now have simple management of press releases, more multimedia plus a powerful and easy to use system for multilingual management for the local partner sites. During the whole development process cooperated closely with Valentine Web Systems who showed strong commitment and have been very helpful. Sasha and Per at Valentine have got enormous knowledge, are creative and will not give up until they find the best solution. They have the ability to combine their technical know-how with a good understanding of customer needs.

Thank you for a great job!"
Cecilia Kullberg
Jeeves Information Systems

Are you looking for a commited provider?

Contact Sasha Vinčić at +46708 840 660 or online form.

Do you want to know more about Plone?

Read in the Plone brochure (Swedish) or contact us.

 

Merry Christmas and Happy New year

by Sasha Vinčić Dec 28, 2009 11:24 AM
Categories
We at Valentine Web Systems whish everyone a Merry Christmas and Happy New year. We are looking forward to a great 2010 and hope you will have it too.
Snow man

Plone powers 50GB of environmental data, maps and figures

by Sasha Vinčić Nov 30, 2009 08:59 AM
Categories
Plone is the open source CMS used most among government and EU organizations. One of them is EEA which recently migrated their data service from a custom solution on top of IIS to Plone. Plone now serves 50GB of environmental data, maps and figures.
Plone powers 50GB of environmental data, maps and figures

EEA figures

Recently we upgraded our customers website for large data handling. The main development of the product eea.datatservice was done by our colleagues at Eau de Web in Romania, and our part was to prepare Plone 2.5 to handle large data.

Back to the future - blobs in Plone

The first solution for external storage was iw.fss, but due the cluster setup on our production server, we went with the blob approach because it is more future proof since it is part of the upcoming Plone 4 and doesn't require any shared read/write storage for all instances compared to iw.fss.

We tried out the existing branch of blob support for Plone 2.5 but it was old and lacked functionality, so we had to cut a new branch to backport the latest plone.app.blob. While Andreas Z was working on it we where back-porting the code more or less day by day :) Today the blob support for Plone 2.5 allows files and images to be stored outside ZODB in blobs.

In eea.dataservice we have custom content types with large files and images where some are 18000x16000px! All these maps and figures are converted in to number of different formats. All the images are scaled in different sizes and everything is stored in blobs. To store scales in blobs we backported plone.app.imaging which is used in Plone 4. 

Fast but small servers - can't cache everything

In our cluster that is running on blade servers with very little local storage, we have to consider what to cache and where. The large storage on these servers is mounted from SAN, which is a fast and secure storage. The blob storage is mounted on the machine that runs the ZEO and additional to that we have smaller blobcaches for the instances on each machine, 25GB/machine. Since we can't fit the whole blobstorage in cache we clean it manually with a cron. In the newer ZODB3 and Plone there is configuration for automatic cleanup but we can't use it with Plone 2.5. This manual cleaning outside Plone has raised an issue where an instance expects the blob in the cache but it's not there. This happens if the object referring to the blob is in the object cache of the instance. If it is not the problem never arise since the blob is reloaded from ZEO. We are now testing different configurations for the object cache size before we try to catch those exeptions and try to reload the blob from ZEO instead.

 

Open source

All code used for this website is open sourced and available in Plone or collective repositories and Eionet SVN for i.e eea.dataservice

Plone grew with 50GB of data and 20% more traffic

www.eea.europa.eu the Plone 2.5 site is now getting 20% more traffic and with 50GB more data than before the migration. Next step will be to migrate the multimedia and other large content to blobs which will probably free almost 10GB from the Data.fs.

Want to know more?

Please contact Sasha Vinčić for more information. Contact details on the right.

Multilingual and high security at Plone Conference 2009

by Sasha Vinčić Nov 03, 2009 09:37 AM
One of the largest Plone conferences is over. Not only was it big, but also great, with very high quality talks and for the first time, open space.
Multilingual and high security at Plone Conference 2009

Plone Conference 2009

The grid for the open space was filled up with over 40 talks in just of couple minutes, that is more then the scheduled ones.

Valentine Web Systems team was represented by Per Thulin and me, Sasha Vinčić. I gave a talk about 'Managing multilingual sites' which I hope gave some enlightenment about use cases and pitfalls with multilingual sites. You can see the slides below and recording at ustream.tv.

Plone developers and integrators are as always busy working on interesting solutions. I understand why Microsoft's Jeff Tepper thought Plone is Sharepoints open source competitor. Plone may not be the most googled CMS but it is definitly the most secure and the biggest open source competitor to Sharepoint, Websphere and Documentum. Kees Hink and Kim Chee Leong told us how they hardened Plone to military strength. It was audited by Ernst & Young & Pine Digital Security granted certifiedsecure.eu certificate!

Valentine Web Systems provides multilingual and very secure portals built with Plone. If you want to know more, please contact us.

 

When we made internet history on Tjärö island

by Sasha Vinčić Aug 31, 2009 09:48 PM
Tjärö island was throughout a weekend in August the scene for something that more or less could be described as a gigantic come together party for business people within the internet world. More than 250 persons gathered on the small island to spend some time with each other and to share experiences about Social Web.
When we made internet history on Tjärö island

Tjärö is a small and idyllic island in the Karlshamn archipelago in the Swedish southern region of Blekinge. The island is own by the Swedish Tourism Foundation and is for example equipped with a youth hostel, a camping ground, a restaurant and conference facilities. In other words: Most of the things that are needed for an IT sprint with a big gang of happy geeks.

This was how the stage looked like when Tomas Wennström invited some of his friends to a meeting throughout August 21-23, where he expected 10 people at the most to show up. Well, he ended up facing a giant looking interest from people from everywhere to join the party. 286 persons from all the Nordic countries took the boat from Karlshamn to Tjärö to attend Sweden Social Web Camp 2009, as the sprint was called. Sasha Vinčić from Valentine Web Systems was one of them. Valentine Web Systems was, by the way, one of the sponsors of the event.
Sweden Social Web Camp
The main idea behind Sweden Social Web Camp (SSWC) was to give hard working internet geeks from different places a chance to join up and enjoy some nice time together. Just to get a voice and a face on some of them who nowadays turn up on Twitter and other social forums on internet was gold worth. The fact that people from Norway, Finland and Denmark also showed up gave the event a border crossing touch.

The sprint on Tjärö was not only about party and glamour but most of all a brainstorming society where everyone could share experiences and know how about Social Web. The scheduled sessions where the web people could share this valuable stuff with each other were very crowded. Dinner, brunch and peaceful moments by the camp fire were other opportunities for deep, thoughtful and friendly conversations

The aftertaste for every attendant of SSWC has been like enjoying a tasty candy bar. A sprint like this creates everlasting bounds of friendship and the words of joy and appreciation has been numerous after SSWC. Everyone agrees about the thought that this is far from a one hit wonder.

Says Tomas Wennström, the man behind SSWC: “I think we made internet history on Tjärö island.” You can´t describe it better than that.

Sprinting - Agile Development and Amazing Ways to Learn

by Sasha Vinčić Aug 10, 2009 12:30 PM
Categories
Bristol Balloon Sprint, a great and intense sprint, is now over. Large file (blob) handling, performance benchmarking tests, automatic XHTML validation test, TinyMCE integration and much more work was done.
Sprinting - Agile Development and Amazing Ways to Learn

Bristol Balloon Sprint 2009

Me, Sasha Vinčić(twitter), and Per Thulin(twitter) had an amazing time. This was Per's first sprint and he says it was everything he expected from what I have told him :) Over 20 people met up in Bristol to improve Plone CMS and have fun during the Balloon fiesta.

Performance testing and benchmarking

I worked with Tom Lazar, Alan Hoey and Matthew Wilkes on plone performance testing and benchmarking with funkload.  We continued on the collective.funkload by Ross Patterson and added a recipe collective.recipe.funkload wich is a convinient recipe to add funkload to your buildout. With funkload you can then run tests, benchmark and create reports from the results to see how the performance changes. Andreas Zeidler showed me mr.ripley which takes a normal log in combined form and replays it against the domain url you tell it too. This can be used to test new configurations of same buildout or to warm up a site after restart so objects get cached. I then realized this can be used to create funkload tests and use them for benchmarking a site with real life traffic patterns. I added the proxy functionality to mr.ripley (not in svn as of writing) and run the replay through funkload recorder proxy and wola we have tests from real traffic.   

TinyMCE replacing Kupu in Plone

Per worked with Ben Mason, James Guest and Owen Curtis-Quick on the TinyMCE track in order to improve the integration with Plone, especially with regard to inserting images. This involved both working out ways to provide available image size dimensions that have been configured to the specific content type, and making the user interface more consistent with the rest of Plone. TinyMCE is the content editor that will be used in future versions of Plone, and a big reason for that is that it produces clean and valid markup. Therefore, another important fix that was done was to add some missing attributes on the image tag being produced. Rob, the maintainer of Products.TinyMCE happily reports that all this work has been merged into trunk and thus will become part of the next release of Products.TinyMCE!

XHTML validation, transmogrifier, 64bit acquisition and much more

I just want to mention some other topics that were worked on during the sprint. XHTML validation through automatic testing, you can write tests to validate your markup. This is important for tools like Deliverance.

Hanno Schlichting worked on some deep stuff like fixing C code for acquisition on 64 bits machines. There was bugfixes for LinguaPlone and release of transmogrifier which is a powerful transformer. Formgen, override skin templates/scripts with view... and probably some things I have missed.

A great sprint organized by TeamRubber in Bristol!