Overview
Shopware United’s inaugural event took place on 4th Nov 3pm (UK) and was a thorough investigation of the Shopware 6 backlog. A huge Shout Out to the speakers – Christian Dangl – thanks for stepping in at such short notice – and 🐘 Fabian Blechschmidt did a great job of setting the scene. Thanks have to go to you all for participating in the breakout sessions, we had four breakout sessions in total and I think we had some great discussions and came up with some good ideas – you can read through our notes below.
Round Table Session: Catalogue notes
https://miro.com/app/board/o9J_kjNNyiU=/
Missing features list by number of votes
- Bundle products – ability to configure and sell products consisted of different simple products sold as one, with the option to have different quantities of simple products. (4 votes of 14 people)
- Products mass update – ability to update products properties in bulk, mass edit actions on products in backend panel. (4 votes of 14 people)
- Option to manage product assets, like Download PDF, „How to” videos. Feature should work just like image assets. (3 votes of 14 people)
- Multiple warehouses (stock values) per product (rule-based) Option to manage more than one warehouse, more than one stock with role builders for order management. (3 votes of 14 people)
- RuleBuilder for product text fields. Rule builder to build descriptions, Translations based on sales channel not language. (2 votes of 14 people)
- Better handling of large amounts of variants and properties in administration, problem with UX, witch is not user friendly and hard to work with (2 votes of 14 people)
- Product asset type definitions ie. Which image is primary, which is secondary… purpose of each asset, would allow a variety of template implementations, witch image belongs to where, where the images goes and API (1 vote of 14 people)
- History of stock changes in product to see orders or history of changes on the product on one view. (1 vote of 14 people)
- Better documentation regarding the “what does this feature do in the background” (1 vote of 14 people)
- Stock alert notifications – ability for users to signup and receive notification when product is back in stock and they can buy (1 vote of 14 people)
- Manufactures mass upload, manufactures as dropdown, to have it as a dictionary (0 votes of 14 people)
- More compact advanced prices UI in products (0 votes of 14 people)
- Change the amount of articles show on the listing page (storefront)with options and settings (0 votes of 14 people)
- Simple product inventory ( see inventory levels for both parts and children on one screen (0 votes of 14 people)
Round Table Session: Pricing and promotion notes
https://miro.com/app/board/o9J_kgHOR3E=/
Missing features list by number of votes
- Advanced Promotion Builder – like buy 3 products, get 3rd the cheapest one with discounts or for free (5 votes of 14 people)
- Promotion per category or customer group – calculated with percentage (e.g. 20% off for Cat A and CAt B for a weekend only. Category level management, not any shopping cart (5 votes of 14 people)
- List prices for advanced pricing – available for normal pricing, but no option to define for advanced (4 votes of 14 people)
- Optimized display of advanced pricing for many rules – performance problem, its slow because of rules, that needs to be calculated (4 votes of 14 people)
- Rounding errors – problem with countries, requires to have different rounding option for different countries like Switzerland. Working with different systems (ERP fe) and Shopware results in sometime 1cent “offset” regarding the rounding issue in PHP/Shopware. Tax office and SAP guys will love seeing this fixed. (4 votes of 14 people)
Prices depending on time and date. Price per date form ERP where its available Price rules data and time as special price (1 vote of 14 people
Round Table Session: API
The first Round Table we sat in on was the API topic. With Shopware 6s’ push to be a headless, API first platform we expected this to be a hot topic, and we were not disappointed. About 30 others joined us and after a short introduction and explanation on how the workshop works, we dove right into posting questions, ideas… as well as drawings, smileys, and Nyancat videos.
In an overwhelmingly casual and friendly atmosphere, we discussed each and every topic posted and aimed to bundle the points that closely matched.
Some common topics were documentation as well as best practice sharing around the APIs to on-board developers quicker, as well as around triggering indexing. Also, reference keys for various entities were mentioned several times.
https://miro.com/app/board/o9J_kgHORvc=/
API: accept duplicates image names for different products
→ Unique file name should apply only per product, not globally
SW 5 shopping world mobile / desktop independent (different content mobile / desktop)
→ wish to have the same amount of possibilities for different views right in the backend
→ comment: not directly an api-”problem”
Shipping: Adding fixed fields on product level that can contain hs-codes and country of origin to automate customs-documentation for international (outside of eu) Shipping
Best practise/better documentation/more trainings
→ best practices for syncing huge amounts of data
→ best practice for plugin config API
→ more online training for new dev. + documentation and examples so we can quicker grow our dev teams
→ WRT documentation. They should be split out into MVP (get up and running) steps and the detailed API specs like other platforms provide. The docs for Magento are easy to find (which is important for obvious reasons): they are at /swagger – which is pretty obvious and it works. It would be worth looking at other platforms and seeing who des X well and taking inspiration.
Token Lifetime => Logic Apps
→ Allow for configuring the lifetime of a token for an external app to be aware of its lifetime
→ it’s fixed at the moment in SW6
Timezone Handling
→ All date-times are stored as a UTC time, please add the timezone to date-time fields
API for trigger Indexing
→ Start indexing after a couple of calls
→ Group indexing for sync calls
→ When importing data via API you suppress the reindexing. It would be great to have an endpoint that triggers the reindex of a certain batch of data in the last X hours
The current endpoint reindexes the whole shop, it’s desired to have batch indexes
→ Comment from shopware: api/v2/_action/index – index manually
→ Comment from shopware: And indexing headers “per request” https://docs.shopware.com/en/shopware-platform-dev-en/admin-api-guide/sync-api#more-performance
→ Question: The solution would only call the indexing for all entities, wouldn’t it? It would be nice to just toss a couple of IDs to index just those. Or just trigger the index for “everything that changed in the last 30 minutes”.
API: technical name for all (like categories, properties) to link to technical name/code PIM system
→ Have a unique identifier that never changes. So the property labelled “Green”, should be able to change into “Light green” for example without losing the reference
→ This reference should be set by an external system (most of the time the PIM sets the reference)
→ Comment from shopware: Use the ID key from the external system and use an (any => hex) hashing algorithm (e.g. md5) to map it to a UUID to preserve the unique property of it
→ Question: Wouldn’t that result in invalid UUIDs in the database? That way shopware can never validate the IDs. Sounds more like a workaround than a solid solution to me.
Voting
Documentation, Swagger, Best Practices, Online training | 11 |
Adding fields on product level to set hs-code and country of origin | 4 |
A way to trigger indexing on a subset of updates sent via API | 4 |
Improved timezone handling on date fields | 4 |
Device-specific display options for shopping experiences | 3 |
Custom fields on orders and order lines in the API | 3 |
Fixed identifiers / technical names for categories and properties | 2 |
External keys such as productNumber and customerNumber | 1 |
Lifetime management on auth keys | 1 |
Allow duplicate image names between products | 1 |
Round Table Session: Plugins
The second round was reserved for Missing Shopware 6 Plugins and Integrations. Anyone working with Shopware 6 as an agency, freelance developer, or even merchant will, from time to time, run into a plugin they used in Shopware 5 or another platform that they are missing for Shopware 6.
And we were not disappointed. With 29 sticky notes representing various integrations, there was plenty of input!
A few topics that stood out by a good amount were a Dynamic Form Builder, payment and shipping integrations, as well as Multi Source/Omni Channel inventory, as well as batch editing of products, categories, and orders in the admin.
In true community spirit, many already indicated to be happy to share the workload on realizing these plugins. A big opportunity for Shopware United to offer a platform for these efforts!
https://miro.com/app/board/o9J_kgHORxo=/
Form-Builder
→ Dynamic customizable form generator
→ Part of SW5
Basic import/export tool which can be extended per case
→ Migrations are currently a big issue. (also topic at the api round table)
Subscription Plugin
→ “somebody” seems to work on it, but there will be a lot of payment implementations
→ also SaaS providers such as recurly and chargebee are needed
Extended CMS Plugins
→ make it easier to create new CMS blocks
→ Shopping Experiences import/export
→ CMS page frontend preview
SEO
→ a plugin to add landing pages with unique content for SEO URL based on specific categories and active filters
→ SEO tooling
Transfer settings
→ between Shopware instances (e.g. Rule Builder, Shipping, Payment)
→ Stage/Live
→ in general Transfer Entities between Shopversions/Instances (languageIds, salesChannel)
Email Marketing
→ connection Mailchimp / Klaviyo / Bronto / Github
→ Abandoned Cart
→ Comment: basic integration for Mailchimp already build
MSI
→ Omnichannel – Multi Location Inventory / Click & Collect / Find in store
TaxJar / Avalara for US market
Bundled products
→ magento 1 style
→ Explanation: a Bundle Product is a combination of grouped products (variant) or/and cofig. products. The customer has to choose from different options fields comparable to the grouped products. Each option stands for a single item. The customer gets a bundle of products which will be sold as one.
Localization
→ Payment Gateways
→ Delivery plugins (Still not much for the polish market)
Different Integrations
→ Local Invoicing platforms
→ ERP Integration
→ Exact online => available send mail to [email protected]
Calendar event booking
Topic | Votes |
Bulk updating of products, orders and other entities from the grid (5 votes from a similar idea in other sessions) | 9 |
Dynamic form generator | 5 |
Bundle products (4 votes from similar idea on other session) | 5 |
Multi-Source Inventory (3 votes from a similar idea on other sessions) | 5 |
Plugin to optimize / style emails | 4 |
SEO tooling, for example, create landing pages based on category + active filters with a text and SEO friendly URL | 3 |
Email marketing tool integrations | 2 |
Tool to transfer settings and database entities between instances | 2 |
More ERP integrations | 2 |
Easier creation of CMS blocks, frontend preview for pages | 1 |
Import/export of CMS blocks and Shopping Experiences | 1 |
Subscription plugin or integration with subscription SaaS | 1 |
Local payment and shipping plugins | 1 |
Order notifications based on Symfony Notifier | 1 |
Integration for Taxjar / Avalara | 0 |
More extensibility in the Migration tool | 0 |
Calendar event booking | 0 |
Improved Search for community edition | 0 |