SlideShare a Scribd company logo
1 of 14
VIKING MOTORS
WORDPRESS CAFÉ APRIL
klipper.ee
ABOUT ME
• Full-Stack Web Developer & Interaction Designer
• CTO at OKIA (okia.ee)
• 15+ years of experience
• WordPress 5+ years
WHAT IS VIKING MOTORS?
• viking-motors.ee
• Estonian-owned car dealer
• Sells KIA , OPEL, Cadillac, Corvette brands and offers services for SAAB brand
• Located in Tallinn, Estonia
VIKING MOTORS NEW WEBSITE
• Why WordPress?
• Good platform for displaying data (has simple theme architecture)
• Has all the API-s to provide the functionality needed to create fast and great quality
website.
• Because we love WordPress 
• What role has Auto24.ee?
• Data provider
• All cars and their metadata is stored in Auto24 (all the content management is done there)
• Every day at 6AM we delete all cars and data associated with and import data again.
• Because Auto24’s RESTful API response is very slow 
• Viking-motors.ee was one of the first to use their new API
VIKING MOTORS NEW WEBSITE
• What is special about viking-motors.ee?
• How we query metadata about every car
• How we organize the data we have
• How we decide which single template to choose (car’s details)
• How we cache the results
VIKING MOTORS NEW WEBSITE
• Custom post type
• A lot of meta fields (we use CMB2 library)
• We have an importer script
• For every car type separate importer (in-stock, new, used).
• Every car is a Post that has metadata associated with (technical data, equipment
data etc)
• Custom rewrite rules
• soiduk/kasutatud/([^/]+)/?$ <= for used cars
• soiduk/uued-tellimisel/([^/]+)/?$ <= for new cars
• soiduk/uued-kohe-saadaval/([^/]+)/?$ <= for cars which are already in stock
VIKING MOTORS NEW WEBSITE
Function to check which type of car is currently queried
This is how we add and remove
meta keys.
If the client would like to have a
new metadata to be stored in
WordPress, we just need to add
this to the list and all the new
meta fields fill be displayed in
admin area automatically.
Viking Motors new website
This function is for querying metadata. As many in one
query as possible.
Here we collect and cache all search criteria that will be
used on front page search form.
We use “post_type_link” hook to override car’s permalink
so that it would meet our custom rewrite rules.
We use “template_include” hook to override WordPress's
default template behavior.
- single-oi_used_item.php
- single-oi_new_item.php (this template will be used for
stock cars as well)
WHAT ARE THE RESULTS?
WordPress Café April: Viking motors case

More Related Content

What's hot

BPAA PD Day: BiblioShare
BPAA PD Day: BiblioShareBPAA PD Day: BiblioShare
BPAA PD Day: BiblioShare
BookNet Canada
 
BPAA PD Day: BiblioShare Webform
BPAA PD Day: BiblioShare WebformBPAA PD Day: BiblioShare Webform
BPAA PD Day: BiblioShare Webform
BookNet Canada
 

What's hot (16)

The Grail: React based Isomorph apps framework
The Grail: React based Isomorph apps frameworkThe Grail: React based Isomorph apps framework
The Grail: React based Isomorph apps framework
 
Aurea Software successful integration case study - Patient Travels (patient p...
Aurea Software successful integration case study - Patient Travels (patient p...Aurea Software successful integration case study - Patient Travels (patient p...
Aurea Software successful integration case study - Patient Travels (patient p...
 
Sitecore Experience Commerce 9 Update 2 New Features
Sitecore Experience Commerce 9 Update 2 New FeaturesSitecore Experience Commerce 9 Update 2 New Features
Sitecore Experience Commerce 9 Update 2 New Features
 
BPAA PD Day: BiblioShare
BPAA PD Day: BiblioShareBPAA PD Day: BiblioShare
BPAA PD Day: BiblioShare
 
Sage Advice: Getting started with Amazon SageMaker
Sage Advice: Getting started with Amazon SageMakerSage Advice: Getting started with Amazon SageMaker
Sage Advice: Getting started with Amazon SageMaker
 
BPAA PD Day: BiblioShare Webform
BPAA PD Day: BiblioShare WebformBPAA PD Day: BiblioShare Webform
BPAA PD Day: BiblioShare Webform
 
Marketplace integration
Marketplace integrationMarketplace integration
Marketplace integration
 
Our journey to aws - Maylin Leal
Our journey to aws - Maylin LealOur journey to aws - Maylin Leal
Our journey to aws - Maylin Leal
 
1111
11111111
1111
 
Alibaba Cloud Certification meetup Singapore June 11
Alibaba Cloud Certification meetup Singapore June 11Alibaba Cloud Certification meetup Singapore June 11
Alibaba Cloud Certification meetup Singapore June 11
 
Serverless @ Haufe.Group presented at AWS Summit Berlin 2018
Serverless @ Haufe.Group presented at AWS Summit Berlin 2018Serverless @ Haufe.Group presented at AWS Summit Berlin 2018
Serverless @ Haufe.Group presented at AWS Summit Berlin 2018
 
Mini projec t presentation
Mini projec t presentationMini projec t presentation
Mini projec t presentation
 
Introduction to the SharePoint Client Object Model
Introduction to the SharePoint Client Object ModelIntroduction to the SharePoint Client Object Model
Introduction to the SharePoint Client Object Model
 
C# 8 and .NET Core 3
C# 8 and .NET Core 3C# 8 and .NET Core 3
C# 8 and .NET Core 3
 
A quick benchmark on freelancing platforms online
A quick benchmark on freelancing platforms onlineA quick benchmark on freelancing platforms online
A quick benchmark on freelancing platforms online
 
IPv17 sync17
IPv17 sync17IPv17 sync17
IPv17 sync17
 

Similar to WordPress Café April: Viking motors case

Case study - Nuskin: Statefull Applications in a Stateless World
Case study - Nuskin: Statefull Applications in a Stateless WorldCase study - Nuskin: Statefull Applications in a Stateless World
Case study - Nuskin: Statefull Applications in a Stateless World
Day Software
 

Similar to WordPress Café April: Viking motors case (20)

Building a Data Warehouse for Business Analytics using Spark SQL-(Blagoy Kalo...
Building a Data Warehouse for Business Analytics using Spark SQL-(Blagoy Kalo...Building a Data Warehouse for Business Analytics using Spark SQL-(Blagoy Kalo...
Building a Data Warehouse for Business Analytics using Spark SQL-(Blagoy Kalo...
 
BikersPlanet.pptx
BikersPlanet.pptxBikersPlanet.pptx
BikersPlanet.pptx
 
Make xCommerce fit to you
Make xCommerce fit to youMake xCommerce fit to you
Make xCommerce fit to you
 
Sug bangalore - sitecore commerce introduction
Sug bangalore - sitecore commerce introductionSug bangalore - sitecore commerce introduction
Sug bangalore - sitecore commerce introduction
 
Mongo db meetuppresentation-2014-v5-1
Mongo db meetuppresentation-2014-v5-1Mongo db meetuppresentation-2014-v5-1
Mongo db meetuppresentation-2014-v5-1
 
Michael Allen's AWS user group talk ""Developers, Start Your Engines - Hands ...
Michael Allen's AWS user group talk ""Developers, Start Your Engines - Hands ...Michael Allen's AWS user group talk ""Developers, Start Your Engines - Hands ...
Michael Allen's AWS user group talk ""Developers, Start Your Engines - Hands ...
 
Visualizing AutoTrader Traffic in Near Real-Time with Spark Streaming-(Jon Gr...
Visualizing AutoTrader Traffic in Near Real-Time with Spark Streaming-(Jon Gr...Visualizing AutoTrader Traffic in Near Real-Time with Spark Streaming-(Jon Gr...
Visualizing AutoTrader Traffic in Near Real-Time with Spark Streaming-(Jon Gr...
 
SharePoint Development Workshop
SharePoint Development WorkshopSharePoint Development Workshop
SharePoint Development Workshop
 
Keynote SUGCON 2021 - Sitecore and SaaS our shared journey
Keynote SUGCON 2021 - Sitecore and SaaS our shared journeyKeynote SUGCON 2021 - Sitecore and SaaS our shared journey
Keynote SUGCON 2021 - Sitecore and SaaS our shared journey
 
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...
 
Content as a Service with Umbraco Headless
Content as a Service with Umbraco HeadlessContent as a Service with Umbraco Headless
Content as a Service with Umbraco Headless
 
SP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreSP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office Store
 
WebXpress Yard and Distribution Management Solution
WebXpress Yard and Distribution Management SolutionWebXpress Yard and Distribution Management Solution
WebXpress Yard and Distribution Management Solution
 
Bilot Azure on SAP Breakfast Club 16.05.2018
Bilot Azure on SAP Breakfast Club 16.05.2018Bilot Azure on SAP Breakfast Club 16.05.2018
Bilot Azure on SAP Breakfast Club 16.05.2018
 
Resume
ResumeResume
Resume
 
Case study - Nuskin: Statefull Applications in a Stateless World
Case study - Nuskin: Statefull Applications in a Stateless WorldCase study - Nuskin: Statefull Applications in a Stateless World
Case study - Nuskin: Statefull Applications in a Stateless World
 
Sitecore Knowledge Transfer 2018 day-1
Sitecore  Knowledge Transfer 2018 day-1Sitecore  Knowledge Transfer 2018 day-1
Sitecore Knowledge Transfer 2018 day-1
 
Migrating Microsoft Applications to AWS like an Expert
Migrating Microsoft Applications to AWS like an ExpertMigrating Microsoft Applications to AWS like an Expert
Migrating Microsoft Applications to AWS like an Expert
 
An Under-the-Hood Tour of Sitecore Experience Accelerator
An Under-the-Hood Tour of Sitecore Experience AcceleratorAn Under-the-Hood Tour of Sitecore Experience Accelerator
An Under-the-Hood Tour of Sitecore Experience Accelerator
 
Azure App Services.pdf
Azure App Services.pdfAzure App Services.pdf
Azure App Services.pdf
 

More from Exove

More from Exove (20)

Data security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problemsData security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problems
 
Provisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – ExoveProvisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – Exove
 
Advanced custom fields in Wordpress
Advanced custom fields in WordpressAdvanced custom fields in Wordpress
Advanced custom fields in Wordpress
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – Exove
 
Jenkins and visual regression – Exove
Jenkins and visual regression – ExoveJenkins and visual regression – Exove
Jenkins and visual regression – Exove
 
Server-side React with Headless CMS – Exove
Server-side React with Headless CMS – ExoveServer-side React with Headless CMS – Exove
Server-side React with Headless CMS – Exove
 
WebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – ExoveWebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – Exove
 
Diversity in recruitment
Diversity in recruitmentDiversity in recruitment
Diversity in recruitment
 
Saavutettavuus liiketoimintana
Saavutettavuus liiketoimintanaSaavutettavuus liiketoimintana
Saavutettavuus liiketoimintana
 
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistustaSaavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
 
Mitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisälläänMitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisällään
 
Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8
 
GDPR for developers
GDPR for developersGDPR for developers
GDPR for developers
 
Managing Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with DrupalManaging Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with Drupal
 
Life with digital services after GDPR
Life with digital services after GDPRLife with digital services after GDPR
Life with digital services after GDPR
 
GDPR - no beginning no end
GDPR - no beginning no endGDPR - no beginning no end
GDPR - no beginning no end
 
Developing truly personalised experiences
Developing truly personalised experiencesDeveloping truly personalised experiences
Developing truly personalised experiences
 
Customer Experience and Personalisation
Customer Experience and PersonalisationCustomer Experience and Personalisation
Customer Experience and Personalisation
 
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
 
Dataohjattu asiakaskokemus
Dataohjattu asiakaskokemusDataohjattu asiakaskokemus
Dataohjattu asiakaskokemus
 

Recently uploaded

CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
Muhammad Subhan
 

Recently uploaded (20)

Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 

WordPress Café April: Viking motors case

  • 1. VIKING MOTORS WORDPRESS CAFÉ APRIL klipper.ee
  • 2. ABOUT ME • Full-Stack Web Developer & Interaction Designer • CTO at OKIA (okia.ee) • 15+ years of experience • WordPress 5+ years
  • 3. WHAT IS VIKING MOTORS? • viking-motors.ee • Estonian-owned car dealer • Sells KIA , OPEL, Cadillac, Corvette brands and offers services for SAAB brand • Located in Tallinn, Estonia
  • 4. VIKING MOTORS NEW WEBSITE • Why WordPress? • Good platform for displaying data (has simple theme architecture) • Has all the API-s to provide the functionality needed to create fast and great quality website. • Because we love WordPress  • What role has Auto24.ee? • Data provider • All cars and their metadata is stored in Auto24 (all the content management is done there) • Every day at 6AM we delete all cars and data associated with and import data again. • Because Auto24’s RESTful API response is very slow  • Viking-motors.ee was one of the first to use their new API
  • 5. VIKING MOTORS NEW WEBSITE • What is special about viking-motors.ee? • How we query metadata about every car • How we organize the data we have • How we decide which single template to choose (car’s details) • How we cache the results
  • 6. VIKING MOTORS NEW WEBSITE • Custom post type • A lot of meta fields (we use CMB2 library) • We have an importer script • For every car type separate importer (in-stock, new, used). • Every car is a Post that has metadata associated with (technical data, equipment data etc) • Custom rewrite rules • soiduk/kasutatud/([^/]+)/?$ <= for used cars • soiduk/uued-tellimisel/([^/]+)/?$ <= for new cars • soiduk/uued-kohe-saadaval/([^/]+)/?$ <= for cars which are already in stock
  • 7. VIKING MOTORS NEW WEBSITE Function to check which type of car is currently queried
  • 8. This is how we add and remove meta keys. If the client would like to have a new metadata to be stored in WordPress, we just need to add this to the list and all the new meta fields fill be displayed in admin area automatically.
  • 9. Viking Motors new website This function is for querying metadata. As many in one query as possible.
  • 10. Here we collect and cache all search criteria that will be used on front page search form.
  • 11. We use “post_type_link” hook to override car’s permalink so that it would meet our custom rewrite rules.
  • 12. We use “template_include” hook to override WordPress's default template behavior. - single-oi_used_item.php - single-oi_new_item.php (this template will be used for stock cars as well)
  • 13. WHAT ARE THE RESULTS?