As I might have mentioned before (but maybe somewhere else), Shopware is my new favorite in terms of OpenSource-eCommerce solutions.

Since it is written in PHP, hosted on GitHub, setting up a new shop by cloning from Shopware's GitHub sounds like no big deal at first and it is quite easy indeed, but there are some hidden traps.

Basically you have to follow the steps also mentioned in their GitHub-Readme in the section called Start Hacking. I am going through the following steps, altering some of the recommended and adding some more:

1) Get your copy

There are two main-approaches of getting the files into your project. Which one to use depends on your personal favor, but also on the Git Hosting Service you or your company is using.

1a) Use your own fork

If you are using GitHub, this is the way to go. Fork the repository and clone it on your local machine.

git clone [email protected]:[YOUR USERNAME]/shopware-4.git
      
1b) Use an additional remote and branch

If you don't use GitHub and prefer hosting your repositories on your own server or for example at Bitbucket (as I do), you can't fork a GitHub-Repo. So you have to clone it onto your local machine and add some additional remote and branch to achieve something comparable.

First clone the original repo.

git clone https://github.com/ShopwareAG/shopware-4.git
      

Add a new remote and push.

git remote add myrepo [email protected]:myusername/myrepo.git
      git push myrepo master
      

Add and checkout your branch.

git branch mybranch
      git push myrepo mybranch
      git checkout mybranch
      

Using this method you can merge a new Shopware version into your branch from the original Shopware Repo at any time without having to merge anything by hand.

2) Build/seed Database

Now it's time to create your config files, build and seed the database. I'm not going into details about the config files here, I think you'll manage this by yourself, if you did it up to here.

To build and pre-fill the database use the provided script in the build-directory.

php build/ApplyDeltas.php
      

On a server environment you may prefer using Apache Ant for creating config and database as Shopware provides scripts for this as well. I'll cover this in another post in the future.

Until now almost everything goes according to Shopware's Readme and at this point you have your shop up and running (if you have configured your webserver etc., which I assume). Yay! Start coding, theming, skinning and go crazy...

BUT WAIT! As soon as you try to install plugins from the Shopware Community Store, even those which come preinstalled like PayPal, or try to update existing plugins you'll run into some strange errors sooner or later, with not really helpful error messages such as *Given file is no zip archive*. I explained the issue in more detail in this (german) post at the Shopware forum: http://forum.shopware.de/post81016.html#p81016

But you can solve this issue by a simple step:

3) Set your version

As mentioned in the forum post these problems are caused by a missing version number in /engine/Shopware/Application.php. In this file, there is only a placeholder ____VERSION____, which is presumably replaced by hand, when the Shopware crew is wrapping up a new release build.
So to fix this error, simply replace the placeholder with a valid version number and you are set:

...
      class Shopware extends Enlight_Application
          {
          const VERSION      = '4.1.4';
          const VERSION_TEXT = '';
          const REVISION     = '201312061433';
      ...
      

With this fix you can use the whole Plugin-Management without any problems.