Unify Your Selling Channels in One 
Product Catalog 
Edouard Servan-Schreiber, Ph.D. 
Director for Solution Architecture 
edss@mongodb.com
Who is MongoDB? 
2 
Who is MongoDB: 
MongoDB (from humongous) is an open-source, 
game-changing operational database technology, 
designed to enable information capture, sharing 
and distribution to meet the needs and behaviors 
of today’s digitally-oriented society.
Retail at War: How to Differentiate? 
• Retail Information 
• Personalized Selling 
• Existing applications 
& technology?
MongoDB powers 
Systems of Engagement 
• A document model (holds mixed, variant data) 
• Ability to add new & different data (agility) 
• Ability to ask real-time questions based on right now 
4 
update (complex querying & in-place updating) 
• Geo-Location built-in 
• Power of traditional data bases (full consistency, 
durability, atomic operations) 
• Near linear expansion (scaling via sharding) 
• MongoDB is a unique fit for frictionless retail
4 Use Cases: Modern, Seamless Retail 
1. “Global Product 360” 
Theme: Product details & 
location up-to-minute; 
Vendors, payment
4 Use Cases: Modern, Seamless Retail 
2. Consolidated 
Customer View 
Theme: Single View of 
Customer, Consumer 360
4 Use Cases: Modern, Seamless Retail 
3. Channel Innovation 
(Ecommerce, Mobile, Social etc.) 
Theme: Back-end system 
integration, product details & 
geo-location up-to-minute
4 Use Cases: Modern, Seamless Retail 
4. Relevant Personalization: 
Via technology to consumer 
Theme: Relevance & convenience 
Embedding into daily life
9 
Traditional Mental Model
10 
MongoDB Mental Model
11 
Retail Data Platform
12 
Systems of Engagement
The Product Catalog Problem
Merchandising Objective: 
“Global Product Service” 
Single view of a product, one central service 
• Flexible schema containing all useful data 
• Read volume high and sustained, 100k reads / s 
• Can seamlessly take write spikes during catalog 
14 
update 
• Advanced indexing and querying 
• Geographical distribution for HA and low latency
The Reality: Many catalogs 
1. One department in charge of master product works hard at fitting 
15 
data into SQL tables 
2. Resulting data sits in a SQL server with a couple replicas. It's 
forbidden to hit it more than 100 times / sec 
3. Other departments need to access the data way more often for 
their own services 
4. Other departments need more information that is not available 
since it did not fit in that long devised rigid SQL schema 
5. ETLs and Message Buses are put in place for other teams to try 
figure it out themselves… 
6. Data becomes inconsistent, fragmented, not up-to-date… 
Problem visible both internally and by customers!
16 
Product Information Complexity 
Ecommerce Shop 
Catalog 
Stores 
Catalog 
Dozens of catalogs! 
Content Management 
Catalog 
Product 
Merchandising 
Operations 
Master 
Catalog 
Department 4 
Catalog 
Search 
Catalog 
Store Associates 
Catalog 
Message 
Bus 
ETLs
What is hard about this? 
• Read intensity 
18 
– 100K+ reads per second (think peak time) 
– Omnichannel means it is not acceptable to lose a sale 
because your IT crawls 
• Flexibility 
– Each facet of the business needs slightly different data 
– And they each want to change it often 
• Who has the system of record when you have 
12 copies around??
19 
Product Information 
MongoDB Architecture 
Product Service API 
MongoDB Data Layer 
Items Pricing Promotions 
Variants 
Ratings & 
Reviews 
… 
Digital Shop 
Store + 
Associates 
Inventory SCMS Public API Search, CMS, …
Product Page – What does it mean? 
20 
Product 
images 
General 
Informatio 
n 
List of 
Variants 
External 
Informatio 
n 
Localized 
Description
Retail Product Model - Overview 
• Item: the overall product info (e.g. Levi’s 501) 
• Variant: a specific variant of an item (e.g. in black size 6) 
21 
which typically has a specific SKU / UPC 
– Note: each model can have thousands of variants, each variant 
can have hundreds of attributes 
• Price: price information may vary based on the store, the 
variant, etc 
• Hierarchy: the item taxonomy 
• Facet: facets to search products by 
• Vendors: a given sku may be available through several 
vendors if the site is a marketplace
Product - Item Data Model 
> db.item.findOne() 
{ _id: "301671", // main item id 
22 
department: "Shoes", 
category: "Shoes/Women/Pumps", 
brand: "Guess", 
thumbnail: "http://cdn…/pump.jpg", 
image: "http://cdn…/pump1.jpg", // larger version of thumbnail 
title: "Evening Platform Pumps", 
description: "Those evening platform pumps put the perfect 
finishing touches on your most glamorous night-on-the-town outfit", 
shortDescription: "Evening Platform Pumps", 
style: "Designer", 
type: "Platform", 
rating: 4.5, // user rating 
lastUpdated: Date("2014/04/01"), // last update time 
… }
Product – Variant Model 
> db.variant.findOne() 
{ 
23 
_id: "730223104376", // the sku 
itemId: "301671", // references item id 
thumbnail: "http://cdn…/pump-red.jpg", // variant 
specific 
image: "http://cdn…/pump-red.jpg", 
size: 6.0, 
color: "Red", 
width: "B", 
heelHeight: 5.0, 
lastUpdated: Date("2014/04/01"), // last update time 
… 
}
Product Catalog - Data Layer Design 
Don’t do it all in a single collection! 
24 
MongoDB Data Store 
Items Summaries Pricing 
Ratings & 
Reviews 
Variants Promotions 
#1 Obtain 
results
Product – Summary Model 
The summary relies on the following parameters: 
• department e.g. "Shoes" 
• An indexed attribute 
25 
– Category path, e.g. "Shoes/Women/Pumps" 
– Price range 
– List of Item Attributes, e.g. Brand = Guess 
– List of Variant Attributes, e.g. Color = red 
• A non-indexed attribute 
– List of Item Secondary Attributes, e.g. Style = Designer 
– List of Variant Secondary Attributes, e.g. heel height = 4.0 
• Sorting, e.g. Price Low to High
6. Product: Representative Queries – Item 
• Get item by id 
26 
db.definition.findOne( { _id: "301671" } ) 
• Get item from Product Ids 
db.definition.findOne( { _id: { $in: ["301671", "301672" ] } } ) 
• Get items by department 
db.definition.find({ department: "Shoes" }) 
• Get items by category prefix 
db.definition.find( { category: /^Shoes/Women/ } ) 
• Indices 
productId, department, category, lastUpdated
Why is this important? 
• Because now I can do NEW things much more 
27 
easily 
• Suppose you want to enable search based on 
weather….. 
– “winter coats” 
– “shoes for the rain” 
– …. 
• Suppose you want to build a universal shopping 
cart to work across multiple brands and devices
Search – Summary Model 
{ "_id": "3ZZVA46759401P", // the item id 
28 
"name": "Women's Chic - Black Velvet Suede", 
"dep": "84700", // useful as standalone for indexing 
"cat": "/84700/80009/1282094266/1200003270", 
"desc": { "lang": "en", "val": "This pointy toe slingback ..." }, 
"img": { "width": 450, "height": 330, "src": "http://..." }, 
"attrs": [ // global attributes, easily indexable by SE 
"heel height=mid (1-3/4 to 2-1/4 in.)", 
"brand=metaphor", 
"shoe size=6", 
"shoe size=6.5", ... 
”weather=cold" 
], 
"sattrs": [ // global attributes, not to be indexed 
"upper material=synthetic", 
"toe=open toe", ... 
], 
"vars": [ 
{ "id": "05497884001", 
"img": [ // images], 
"attrs": [ // list of variant attributes to index ] 
"sattrs": [ // list of variant attributes not to index ] }, … 
] }
What’s marvelous about this? 
• No need to change a data model 
• No need to make this change in 
29 
multiple catalogs 
• When YOU come to my site, I can get 
the weather of YOUR location and 
show a homepage with items aligned 
to YOUR environment 
– This is demonstrated to be very 
effective 
– Think of the poor stores trying to sell 
sandals last spring in Manhattan…. 
• This took almost no effort !
Universal Shopping Cart 
• Persist your cart across 
devices and sessions 
• Extend the service across 
all your brands 
• Leverage MongoDB’s tag 
aware sharding to persist 
and replicate over 
multiple continents 
• Deliver low latency 
everywhere 
30
Identify Product Trends 
• Retailers need to identify HOT and NEW events 
• Need to know what is going to happen before it happens 
31 
– Purchases, add to cart, browse, click
Simple Real Time Analytics 
• In slices of 10 minutes, just increment the events 
32 
as they come 
• Can maintain multiple trending metrics and 
change flexibly 
• Leverage results of past hour to make content 
dynamic 
• This requires no Hadoop, Kafka, Storm nor Spark 
Tracking samples: 
{ "_id" : ”*********" , ”cart_count" : 14, “purchases”: 2} 
{ "_id" : ”**********" , "cart_count" : 2} 
{ "_id" : ”*********" , "cart_count" : 10138} 
{ "_id" : ”**********" , "cart_count" : 1648} 
{ "_id" : ”*********" , "cart_count" : 10852} 
Single operations to insert / update: 
Db.track.update( { _id: ”123498745" }, 
{ $inc: {cart_count: 1 } })
Take Aways 
• Retail is changing and requires dynamic engagement 
33 
across all channels 
• The known IT models cannot support this appropriately 
• MongoDB can support these new systems of engagement 
by simplifying the data infrastructure and making changes 
flexible 
• MongoDB built assets for a Retail architecture 
• Enables powerful new business value through 
– Single view of product 
– Universal shopping cart 
– Streaming analytics 
– Single view of customer 
– ….
Thank You !

More Related Content

PPTX
Retail referencearchitecture productcatalog
PPTX
Retail Reference Architecture Part 3: Scalable Insight Component Providing Us...
ODP
Product catalog using MongoDB
PPTX
Retail Reference Architecture
PPTX
Retail Reference Architecture Part 2: Real-Time, Geo Distributed Inventory
PPTX
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
PPTX
From SQL to NoSQL: Structured Querying for JSON
PDF
MongoDB Meetup
Retail referencearchitecture productcatalog
Retail Reference Architecture Part 3: Scalable Insight Component Providing Us...
Product catalog using MongoDB
Retail Reference Architecture
Retail Reference Architecture Part 2: Real-Time, Geo Distributed Inventory
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
From SQL to NoSQL: Structured Querying for JSON
MongoDB Meetup

Viewers also liked (6)

KEY
Blending MongoDB and RDBMS for ecommerce
KEY
Augmenting RDBMS with MongoDB for ecommerce
KEY
MongoDB and Ecommerce : A perfect combination
PDF
Synchronise your data between MySQL and MongoDB
PPTX
Mental Models for Product Managers
KEY
MongoDB, E-commerce and Transactions
Blending MongoDB and RDBMS for ecommerce
Augmenting RDBMS with MongoDB for ecommerce
MongoDB and Ecommerce : A perfect combination
Synchronise your data between MySQL and MongoDB
Mental Models for Product Managers
MongoDB, E-commerce and Transactions
Ad

Similar to Unify Your Selling Channels in One Product Catalog Service (20)

PPTX
Prepare for Peak Holiday Season with MongoDB
PPTX
Calculating ROI with Innovative eCommerce Platforms
PPTX
Webinar: Scaling MongoDB
PPTX
L'architettura di classe enterprise di nuova generazione - Massimo Brignoli
PDF
Salesforce Analytics Cloud - Explained
PPT
Webinar: Expanding Retail Frontiers with MongoDB
PPTX
Webinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a Time
PDF
Simplifying & accelerating application development with MongoDB's intelligent...
PDF
Managing Database Indexes: A Data-Driven Approach - Amadeus Magrabi
PDF
Deep.bi - Real-time, Deep Data Analytics Platform For Ecommerce
PPT
No SQL and MongoDB - Hyderabad Scalability Meetup
PPTX
Novedades de MongoDB 3.6
PPTX
Eventually Elasticsearch: Eventual Consistency in the Real World
PDF
Data Science and Machine Learning for eCommerce and Retail
PPTX
Agility and Scalability with MongoDB
PPT
MongoDB Tick Data Presentation
PDF
Snowplow - Evolve your analytics stack with your business
PPT
MongoDB - An Agile NoSQL Database
PDF
The Value of Customer Insights & Analytics in a Modern Retail Environment
PDF
Expanding Retail Frontiers with MongoDB
Prepare for Peak Holiday Season with MongoDB
Calculating ROI with Innovative eCommerce Platforms
Webinar: Scaling MongoDB
L'architettura di classe enterprise di nuova generazione - Massimo Brignoli
Salesforce Analytics Cloud - Explained
Webinar: Expanding Retail Frontiers with MongoDB
Webinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a Time
Simplifying & accelerating application development with MongoDB's intelligent...
Managing Database Indexes: A Data-Driven Approach - Amadeus Magrabi
Deep.bi - Real-time, Deep Data Analytics Platform For Ecommerce
No SQL and MongoDB - Hyderabad Scalability Meetup
Novedades de MongoDB 3.6
Eventually Elasticsearch: Eventual Consistency in the Real World
Data Science and Machine Learning for eCommerce and Retail
Agility and Scalability with MongoDB
MongoDB Tick Data Presentation
Snowplow - Evolve your analytics stack with your business
MongoDB - An Agile NoSQL Database
The Value of Customer Insights & Analytics in a Modern Retail Environment
Expanding Retail Frontiers with MongoDB
Ad

More from MongoDB (20)

PDF
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
PDF
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
PDF
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
PDF
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
PDF
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
PDF
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
PDF
MongoDB SoCal 2020: MongoDB Atlas Jump Start
PDF
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
PDF
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
PDF
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
PDF
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
PDF
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
PDF
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
PDF
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
PDF
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
PDF
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
PDF
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
PDF
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...

Recently uploaded (20)

PDF
Electrocardiogram sequences data analytics and classification using unsupervi...
PDF
SaaS reusability assessment using machine learning techniques
PDF
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
PDF
LMS bot: enhanced learning management systems for improved student learning e...
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PPTX
MuleSoft-Compete-Deck for midddleware integrations
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Electrocardiogram sequences data analytics and classification using unsupervi...
SaaS reusability assessment using machine learning techniques
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
LMS bot: enhanced learning management systems for improved student learning e...
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
Data Virtualization in Action: Scaling APIs and Apps with FME
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
SGT Report The Beast Plan and Cyberphysical Systems of Control
Comparative analysis of machine learning models for fake news detection in so...
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
Introduction to MCP and A2A Protocols: Enabling Agent Communication
Basics of Cloud Computing - Cloud Ecosystem
giants, standing on the shoulders of - by Daniel Stenberg
MuleSoft-Compete-Deck for midddleware integrations
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf

Unify Your Selling Channels in One Product Catalog Service

  • 1. Unify Your Selling Channels in One Product Catalog Edouard Servan-Schreiber, Ph.D. Director for Solution Architecture [email protected]
  • 2. Who is MongoDB? 2 Who is MongoDB: MongoDB (from humongous) is an open-source, game-changing operational database technology, designed to enable information capture, sharing and distribution to meet the needs and behaviors of today’s digitally-oriented society.
  • 3. Retail at War: How to Differentiate? • Retail Information • Personalized Selling • Existing applications & technology?
  • 4. MongoDB powers Systems of Engagement • A document model (holds mixed, variant data) • Ability to add new & different data (agility) • Ability to ask real-time questions based on right now 4 update (complex querying & in-place updating) • Geo-Location built-in • Power of traditional data bases (full consistency, durability, atomic operations) • Near linear expansion (scaling via sharding) • MongoDB is a unique fit for frictionless retail
  • 5. 4 Use Cases: Modern, Seamless Retail 1. “Global Product 360” Theme: Product details & location up-to-minute; Vendors, payment
  • 6. 4 Use Cases: Modern, Seamless Retail 2. Consolidated Customer View Theme: Single View of Customer, Consumer 360
  • 7. 4 Use Cases: Modern, Seamless Retail 3. Channel Innovation (Ecommerce, Mobile, Social etc.) Theme: Back-end system integration, product details & geo-location up-to-minute
  • 8. 4 Use Cases: Modern, Seamless Retail 4. Relevant Personalization: Via technology to consumer Theme: Relevance & convenience Embedding into daily life
  • 11. 11 Retail Data Platform
  • 12. 12 Systems of Engagement
  • 14. Merchandising Objective: “Global Product Service” Single view of a product, one central service • Flexible schema containing all useful data • Read volume high and sustained, 100k reads / s • Can seamlessly take write spikes during catalog 14 update • Advanced indexing and querying • Geographical distribution for HA and low latency
  • 15. The Reality: Many catalogs 1. One department in charge of master product works hard at fitting 15 data into SQL tables 2. Resulting data sits in a SQL server with a couple replicas. It's forbidden to hit it more than 100 times / sec 3. Other departments need to access the data way more often for their own services 4. Other departments need more information that is not available since it did not fit in that long devised rigid SQL schema 5. ETLs and Message Buses are put in place for other teams to try figure it out themselves… 6. Data becomes inconsistent, fragmented, not up-to-date… Problem visible both internally and by customers!
  • 16. 16 Product Information Complexity Ecommerce Shop Catalog Stores Catalog Dozens of catalogs! Content Management Catalog Product Merchandising Operations Master Catalog Department 4 Catalog Search Catalog Store Associates Catalog Message Bus ETLs
  • 17. What is hard about this? • Read intensity 18 – 100K+ reads per second (think peak time) – Omnichannel means it is not acceptable to lose a sale because your IT crawls • Flexibility – Each facet of the business needs slightly different data – And they each want to change it often • Who has the system of record when you have 12 copies around??
  • 18. 19 Product Information MongoDB Architecture Product Service API MongoDB Data Layer Items Pricing Promotions Variants Ratings & Reviews … Digital Shop Store + Associates Inventory SCMS Public API Search, CMS, …
  • 19. Product Page – What does it mean? 20 Product images General Informatio n List of Variants External Informatio n Localized Description
  • 20. Retail Product Model - Overview • Item: the overall product info (e.g. Levi’s 501) • Variant: a specific variant of an item (e.g. in black size 6) 21 which typically has a specific SKU / UPC – Note: each model can have thousands of variants, each variant can have hundreds of attributes • Price: price information may vary based on the store, the variant, etc • Hierarchy: the item taxonomy • Facet: facets to search products by • Vendors: a given sku may be available through several vendors if the site is a marketplace
  • 21. Product - Item Data Model > db.item.findOne() { _id: "301671", // main item id 22 department: "Shoes", category: "Shoes/Women/Pumps", brand: "Guess", thumbnail: "http://cdn…/pump.jpg", image: "http://cdn…/pump1.jpg", // larger version of thumbnail title: "Evening Platform Pumps", description: "Those evening platform pumps put the perfect finishing touches on your most glamorous night-on-the-town outfit", shortDescription: "Evening Platform Pumps", style: "Designer", type: "Platform", rating: 4.5, // user rating lastUpdated: Date("2014/04/01"), // last update time … }
  • 22. Product – Variant Model > db.variant.findOne() { 23 _id: "730223104376", // the sku itemId: "301671", // references item id thumbnail: "http://cdn…/pump-red.jpg", // variant specific image: "http://cdn…/pump-red.jpg", size: 6.0, color: "Red", width: "B", heelHeight: 5.0, lastUpdated: Date("2014/04/01"), // last update time … }
  • 23. Product Catalog - Data Layer Design Don’t do it all in a single collection! 24 MongoDB Data Store Items Summaries Pricing Ratings & Reviews Variants Promotions #1 Obtain results
  • 24. Product – Summary Model The summary relies on the following parameters: • department e.g. "Shoes" • An indexed attribute 25 – Category path, e.g. "Shoes/Women/Pumps" – Price range – List of Item Attributes, e.g. Brand = Guess – List of Variant Attributes, e.g. Color = red • A non-indexed attribute – List of Item Secondary Attributes, e.g. Style = Designer – List of Variant Secondary Attributes, e.g. heel height = 4.0 • Sorting, e.g. Price Low to High
  • 25. 6. Product: Representative Queries – Item • Get item by id 26 db.definition.findOne( { _id: "301671" } ) • Get item from Product Ids db.definition.findOne( { _id: { $in: ["301671", "301672" ] } } ) • Get items by department db.definition.find({ department: "Shoes" }) • Get items by category prefix db.definition.find( { category: /^Shoes/Women/ } ) • Indices productId, department, category, lastUpdated
  • 26. Why is this important? • Because now I can do NEW things much more 27 easily • Suppose you want to enable search based on weather….. – “winter coats” – “shoes for the rain” – …. • Suppose you want to build a universal shopping cart to work across multiple brands and devices
  • 27. Search – Summary Model { "_id": "3ZZVA46759401P", // the item id 28 "name": "Women's Chic - Black Velvet Suede", "dep": "84700", // useful as standalone for indexing "cat": "/84700/80009/1282094266/1200003270", "desc": { "lang": "en", "val": "This pointy toe slingback ..." }, "img": { "width": 450, "height": 330, "src": "http://..." }, "attrs": [ // global attributes, easily indexable by SE "heel height=mid (1-3/4 to 2-1/4 in.)", "brand=metaphor", "shoe size=6", "shoe size=6.5", ... ”weather=cold" ], "sattrs": [ // global attributes, not to be indexed "upper material=synthetic", "toe=open toe", ... ], "vars": [ { "id": "05497884001", "img": [ // images], "attrs": [ // list of variant attributes to index ] "sattrs": [ // list of variant attributes not to index ] }, … ] }
  • 28. What’s marvelous about this? • No need to change a data model • No need to make this change in 29 multiple catalogs • When YOU come to my site, I can get the weather of YOUR location and show a homepage with items aligned to YOUR environment – This is demonstrated to be very effective – Think of the poor stores trying to sell sandals last spring in Manhattan…. • This took almost no effort !
  • 29. Universal Shopping Cart • Persist your cart across devices and sessions • Extend the service across all your brands • Leverage MongoDB’s tag aware sharding to persist and replicate over multiple continents • Deliver low latency everywhere 30
  • 30. Identify Product Trends • Retailers need to identify HOT and NEW events • Need to know what is going to happen before it happens 31 – Purchases, add to cart, browse, click
  • 31. Simple Real Time Analytics • In slices of 10 minutes, just increment the events 32 as they come • Can maintain multiple trending metrics and change flexibly • Leverage results of past hour to make content dynamic • This requires no Hadoop, Kafka, Storm nor Spark Tracking samples: { "_id" : ”*********" , ”cart_count" : 14, “purchases”: 2} { "_id" : ”**********" , "cart_count" : 2} { "_id" : ”*********" , "cart_count" : 10138} { "_id" : ”**********" , "cart_count" : 1648} { "_id" : ”*********" , "cart_count" : 10852} Single operations to insert / update: Db.track.update( { _id: ”123498745" }, { $inc: {cart_count: 1 } })
  • 32. Take Aways • Retail is changing and requires dynamic engagement 33 across all channels • The known IT models cannot support this appropriately • MongoDB can support these new systems of engagement by simplifying the data infrastructure and making changes flexible • MongoDB built assets for a Retail architecture • Enables powerful new business value through – Single view of product – Universal shopping cart – Streaming analytics – Single view of customer – ….