About this project
This is a non-profit project. The portal is an open-source project that was created in collaboration with the Shopware community to help local retailers in this trying time.
It allows local governments, cities, or similar authorities to give local merchants an easy way of keeping in touch with their customers and selling goods and services online.
After installing the project on a web server, local authorities can register within the portal.
After registration and activation by the portal owner, a sub-portal will be automatically created for each local authority. After this step, local retailers can register within their local authority's sub-portal. Next, customers can register and interact with retailers in their area.
At the time this project is created, the COVID-19 pandemic has a serious impact on the economy. Since retail stores are forced to close, they now need new solutions to generate an income.
The portal project is trying to help. It is created to serve the project downtowns.io, but since it is open source anyone is able to set up a a web server and provide the same service as downtowns to their local community.
How it works
A picture is worth a thousand words, so here are some example screen designs of the portal. The text is in german, since the portal was initially developed for the german market.
After the registration, the organisation has to be activated by the portal owner. Then these steps follow:
- An organisation (e.g. a city) registers within the portal
- Organisations are created as a sales channel
- Retail stores register within the organisation, internally they are handled as categories
- Retail stores can use an App to upload products
- Users (buyers) can browse retail stores and see what’s in stock
This is how the landing page for an organisation or local authority looks:
And here is an example of a retailer's landing page:
How to install
⚠️The docker setup currently only works if your user ID is 1000.
id -uon your terminal to check.
Clone the project:
git clone https://github.com/shopwareDowntown/downtown.git
Change into the project directory, then start the docker containers, add the cache directory and change into the app container:
docker-compose up -d
docker-compose exec cli bash
When inside the app container, do a basic install, generate a JWT secret and an App Secret, then exit the container:
composer install bin/console system:setup
Change the default credentials as listed and confirm those at the end:
Database user [app]: downtown Database password: uptown Database host [localhost]: mysql Database port : 3306 Database name [shopware]: downtown
bin/console system:install --create-database --basic-setup --force exit
Check if your URL to /public folder [http://shopware.local] is set in /etc/hosts
- Administration is available at http://localhost/admin with user
- Each sales channel represents an organisation/local authority
- Merchants show up in categories after registration and activation
- Merchants register through the separate Angular Merchant Administration described below
You can shut down the portal with this command:
docker-compose down --remove-orphans
The Angular Merchant Administration
Currently there is no docker container available, so you need to start the project using npm.
Change into the directory
src/MerchantFrontend. Then install dependencies and run the project:
npm install && npm run start
After the promt
Compiled successfully, the merchant portal is available at http://localhost:4200/.
Please be aware: The registration for organisations is currently not wired up to the portal, it's just a hubspot form, for production use replace it with your own. For new organisations please create a sales channel manually in the portal.
Merchants are able to register and choose a category. To activate a merchant either click on the link in the registration request e-mail or, in case you haven't set up e-mail sending in the portal, do it directly in the database:
docker-compose exec mysql mysql -p # password is root
UPDATE merchant SET active=1, activation_code = null WHERE email@example.com';
Using the UI
Explaining how to use a UI is easier done via video, so here is a tutorial video on how to configure organisations and merchants:
Mollie is the selected payment provider for downtown. If you want to enable these payment methods, please install and activate the Mollie plugin. Then activate required payment methods and assign it to your sales channel.
Please note, you have to change the APP_URL to be something else then localhost to comply with Mollie API guidelines. Use the /etc/hosts entry for local development.
Enable Payment Methods for Merchants
If you sign is as merchant you'll have access to a new payments tab in your account data. Here you can set your molli API keys and test modes.
In addition to this, you can select what payments of your assigned sales channel should be enabled for your merchant. Only payment methods that are valid for the sales channel and are enabled in here will be shown during the checkout.
You have an idea or you found an issue? Please open an issue here: shopwareDowntown/portal/issues Help retailers by contributing to this project.