2. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Creamarketing
- Established in 1998, Vaasa Finland
- Our team consists of 11 dedicated and skilled team members
- Highly specialized in web development and ecommerce
- We have been using SilverStripe since 2009
- Turnover 720.000 € (2020)
- Highest creditworthiness (AAA) since 2009
5. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Ecommerce experience
- First webshop published 2001
- We did all the design and coding from scratch
- Continued to do webshop projects with OSCommerce
- Switched from OSCommerce to Prestashop
- 2 years ”Time-out” session before next step
- First webshop with Silverstripe published in year 2016
6. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Ecommerce today
• About 30 ecommerce projects with SilverStripe
• The majority of our turnover today is from ecommerce projects
• Wide range of projects, from only about 100 products to about 500000
products, both B2B and B2C
• Integrations to ERP and POS systems is very common
• Successfully worked with core web vitals and content creation to get very
good search ranking results
10. • Community modules used
• Changes made
• Custom functionality we created
Technical overview
11. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
SilverShop core
• Overall a good technical and flexible base
• silvershop/core forked to change Product and
ProductCategory base class to DataObject instead of SiteTree
• To support over 100k products
• To make search and filtering easier
• To make multilingual translation of products easier to handle
12. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
SilverShop discounts
• Extended with custom product discount, which actually modifies selling
prices of products, based on different criteria
• Include products by category, manufacturer, attribute values, etc.
• Store best selling price / discount percent on products and variations for
efficient sorting and rendering
13. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Silvershop stock
• Some extensions to support large number of products
• Store in stock status per variation/product on product stock changes
• Options for out-of-stock behaviour per product and variation
• Custom out-of-stock messages per manufacturer and product
14. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Fulltextsearch
• Used for site search and product filtering
• SolrIndex subclassed to support Solr 8
• Support for highlighting, spellchecking, grouped queries, facet queries,
tagged queries, etc.
• Solr grouped query used for site search
• Product filtering using Solr facet queries
17. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Staticpublishqueue
• Publish pages, product category pages, product pages statically
• Some pages are deliberetly not statically published, like the checkout page
• Dynamic data, like the shopping cart, are filled in via ajax on each request
• FilesystemPublisher subclassed to do the actual page rendering in a
separate process, to not run out of memory
• Custom StaticCacheFullBuildJob to build full static cache for all
pages and product urls in all Fluent locales
18. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Queued jobs
• Used in combination with fulltextsearch and staticpublishqueue
• One fast and one large queue (plus an immediate queue)
• Custom QueueRunner subclass that writes mark and lock files per queue
• To make a queue completely sequential, and to make checking for jobs to run
on the fast queue more efficient
• Custom CronJob queued job, that parses crontab syntax in yml-files, for
scheduling jobs on the large queue
19. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Frontend
• Heavy use of image manipulations for core web vitals scores
• Custom image manipulation for doing webp transcoding, using image
magick and libwebp
• Picture-tags in templates with multiple croppings for different media
queries
• Bundling requirements via yarn and webpack
24. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Reports
• Custom reports, based on nested GridFields
• Custom ReportList, as a subclass of SQLQueryList
• Focus on sales and stock reports
25. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Other custom modules and extensions
• Google shopping feeds
• Campaigns
• Manufacturer pages
• Sample products
• Abandoned carts
• Integrations to Finnish and Swedish payment providers
26. Ratakatu 7, 65100 VAASA, Finland +358 10 421 8860 www.creamarketing.com
Future plans
• More marketing automation
• More related content on product pages and at checkout, either through site
logic or via Google Vision AI API
• More admin improvements for merchants