Last Updated on January 21, 2022

It may sound easy to differentiate between Shopware apps and plugins. But, let you know it will demand extra effort. 

Let’s try to get it better. 

The system in which traditional PHP MVC developer is interested lies in the plugin system. 

Apps, the other extension system permits you to register an external URL endpoint with a Shopware system to exchange API credentials and register webhooks that Shopware calls when something happens in a Shopware system. 

Apps permit you to build an independent system with which a Shopware system will interact. But, apps will not allow PHP code execution relevant to a Shopware system. For that, you need Shopware plugins. 

And a thin abstraction layer lying on the top of Symfony’s bundle system is a Shopware plugin.

Let’s get deeper to understand more about Shopware apps and plugins. 

This post will introduce Shopware plugins and apps, differences between the two, and similarities. 

Read on!

Shopware Plugins

The robust extension mechanism, Plugins are used to override, extend, and modify almost all the software parts. Simultaneously, they may prove to be harmful also for some of the reasons. 

To add complex functionalities or to craft significant changes, such as dynamic variations, products imports, customer tracking, customized products or content, custom price calculation, connecting 3P identity providers, and more, you need to write a plugin for that. 

In Shopware, plugins are primarily an extension of Symfony bundles. Such plugins and bundles offer their resources, like controllers, tests, or assets. 

While programming plugins for Shopware, an abstract base class gets ready to diminish the friction that all the plugins extend from the plugin base class. 

In this class, helper methods exist that help initialize parameters, such as the plugin’s root path and name in the dependency injection container.

Moreover, every plugin looks like a composer package. 

You can integrate Plugins into Shopware and perform almost everything with them. 

You can follow the Shopware guide to learn how to craft a plugin.

Shopware Apps

Some aspects listed under Plugins (above) are tough to operate in cloud environments. That’s why a less intrusive and distinct pattern comes in. 

Apps permit event-based integration that communicates with the external services using the synchronous API. 

The logic of most of the apps stays within that 3rd-party service, so developers need to ensure it offers proper security, reliability, and protection to their services. 

Moreover, it provides the user a free choice of using any operating environment, programming languages, or frameworks according to the Shopware app’s guidelines (we will cover this later in this post).

Furthermore, apps offer theme support. So, apps hold full functionalities of themes. Plus, apps support payments, and that’s why the users are forwarded to the payment provider. 

The app system permits the users to modify and extend the appearance (will cover this later in this post) and functionality of Shopware. It uses well-defined extensions points, and the users can hook into, to implement their particular use case. 

The app system is crafted to be decoupled from Shopware. It comes with two advantages:

Freedom of Choice

The user should understand the interface between Shopware and his app to start with his app development. He doesn’t need any specialized skill in the internal structure of Shopware or inner workings. 

Also, he holds the freedom to select a framework or programming language of his choice for app implementation. This is attained by decoupling the deployment of Shopware and the app by using webhooks and Admin API to communicate between Shopware and the app, despite directly using programming language constructs. 

Fully Cloud Compatible

By decoupling Shopware and the app, the user’s app automatically becomes compatible for usage in a multi-tenant cloud system. That’s why he can use the app within self-hosted shops and Shopware Cloud apps. 

A dedicated manifest file defines the central interface between the app and Shopware. The manifest is something that connects Shopware and the app.

Moreover, it defines the features the user’s app uses also, how Shopware can link to the app. 

Communication between Shopware and An App

Shopware interacts with an app-only exclusively HTTP-Requests. This way, one can pick a tech stack for his app till he can serve HTTP-Requests. 

Shopware accounts for notifying the user over the events happening in his shop by posting to HTTP-Endpoints that the user defines in the manifest file. 

While conducting such an event, the app is allowed to use the Shopware API to get extra data that the app needs. 

A registration handshake is conducted while the app is being installed to secure this communication. During this, the app is verified, which says that Shopware communicates with the appropriate app backend server, and the app receives the credentials to authenticate against the API. 

App Modifies The Look of Storefront

The app holds the caliber to improve the appearance of eStore by shipping storefront assets, like javascript, template files, snippet files, SCSS sources, etc., with the manifest file. The user is not required to serve those assets from his external server as Shopware will develop the storefront again on app installation and take into account his changes in that process. 

Difference between Shopware App & Plugin

Let’s check out the difference between a Shopware app and a plugin. We will consider some tasks to differentiate between the two.

TaskPluginApp
Change storefront appearanceYes Yes
Add admin modules Yes Yes
Execute Webhooks Yes Yes
Modify database structure, add custom entities Yes No
Integrate payment providers Yes Yes
Publish in the Shopware Store Yes Yes
Install in Shopware 6 Cloud Shops No Yes
Install in Shopware 6 on-Premise Shops Yes Yes
Add custom logic/routes/commands Yes Yes
Control order of style/template inheritance No Yes

Similarities between Shopware App and Plugin

Shopware App and plugin come with some similarities also. Let’s discuss.

Shopware apps and plugins allow:

  • Alteration of storefront appearance 
  • Attachment of admin modules
  • Execution of webhooks
  • Payment providers integration
  • Launch in the Showare Store
  • Installation in Shopware 6 on-Premise Shops
  • Add custom logic/routes/commands

Conclusion

We hope you find this post informative and helpful as it includes relevant learning about Shopware plugins and apps, the difference between these, and similarities. 

If you need more assistance with Shopware development, you can connect with us. We are always here to serve you the best. 

Author

Founder and tech lead at Emizentech, Mr. Vivek has over ten years of experience in developing IT infrastructures and solutions. With his profound knowledge in eCommerce technologies like Shopware, Magento, and Shopify, Mr. Vivek has been assisting SMEs to enterprises across the globe by developing and maintaining their eCommerce applications. Technology innovation and trends insight come easy to Vivek with his thorough knowledge in the eCommerce domain. See him talking about ideas, trends, and technology in this blog. To know more about how Team Vivek can assist you in your eCommerce strategy? Connect team Vivek here.