SlideShare a Scribd company logo
1 of 43
Download to read offline
PRODUCT
MARKETING
MANAGER
WP Engine
HEAD OF
ENGINEERING
WooCommerce
SENIOR FRONT
END ENGINEER
10up
CIO
Indpsyde
Joshua Dailey Robert Windisch
Beau Lebens Jacob Peattie
Building WordPress eCommerce at Scale
WooCommerce Custom Order Tables
HEAD OF ENGINEERING
WooCommerce
@beaulebens
Beau Lebens
4
UBIQUITOUS
Works anywhere WordPress
does.
Similar technical requirements and
approaches.
Those requirements create certain
constraints on what can be done out
of the box.
CONFIGURABLE
Adaptable to many situations.
EXTENSIBLE
Customizable to specific
needs.
Custom functionality can be
introduced through plugins,
extensions, and themes.
WooCommerce aims to be:
Advanced configuration allows for
integrating with Redis and
memcache, load balancing
databases and web servers, and
much more.
5
Pros
• If WordPress works, WooCommerce works. No
additional access/permissions required to create new
tables (easy to get up and running in any WordPress
environment). No code-level table creation/migration
failures.
• Works the way WordPress works. Benefits from many
existing mechanisms in WordPress (caching, data access
methods, taxonomies, etc). Translates easily to using WP
List Table and other internal concepts.
Cons
Ubiquitous
• Minimal consideration for the custom storage needs of
the data (numbers, booleans, etc).
• More complex data ends up being stored using “lowest
common denominator” approach in “meta”.
• Impossible to optimize for different access models (e.g.
heavy writing vs infrequent reads).
• Data intermingled with very different data types
(posts/content, products, and orders all in a shared
space).
Leverages WordPress tables to minimize external requirements and complexity.
6
wp_posts thrash
• Lots of reads and writes (posts, products, orders), all
happening in the same table.
• Different usage models can make matters even worse
(large catalog, dynamic creation of product records,
content-heavy sites, etc).
wp_postmeta inflation
Two central issues
• Similar read/write contention.
• Postmeta stores additional data for all types; posts,
products, data. Compounds meta inflation.
• Most plugins and extensions have additional data
storage needs, multiplying the problem.
• Can easily create 20x (or more) the row count from the
posts table.
Most issues we’ve seen center around the two core tables, specifically related to order volume
7
CRUD classes introduced
8
Lookup tables added
9
Custom order tables
10
Data migration
• Non-technical users ideally need to be able to migrate
data to new structure without taking their store offline.
• For any active store, that means ongoing sync (vs one-off
migration), with the ability to turn on/off repeatedly in
case anything goes wrong.
• Migration could mean anything from very small stores
with “dozens” of orders, to very large stores with millions
of orders; all on varied hosting configurations.
• We don’t actually know what all of the data is—a lot of it
is just key/value pairs.
Backwards compatibility
Major challenges
• Merchants expect to click “Update” and have everything
work. We can’t break their stores in this scenario.
• Extension developers aren’t always actively updating
their extensions.
• Endless code exists that accesses data via WP helpers
(get_post()), or worse, via direct SQL.
• We have no control over what combination of software
(WordPress, WooCommerce, plugins) people are running
on their store.
Introducing custom tables on a single, controlled store is relatively easy.
Doing it for an entire ecosystem is exponentially more difficult.
11
• Long road to updating “all”
extensions and code to support
new approach.
• Eventual goal is for new stores to
all start with custom order
tables.
• Existing stores will choose if they
migrate, based on needs and
compatibility.
• Research known problems and
existing solutions.
• Proposals to community and
discussion of known issues.
• Ensure full CRUD usage
throughout core.
• Introduce new tables and data
access (via CRUD).
• Build out migration routines and
management UI.
Research, feedback, MVP
• Early access to enable developers to
adapt their extensions etc.
• Developer-oriented opt-in for testing
and verifying.
• Detailed upgrade guides for
developers.
• Prove out migration routines in
various environments.
• Refine table structure and approach
based on more real-world testing.
• Work with hosts to understand
impacts
Opt-in availability
July, 2022
Eventual default
Solution development and rollout
Update & migrate
Test & refine
Define & build
12
To keep WooCommerce moving
forward, we all need to adapt to this
change. We need to hear about
problems and unique situations,
understand what works and what
doesn’t, and get detailed technical
information to help build a solution
that works for everyone.
This is a major change, and we
can’t do it without community
involvement.
• Read the announcement post. Follow our developer blog for more updates.
• Follow progress in GitHub (entire project board).
• As early as possible, help us validate the approach, and let us know where it
doesn’t apply or work for stores you manage.
• Give us detailed technical feedback about what doesn’t work, and ideally why.
• If you run stores, build extensions, or write custom order code, move to the
CRUD layer (already stable and shipping in core for years) and be prepared for
additional changes. Start thinking about if you can need custom data storage.
▪ Review the proposed table structures and make sure your data would
fit in the proposed model. If not, let us know and help us come up with
a solution that works.
• Opt-in early (on a staging server!) and test normal operations + migration.
Give us detailed feedback on what works and what doesn’t. We especially
want to know about plugins/extensions that don’t work as expected.
The road ahead
Help us,
help you
@beaulebens
beau@automattic.com
Thank you.
Beau Lebens
How ElasticPress and Instant Results can
help you scale your WooCommerce store
SENIOR FRONT END ENGINEER
10up
Jacob Peattie
15
Faceted search, or faceted navigation,
refers to the ability to filter search results
by additional options, particularly when
the available options update to reflect any
filters already applied.
eg. A color filter that only shows color
options that are available for the current
category.
Faceted search
• Not well suited to search.
▪ Getting relevant results.
▪ Searching custom fields.
▪ Synonyms and misspellings.
▪ Faceted search.
• MySQL database can be difficult to scale.
• WooCommerce making improvements.
How does the WordPress
database limit WooCommerce?
16
ElasticPress is a WordPress plugin developed by 10up that
brings Elasticsearch to WordPress.
Elasticsearch is a storage engine designed for search.
• Relevant results.
• Custom fields.
• Synonyms.
• Faceted search.
• Scalable.
• Fast.
ElasticPress.io is a hosted service from 10up that you can
use with the ElasticPress plugin so that you don’t need to
manage your own Elasticsearch server.
What is ElasticPress?
17
How does ElasticPress work?
Database
User WordPress
1
2
3
4
18
How does ElasticPress work?
Database
WordPress
1
2 3
4
5
6
User
19
By offloading queries to Elasticsearch, ElasticPress:
• Ensures more relevant search results.
• Enables new features, such as:
▪ Fast autosuggest.
▪ Synonyms.
▪ Search the contents of files.
▪ Faceted search.
• Reduces the load on your database.
How does ElasticPress work?
20
• Searches still query the MySQL database.
• WordPress still needs to be loaded.
▪ Could still be slow on poor hosting or when using
poorly optimised themes and plugins.
• Search results can’t update instantly.
What are the
limitations of this
approach?
21
Instant Results is a new feature of ElasticPress:
• Results loaded with AJAX into a pop-up.
• Sends search queries directly to Elasticsearch via
an ElasticPress.io API.
• See results live as you type and filter.
What is ElasticPress Instant Results?
22
How does Instant Results work?
Database
WordPress
1
2
User
Demo
24
How this helps:
• All the benefits of ElasticPress.
▪ More relevant results.
▪ Synonyms.
▪ Faceted search.
• 600% faster search results.
• Helps scale your site.
▪ Searching and filtering products can be the most expensive queries on a site.
▪ Instant Results searches don’t hit your web server or database at all, freeing
up resources.
How does Instant Results help?
25
Start Using Instant Results Today
ElasticPress
The ElasticPress plugin is free to
download from the WordPress
plugin repository.
https://wordpress.org/plugins/elasticpress/
ElasticPress.io
You can sign up for a 14 day free
trial of ElasticPress.io at the
ElasticPress website.
https://www.elasticpress.io/
10up
Thank you.
Jacob Peattie
How to Scale WooCommerce
CIO
Inpsyde
Robert Windisch
Scaling WordPress
29
• It’s supported! PHP 5/7 isn’t.
• Performance!
• Enables better Code
• Update only on testing environment!
• You want to move to PHP 8 ASAP
• Plugins/Themes that breaks can be
indicator of performance hogs
PHP8
30
• Reverse Proxy
• Not on the same server
• Closer to the visitor -> faster request
• Can also mitigate Attacks
• Your server can be offline
• Only use your server run PHP
Content Delivery Network
31
Time to First Byte
How long does it
take to receive the
first data from
your site
Good
conversation
starter with your
host
Can be optimized,
but maybe
prepare to switch
hosts
Everything
influences that:
• How much is going
on the server
• How fast is PHP
• Object caching
• Cold Caches
• MySQL
32
Object Cache
Server that serves
data from
Memory
Memory is faster
than disk
Memcached or
Redis Plugins for
WordPress
Perfect base to
scale to multiple
servers
WordPress will
speed up right
away
Look out for the
right Invalidation
Object caching in
code
Be careful with
Ecommerce Pages
- WP Engine is
extending this
Advanced Optimization
34
Hard Steps for WordPress Scaling
ElasticSearch and
Custom
Development
Write MySQL
queries on a
different server
Use a Load
Balancing
Debug your
Performance with
tools like New
Relic or
Blackfire.io
Review every line
of plugins and
themes
Exit early and
other coding
patterns
35
• State of the Art Search
• WordPress is not for searching
• External Server
• Facet Search
• Weight
• Synonyms
Elastic
36
Premium Dedicated Environment
• Server platform matters
• Better at delivering dynamic content (up to
40% faster over shared)
• Best for scaling
Dedicated Servers
Online Offline
SSG Gateway
WP Engine API
Attached
Storage
Onlie VM
PHP MyAdmin
Bastion Cluster
Backup Snapshot
System
from
37
New Relic
38
Review the Code
Not
everything
on init
actions
Read every
line!
Scaling WooCommerce
40
Review the Code
Check Data Stores to tweak
requests
https://github.com/woocommerce/woocommerce/wi
ki/Data-Stores
Custom Tables for WooCommerce
are coming
https://developer.woocommerce.com/2022/01/17/th
e-plan-for-the-woocommerce-custom-order-table/
Inpsyde
Thank you.
Robert Windisch
WP Engine
Thank you.
Joshua Dailey
Building WordPress eCommerce at Scale .pdf

More Related Content

Similar to Building WordPress eCommerce at Scale .pdf

Front End: Building Future-Proof eCommerce Sites.pdf
Front End: Building Future-Proof eCommerce Sites.pdfFront End: Building Future-Proof eCommerce Sites.pdf
Front End: Building Future-Proof eCommerce Sites.pdfWP Engine
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsTaylor Lovett
 
Improving Performance on Magento 1*
Improving Performance on Magento 1*Improving Performance on Magento 1*
Improving Performance on Magento 1*David Z. Lerner
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtimeDBmaestro - Database DevOps
 
PPT-Presentation-of-E-Commerce-website-Project.pptx
PPT-Presentation-of-E-Commerce-website-Project.pptxPPT-Presentation-of-E-Commerce-website-Project.pptx
PPT-Presentation-of-E-Commerce-website-Project.pptxHimanshu883663
 
Website design by using CMS _M.Mujeeb Riaz
Website design by using CMS _M.Mujeeb Riaz Website design by using CMS _M.Mujeeb Riaz
Website design by using CMS _M.Mujeeb Riaz Mujeeb Riaz
 
Redgate database DevOps demo webinar (with Git & Jenkins)
Redgate database DevOps demo webinar (with Git & Jenkins)Redgate database DevOps demo webinar (with Git & Jenkins)
Redgate database DevOps demo webinar (with Git & Jenkins)Red Gate Software
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperOfer Zelig
 
Managing WordPress Websites - Training Course - Feb 2015
Managing WordPress Websites - Training Course - Feb 2015Managing WordPress Websites - Training Course - Feb 2015
Managing WordPress Websites - Training Course - Feb 2015John A. Walsh
 
'The Minimalist Publisher How to Do More with Less' at Mumbrella Publish 2022
'The Minimalist Publisher How to Do More with Less' at Mumbrella Publish 2022'The Minimalist Publisher How to Do More with Less' at Mumbrella Publish 2022
'The Minimalist Publisher How to Do More with Less' at Mumbrella Publish 2022AnneNguyen92
 
Winning the game with WordPress hosting solutions powered by Plesk Onyx
Winning the game with WordPress hosting solutions powered by Plesk OnyxWinning the game with WordPress hosting solutions powered by Plesk Onyx
Winning the game with WordPress hosting solutions powered by Plesk OnyxPlesk
 
Openxcell conducts a successful webinar on Magento Optimization
Openxcell conducts a successful webinar on Magento OptimizationOpenxcell conducts a successful webinar on Magento Optimization
Openxcell conducts a successful webinar on Magento OptimizationOpenXcell Technolabs
 
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...WordCamp Sydney
 
WordPress Maintenance Services Company in USA
WordPress Maintenance Services Company in USAWordPress Maintenance Services Company in USA
WordPress Maintenance Services Company in USADevin Roy
 
Website builders workshop
Website builders workshopWebsite builders workshop
Website builders workshopAshley Turner
 
Net2Vic: How to Choose a Content Management System for Your New Website
Net2Vic: How to Choose a Content Management System for Your New WebsiteNet2Vic: How to Choose a Content Management System for Your New Website
Net2Vic: How to Choose a Content Management System for Your New WebsiteNetSquared Victoria
 

Similar to Building WordPress eCommerce at Scale .pdf (20)

Front End: Building Future-Proof eCommerce Sites.pdf
Front End: Building Future-Proof eCommerce Sites.pdfFront End: Building Future-Proof eCommerce Sites.pdf
Front End: Building Future-Proof eCommerce Sites.pdf
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
 
Smash.wordpress
Smash.wordpressSmash.wordpress
Smash.wordpress
 
Improving Performance on Magento 1*
Improving Performance on Magento 1*Improving Performance on Magento 1*
Improving Performance on Magento 1*
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtime
 
Word press in 30 minutes
Word press in 30 minutesWord press in 30 minutes
Word press in 30 minutes
 
PPT-Presentation-of-E-Commerce-website-Project.pptx
PPT-Presentation-of-E-Commerce-website-Project.pptxPPT-Presentation-of-E-Commerce-website-Project.pptx
PPT-Presentation-of-E-Commerce-website-Project.pptx
 
Website design by using CMS _M.Mujeeb Riaz
Website design by using CMS _M.Mujeeb Riaz Website design by using CMS _M.Mujeeb Riaz
Website design by using CMS _M.Mujeeb Riaz
 
Wordpress development 101
Wordpress development 101Wordpress development 101
Wordpress development 101
 
Redgate database DevOps demo webinar (with Git & Jenkins)
Redgate database DevOps demo webinar (with Git & Jenkins)Redgate database DevOps demo webinar (with Git & Jenkins)
Redgate database DevOps demo webinar (with Git & Jenkins)
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
 
937079
937079937079
937079
 
Managing WordPress Websites - Training Course - Feb 2015
Managing WordPress Websites - Training Course - Feb 2015Managing WordPress Websites - Training Course - Feb 2015
Managing WordPress Websites - Training Course - Feb 2015
 
'The Minimalist Publisher How to Do More with Less' at Mumbrella Publish 2022
'The Minimalist Publisher How to Do More with Less' at Mumbrella Publish 2022'The Minimalist Publisher How to Do More with Less' at Mumbrella Publish 2022
'The Minimalist Publisher How to Do More with Less' at Mumbrella Publish 2022
 
Winning the game with WordPress hosting solutions powered by Plesk Onyx
Winning the game with WordPress hosting solutions powered by Plesk OnyxWinning the game with WordPress hosting solutions powered by Plesk Onyx
Winning the game with WordPress hosting solutions powered by Plesk Onyx
 
Openxcell conducts a successful webinar on Magento Optimization
Openxcell conducts a successful webinar on Magento OptimizationOpenxcell conducts a successful webinar on Magento Optimization
Openxcell conducts a successful webinar on Magento Optimization
 
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
 
WordPress Maintenance Services Company in USA
WordPress Maintenance Services Company in USAWordPress Maintenance Services Company in USA
WordPress Maintenance Services Company in USA
 
Website builders workshop
Website builders workshopWebsite builders workshop
Website builders workshop
 
Net2Vic: How to Choose a Content Management System for Your New Website
Net2Vic: How to Choose a Content Management System for Your New WebsiteNet2Vic: How to Choose a Content Management System for Your New Website
Net2Vic: How to Choose a Content Management System for Your New Website
 

More from WP Engine

More Dev. Less Drama.pdf
More Dev. Less Drama.pdfMore Dev. Less Drama.pdf
More Dev. Less Drama.pdfWP Engine
 
Why the Edge Isn't an Edge Case.pdf
Why the Edge Isn't an Edge Case.pdfWhy the Edge Isn't an Edge Case.pdf
Why the Edge Isn't an Edge Case.pdfWP Engine
 
Post eCommerce Site Launch- Optimizing Your Conversion Rate.pdf
Post eCommerce Site Launch- Optimizing Your Conversion Rate.pdfPost eCommerce Site Launch- Optimizing Your Conversion Rate.pdf
Post eCommerce Site Launch- Optimizing Your Conversion Rate.pdfWP Engine
 
Demo - New Features for Atlas.pdf
Demo - New Features for Atlas.pdfDemo - New Features for Atlas.pdf
Demo - New Features for Atlas.pdfWP Engine
 
Debunking The Myths of Migration.pdf
Debunking The Myths of Migration.pdfDebunking The Myths of Migration.pdf
Debunking The Myths of Migration.pdfWP Engine
 
Keeping Your WordPress Sites Safe Amidst A Rise in Global Cyberattacks.pdf
Keeping Your WordPress Sites Safe Amidst A Rise in Global Cyberattacks.pdfKeeping Your WordPress Sites Safe Amidst A Rise in Global Cyberattacks.pdf
Keeping Your WordPress Sites Safe Amidst A Rise in Global Cyberattacks.pdfWP Engine
 
When to Choose Headless for Clients.pdf
When to Choose Headless for Clients.pdfWhen to Choose Headless for Clients.pdf
When to Choose Headless for Clients.pdfWP Engine
 
Best Practices for Site Deployment With Local.pdf
Best Practices for Site Deployment With Local.pdfBest Practices for Site Deployment With Local.pdf
Best Practices for Site Deployment With Local.pdfWP Engine
 
Site Monitoring: The Intersection of Product, UX Design & Research .pdf
Site Monitoring: The Intersection of Product, UX Design & Research .pdfSite Monitoring: The Intersection of Product, UX Design & Research .pdf
Site Monitoring: The Intersection of Product, UX Design & Research .pdfWP Engine
 
Gutenberg and Headless WordPress.pdf
Gutenberg and Headless WordPress.pdfGutenberg and Headless WordPress.pdf
Gutenberg and Headless WordPress.pdfWP Engine
 
Blueprints and Other Local Features for Agencies.pdf
Blueprints and Other Local Features for Agencies.pdfBlueprints and Other Local Features for Agencies.pdf
Blueprints and Other Local Features for Agencies.pdfWP Engine
 
Modern Theming & The Future of WordPress- Working with Full Site Editing and ...
Modern Theming & The Future of WordPress- Working with Full Site Editing and ...Modern Theming & The Future of WordPress- Working with Full Site Editing and ...
Modern Theming & The Future of WordPress- Working with Full Site Editing and ...WP Engine
 
6 WooCommerce Dev Tricks for Building Fast eCommerce Websites.pdf
6 WooCommerce Dev Tricks for Building Fast eCommerce Websites.pdf6 WooCommerce Dev Tricks for Building Fast eCommerce Websites.pdf
6 WooCommerce Dev Tricks for Building Fast eCommerce Websites.pdfWP Engine
 
Headless 101 for WordPress Developers.pdf
Headless 101 for WordPress Developers.pdfHeadless 101 for WordPress Developers.pdf
Headless 101 for WordPress Developers.pdfWP Engine
 
Be the Change: The Future of WordPress with WP Engine's Developer Relations Team
Be the Change: The Future of WordPress with WP Engine's Developer Relations TeamBe the Change: The Future of WordPress with WP Engine's Developer Relations Team
Be the Change: The Future of WordPress with WP Engine's Developer Relations TeamWP Engine
 
An Atlas of Atlas.pdf
An Atlas of Atlas.pdfAn Atlas of Atlas.pdf
An Atlas of Atlas.pdfWP Engine
 
2022 – Year of the WordPress Developer.pdf
2022 – Year of the WordPress Developer.pdf2022 – Year of the WordPress Developer.pdf
2022 – Year of the WordPress Developer.pdfWP Engine
 
Growing Your WooCommerce Store Without Knowing Code
Growing Your WooCommerce Store Without Knowing CodeGrowing Your WooCommerce Store Without Knowing Code
Growing Your WooCommerce Store Without Knowing CodeWP Engine
 
Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard PlaceWP Engine
 
Under the Hood with Headless WordPress and the Google Cloud Platform
Under the Hood with Headless WordPress and the Google Cloud PlatformUnder the Hood with Headless WordPress and the Google Cloud Platform
Under the Hood with Headless WordPress and the Google Cloud PlatformWP Engine
 

More from WP Engine (20)

More Dev. Less Drama.pdf
More Dev. Less Drama.pdfMore Dev. Less Drama.pdf
More Dev. Less Drama.pdf
 
Why the Edge Isn't an Edge Case.pdf
Why the Edge Isn't an Edge Case.pdfWhy the Edge Isn't an Edge Case.pdf
Why the Edge Isn't an Edge Case.pdf
 
Post eCommerce Site Launch- Optimizing Your Conversion Rate.pdf
Post eCommerce Site Launch- Optimizing Your Conversion Rate.pdfPost eCommerce Site Launch- Optimizing Your Conversion Rate.pdf
Post eCommerce Site Launch- Optimizing Your Conversion Rate.pdf
 
Demo - New Features for Atlas.pdf
Demo - New Features for Atlas.pdfDemo - New Features for Atlas.pdf
Demo - New Features for Atlas.pdf
 
Debunking The Myths of Migration.pdf
Debunking The Myths of Migration.pdfDebunking The Myths of Migration.pdf
Debunking The Myths of Migration.pdf
 
Keeping Your WordPress Sites Safe Amidst A Rise in Global Cyberattacks.pdf
Keeping Your WordPress Sites Safe Amidst A Rise in Global Cyberattacks.pdfKeeping Your WordPress Sites Safe Amidst A Rise in Global Cyberattacks.pdf
Keeping Your WordPress Sites Safe Amidst A Rise in Global Cyberattacks.pdf
 
When to Choose Headless for Clients.pdf
When to Choose Headless for Clients.pdfWhen to Choose Headless for Clients.pdf
When to Choose Headless for Clients.pdf
 
Best Practices for Site Deployment With Local.pdf
Best Practices for Site Deployment With Local.pdfBest Practices for Site Deployment With Local.pdf
Best Practices for Site Deployment With Local.pdf
 
Site Monitoring: The Intersection of Product, UX Design & Research .pdf
Site Monitoring: The Intersection of Product, UX Design & Research .pdfSite Monitoring: The Intersection of Product, UX Design & Research .pdf
Site Monitoring: The Intersection of Product, UX Design & Research .pdf
 
Gutenberg and Headless WordPress.pdf
Gutenberg and Headless WordPress.pdfGutenberg and Headless WordPress.pdf
Gutenberg and Headless WordPress.pdf
 
Blueprints and Other Local Features for Agencies.pdf
Blueprints and Other Local Features for Agencies.pdfBlueprints and Other Local Features for Agencies.pdf
Blueprints and Other Local Features for Agencies.pdf
 
Modern Theming & The Future of WordPress- Working with Full Site Editing and ...
Modern Theming & The Future of WordPress- Working with Full Site Editing and ...Modern Theming & The Future of WordPress- Working with Full Site Editing and ...
Modern Theming & The Future of WordPress- Working with Full Site Editing and ...
 
6 WooCommerce Dev Tricks for Building Fast eCommerce Websites.pdf
6 WooCommerce Dev Tricks for Building Fast eCommerce Websites.pdf6 WooCommerce Dev Tricks for Building Fast eCommerce Websites.pdf
6 WooCommerce Dev Tricks for Building Fast eCommerce Websites.pdf
 
Headless 101 for WordPress Developers.pdf
Headless 101 for WordPress Developers.pdfHeadless 101 for WordPress Developers.pdf
Headless 101 for WordPress Developers.pdf
 
Be the Change: The Future of WordPress with WP Engine's Developer Relations Team
Be the Change: The Future of WordPress with WP Engine's Developer Relations TeamBe the Change: The Future of WordPress with WP Engine's Developer Relations Team
Be the Change: The Future of WordPress with WP Engine's Developer Relations Team
 
An Atlas of Atlas.pdf
An Atlas of Atlas.pdfAn Atlas of Atlas.pdf
An Atlas of Atlas.pdf
 
2022 – Year of the WordPress Developer.pdf
2022 – Year of the WordPress Developer.pdf2022 – Year of the WordPress Developer.pdf
2022 – Year of the WordPress Developer.pdf
 
Growing Your WooCommerce Store Without Knowing Code
Growing Your WooCommerce Store Without Knowing CodeGrowing Your WooCommerce Store Without Knowing Code
Growing Your WooCommerce Store Without Knowing Code
 
Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard Place
 
Under the Hood with Headless WordPress and the Google Cloud Platform
Under the Hood with Headless WordPress and the Google Cloud PlatformUnder the Hood with Headless WordPress and the Google Cloud Platform
Under the Hood with Headless WordPress and the Google Cloud Platform
 

Recently uploaded

办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
Intellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxIntellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxBipin Adhikari
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 

Recently uploaded (20)

young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Intellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxIntellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptx
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 

Building WordPress eCommerce at Scale .pdf

  • 1.
  • 2. PRODUCT MARKETING MANAGER WP Engine HEAD OF ENGINEERING WooCommerce SENIOR FRONT END ENGINEER 10up CIO Indpsyde Joshua Dailey Robert Windisch Beau Lebens Jacob Peattie Building WordPress eCommerce at Scale
  • 3. WooCommerce Custom Order Tables HEAD OF ENGINEERING WooCommerce @beaulebens Beau Lebens
  • 4. 4 UBIQUITOUS Works anywhere WordPress does. Similar technical requirements and approaches. Those requirements create certain constraints on what can be done out of the box. CONFIGURABLE Adaptable to many situations. EXTENSIBLE Customizable to specific needs. Custom functionality can be introduced through plugins, extensions, and themes. WooCommerce aims to be: Advanced configuration allows for integrating with Redis and memcache, load balancing databases and web servers, and much more.
  • 5. 5 Pros • If WordPress works, WooCommerce works. No additional access/permissions required to create new tables (easy to get up and running in any WordPress environment). No code-level table creation/migration failures. • Works the way WordPress works. Benefits from many existing mechanisms in WordPress (caching, data access methods, taxonomies, etc). Translates easily to using WP List Table and other internal concepts. Cons Ubiquitous • Minimal consideration for the custom storage needs of the data (numbers, booleans, etc). • More complex data ends up being stored using “lowest common denominator” approach in “meta”. • Impossible to optimize for different access models (e.g. heavy writing vs infrequent reads). • Data intermingled with very different data types (posts/content, products, and orders all in a shared space). Leverages WordPress tables to minimize external requirements and complexity.
  • 6. 6 wp_posts thrash • Lots of reads and writes (posts, products, orders), all happening in the same table. • Different usage models can make matters even worse (large catalog, dynamic creation of product records, content-heavy sites, etc). wp_postmeta inflation Two central issues • Similar read/write contention. • Postmeta stores additional data for all types; posts, products, data. Compounds meta inflation. • Most plugins and extensions have additional data storage needs, multiplying the problem. • Can easily create 20x (or more) the row count from the posts table. Most issues we’ve seen center around the two core tables, specifically related to order volume
  • 10. 10 Data migration • Non-technical users ideally need to be able to migrate data to new structure without taking their store offline. • For any active store, that means ongoing sync (vs one-off migration), with the ability to turn on/off repeatedly in case anything goes wrong. • Migration could mean anything from very small stores with “dozens” of orders, to very large stores with millions of orders; all on varied hosting configurations. • We don’t actually know what all of the data is—a lot of it is just key/value pairs. Backwards compatibility Major challenges • Merchants expect to click “Update” and have everything work. We can’t break their stores in this scenario. • Extension developers aren’t always actively updating their extensions. • Endless code exists that accesses data via WP helpers (get_post()), or worse, via direct SQL. • We have no control over what combination of software (WordPress, WooCommerce, plugins) people are running on their store. Introducing custom tables on a single, controlled store is relatively easy. Doing it for an entire ecosystem is exponentially more difficult.
  • 11. 11 • Long road to updating “all” extensions and code to support new approach. • Eventual goal is for new stores to all start with custom order tables. • Existing stores will choose if they migrate, based on needs and compatibility. • Research known problems and existing solutions. • Proposals to community and discussion of known issues. • Ensure full CRUD usage throughout core. • Introduce new tables and data access (via CRUD). • Build out migration routines and management UI. Research, feedback, MVP • Early access to enable developers to adapt their extensions etc. • Developer-oriented opt-in for testing and verifying. • Detailed upgrade guides for developers. • Prove out migration routines in various environments. • Refine table structure and approach based on more real-world testing. • Work with hosts to understand impacts Opt-in availability July, 2022 Eventual default Solution development and rollout Update & migrate Test & refine Define & build
  • 12. 12 To keep WooCommerce moving forward, we all need to adapt to this change. We need to hear about problems and unique situations, understand what works and what doesn’t, and get detailed technical information to help build a solution that works for everyone. This is a major change, and we can’t do it without community involvement. • Read the announcement post. Follow our developer blog for more updates. • Follow progress in GitHub (entire project board). • As early as possible, help us validate the approach, and let us know where it doesn’t apply or work for stores you manage. • Give us detailed technical feedback about what doesn’t work, and ideally why. • If you run stores, build extensions, or write custom order code, move to the CRUD layer (already stable and shipping in core for years) and be prepared for additional changes. Start thinking about if you can need custom data storage. ▪ Review the proposed table structures and make sure your data would fit in the proposed model. If not, let us know and help us come up with a solution that works. • Opt-in early (on a staging server!) and test normal operations + migration. Give us detailed feedback on what works and what doesn’t. We especially want to know about plugins/extensions that don’t work as expected. The road ahead Help us, help you
  • 14. How ElasticPress and Instant Results can help you scale your WooCommerce store SENIOR FRONT END ENGINEER 10up Jacob Peattie
  • 15. 15 Faceted search, or faceted navigation, refers to the ability to filter search results by additional options, particularly when the available options update to reflect any filters already applied. eg. A color filter that only shows color options that are available for the current category. Faceted search • Not well suited to search. ▪ Getting relevant results. ▪ Searching custom fields. ▪ Synonyms and misspellings. ▪ Faceted search. • MySQL database can be difficult to scale. • WooCommerce making improvements. How does the WordPress database limit WooCommerce?
  • 16. 16 ElasticPress is a WordPress plugin developed by 10up that brings Elasticsearch to WordPress. Elasticsearch is a storage engine designed for search. • Relevant results. • Custom fields. • Synonyms. • Faceted search. • Scalable. • Fast. ElasticPress.io is a hosted service from 10up that you can use with the ElasticPress plugin so that you don’t need to manage your own Elasticsearch server. What is ElasticPress?
  • 17. 17 How does ElasticPress work? Database User WordPress 1 2 3 4
  • 18. 18 How does ElasticPress work? Database WordPress 1 2 3 4 5 6 User
  • 19. 19 By offloading queries to Elasticsearch, ElasticPress: • Ensures more relevant search results. • Enables new features, such as: ▪ Fast autosuggest. ▪ Synonyms. ▪ Search the contents of files. ▪ Faceted search. • Reduces the load on your database. How does ElasticPress work?
  • 20. 20 • Searches still query the MySQL database. • WordPress still needs to be loaded. ▪ Could still be slow on poor hosting or when using poorly optimised themes and plugins. • Search results can’t update instantly. What are the limitations of this approach?
  • 21. 21 Instant Results is a new feature of ElasticPress: • Results loaded with AJAX into a pop-up. • Sends search queries directly to Elasticsearch via an ElasticPress.io API. • See results live as you type and filter. What is ElasticPress Instant Results?
  • 22. 22 How does Instant Results work? Database WordPress 1 2 User
  • 23. Demo
  • 24. 24 How this helps: • All the benefits of ElasticPress. ▪ More relevant results. ▪ Synonyms. ▪ Faceted search. • 600% faster search results. • Helps scale your site. ▪ Searching and filtering products can be the most expensive queries on a site. ▪ Instant Results searches don’t hit your web server or database at all, freeing up resources. How does Instant Results help?
  • 25. 25 Start Using Instant Results Today ElasticPress The ElasticPress plugin is free to download from the WordPress plugin repository. https://wordpress.org/plugins/elasticpress/ ElasticPress.io You can sign up for a 14 day free trial of ElasticPress.io at the ElasticPress website. https://www.elasticpress.io/
  • 27. How to Scale WooCommerce CIO Inpsyde Robert Windisch
  • 29. 29 • It’s supported! PHP 5/7 isn’t. • Performance! • Enables better Code • Update only on testing environment! • You want to move to PHP 8 ASAP • Plugins/Themes that breaks can be indicator of performance hogs PHP8
  • 30. 30 • Reverse Proxy • Not on the same server • Closer to the visitor -> faster request • Can also mitigate Attacks • Your server can be offline • Only use your server run PHP Content Delivery Network
  • 31. 31 Time to First Byte How long does it take to receive the first data from your site Good conversation starter with your host Can be optimized, but maybe prepare to switch hosts Everything influences that: • How much is going on the server • How fast is PHP • Object caching • Cold Caches • MySQL
  • 32. 32 Object Cache Server that serves data from Memory Memory is faster than disk Memcached or Redis Plugins for WordPress Perfect base to scale to multiple servers WordPress will speed up right away Look out for the right Invalidation Object caching in code Be careful with Ecommerce Pages - WP Engine is extending this
  • 34. 34 Hard Steps for WordPress Scaling ElasticSearch and Custom Development Write MySQL queries on a different server Use a Load Balancing Debug your Performance with tools like New Relic or Blackfire.io Review every line of plugins and themes Exit early and other coding patterns
  • 35. 35 • State of the Art Search • WordPress is not for searching • External Server • Facet Search • Weight • Synonyms Elastic
  • 36. 36 Premium Dedicated Environment • Server platform matters • Better at delivering dynamic content (up to 40% faster over shared) • Best for scaling Dedicated Servers Online Offline SSG Gateway WP Engine API Attached Storage Onlie VM PHP MyAdmin Bastion Cluster Backup Snapshot System from
  • 38. 38 Review the Code Not everything on init actions Read every line!
  • 40. 40 Review the Code Check Data Stores to tweak requests https://github.com/woocommerce/woocommerce/wi ki/Data-Stores Custom Tables for WooCommerce are coming https://developer.woocommerce.com/2022/01/17/th e-plan-for-the-woocommerce-custom-order-table/