SlideShare uma empresa Scribd logo
1 de 23
“Multi Store” eCommerce Making Good Decisions Matthew Bertulli Co-Founder & President  @mbertulli
Agenda Introduction Multi-Store vs. Multi-License Overview “Heavy Hitters” Questions you as developers should be asking in order to find toolset fit. Use Cases Where do I get all of this stuff from? Technical Analysis and Comparisons Tools, Database, Core Code, Front-End “The Pretty” Q&A / Discussion
Who is this guy?	 10 or so years in eCommerce.  Last “real job” was with NetSuite before starting Demac Media ~3 years ago. Experience with digital goods sales, online event registration and ticketing, b2c online retail, b2b eCommerce, multi-channel sales, and the nastiness that is eCommerce marketing. Developer first, everything else second. Multi-Language (not just a .NET guys).  Strong belief in use the right tool for the right job. Love the challenges of multi-store and multi-channel eCommerce
“Multi Store” Overview Two Viable Models Multi-Store is the true use of ASPDNSF Multi-Store version.  V9 with more goodness. Multi-Instance is using multiple ASPDNSF instances for multiple stores. “Multi Store” eCommerce is extremely complicated.  We have an hour and we won’t even scratch the surface.
My Hope	 I want to give you enough ammunition to answer the following question when tackling “multi store” eCommerce: Is it more work to customize ASPDNSF Multi-Store or build tooling and process for handling multiple ASPDNSF instances?
Heavy Hitters What exactly does truly map well in Multi-Store? Product Catalog Questions: Same products, different merchandising per store? Different pricing per store? Different categories/structure per store? Infrastructure! How are you going to be hosting?  How are you handling deployment?  Builds, fixes, testing, etc… Do you need to have different users have access to different stores? Are you doing multi-store for multiple “separate” clients? How different is the purchasing process from store to store?  Same payment methods, same shipping methods? Do you know how these site are marketed / connected?
Use Case – Multi-Store (MLx) Case #1: Multi-Store Deployment 5 stores.  25 planned and 50 is the target. Lower traffic sites, higher order value. Single vertical server scaling.  Deal with web farm challenges if ever arise. Easier deployment of fixes on core code base.   More difficult management of store-specific change requests (lots of shared code). Pretty large product (200,000+ SKUs) catalog and even larger set of meta data.  Having this data in one repository has significant resource-based value.
Use Case – Multi-Instance Case #2: Multi-Instance Deployment Currently 10 stores launched, 15 more planned, and 150-200 is the target. Each store owned and operated by a different company. Each store integrated to one wholesale distribution ERP system (Prophet21). Needed to be easier to make store specific customizations. Deployments of core code fixes/patches is much more difficult. Continuous Integration (CruiseControl and MSBuild are useful) Version control is important. Multiple web and database servers hosting all of these sites.
Maintenance – MI / MS Developing your own build and deployment process.  Our Tooling: SVN over GIT / Mercurial CruiseControl.NET & MSBuild Automated builds of checked in code. CSS Compression, FTP Files, Copy Proper License Files Etc… True local dev, staging server, and production server separation. Red Gate SQL Compare & SQL Data Compare Automation Transfer of new DLLs / patches / files to various web servers.   Database changes - RPITA
Database – Schema Differences
Database – Multi-Instance Multiple database instance deployments.  Dev, Staging and Production all look like this. Your data tooling must be a huge focus.  Replication / Sharing of data (think inventory).
What maps well? - MS The following have default mapping structures and an interface to make the mapping happen.  What’s missing? Affiliates Categories Coupons Gift Cards Manufacturers News Topics Order Options Products Departments Shipping Methods String Resources
Mapping Challenges - MS	 Customers / Users This is actually something that has been missing and can be an architectural challenge in single store scenarios.  Which users have access to what?  True Roles/Membership does not exist. Customer Levels If you have a wholesale only store with wholesale customer levels, those same levels will apply to all stores.
Product Catalog - MS You can map products to stores, but you can’t do much past that natively. The Big One: Pricing Price, Cost, Sale Price, Volume Pricing, Customer Level Pricing ML 9 Makes price rule customization a little easier by consolidating everything into one Prices.cs class. Note: If you’ve ever tried to customize pricing in source code you know there are a LOT of touch points. The 2nd Big One: Content Many multi-store merchants will want to vary their product catalog content per store.  Part of this is SEO, part of it is merchandising differently for different types of stores. (i.e. – discount store vs. normal retail vs. private sale) You could clone products, keeping a copy of each product in each store?
Notice there is no “Store” paramater.
Product Catalog - MI Big Challenge – You have dozens of database instances to push / replicate data into.  Our Approach We developed an integration framework that allows us to setup a series of integration “jobs” for each store.  These jobs do things like: Update Inventory every 15 minutes from ERP system. Process Orders from www.store.com to ERP system. Copy catalog of products to each store daily. This works for us, but doesn’t mean it works for everyone. Use of Red Gate tools may allow for easier data replication across instances in some cases.
Users / Roles and Store Management - MS Same Company, Different Divisions (Split Resources) Not so nice a fit with Multi-Store License Same Company, Shared Resources Fits nicely with Multi-Store License Multiple Companies You’ll be coding quite a bit to make this work. Locking down sets of data based on user access is not an easy architectural problem to solve.  Let alone in code.
Front-End “The Pretty”	 - MS ASPDNSF has always been good at multiple skins/templates for different uses (think holiday season skin). Each store should share the same core .aspx pages.  You want to watch out for those pages that don’t depend heavily on XMLPackages/Skins for display / markup. ShoppingCart.aspx Checkout Pages (checkoutshipping.aspx, checkoutpayment.aspx, checkout1.aspx) You can have separate skins / templates for each store.  Pretty obvious one and very necessary. Method depends on V8 or ML code base.
Front-End “The Pretty” - MI Organization & Structure to your code is key Each store is a customized version of an existing “Skin” that we pre-designed and developed. We create Skin_#### for each variation where #### is our client ID in the warehouse system. Leverage version control tools heavily to deal with branching, merging, conflicts and common code.
Conclusion Multi-Store is a tough nut to crack, especially for the small to mid sized online merchant.   Maintenance is the problem.  Good Architecture is the answer. The right tooling can save you a lot of time and headache. Just because multi-store platforms exist, doesn’t make them the right choice for everyone. Q&A / Discussion

Mais conteúdo relacionado

Destaque (20)

Dossier de prensa 2015
Dossier de prensa 2015Dossier de prensa 2015
Dossier de prensa 2015
 
varios
variosvarios
varios
 
Modelo cuestionario autoevluacion_areas
Modelo cuestionario autoevluacion_areasModelo cuestionario autoevluacion_areas
Modelo cuestionario autoevluacion_areas
 
Acerca de mi
Acerca de miAcerca de mi
Acerca de mi
 
8. tüdőbeteg kórlap
8. tüdőbeteg kórlap8. tüdőbeteg kórlap
8. tüdőbeteg kórlap
 
Mr. John´s Shoes - Zapatos hechos a mano
Mr. John´s Shoes - Zapatos hechos a mano Mr. John´s Shoes - Zapatos hechos a mano
Mr. John´s Shoes - Zapatos hechos a mano
 
Juan Carlos Ariza evaluación de Recursos Web
Juan Carlos Ariza evaluación de Recursos WebJuan Carlos Ariza evaluación de Recursos Web
Juan Carlos Ariza evaluación de Recursos Web
 
Fasi sviluppo
Fasi sviluppoFasi sviluppo
Fasi sviluppo
 
Internet
InternetInternet
Internet
 
Colombia: Entre los mas atractivos para la inversion
Colombia: Entre los mas atractivos para la inversionColombia: Entre los mas atractivos para la inversion
Colombia: Entre los mas atractivos para la inversion
 
Depuraciondel Agua Em
Depuraciondel Agua EmDepuraciondel Agua Em
Depuraciondel Agua Em
 
Quieres ser feliz
Quieres ser felizQuieres ser feliz
Quieres ser feliz
 
Isa villa tarea1 periodo 2
Isa villa tarea1 periodo 2Isa villa tarea1 periodo 2
Isa villa tarea1 periodo 2
 
814 n yxmiyol
814 n yxmiyol814 n yxmiyol
814 n yxmiyol
 
De7 Seminar
De7 SeminarDe7 Seminar
De7 Seminar
 
Hgh
HghHgh
Hgh
 
El poder de las personas: crowdsourcing
El poder de las personas: crowdsourcingEl poder de las personas: crowdsourcing
El poder de las personas: crowdsourcing
 
Aprendiendo a leer los envases
Aprendiendo a leer los envasesAprendiendo a leer los envases
Aprendiendo a leer los envases
 
Bibliografía y referencias 2015
Bibliografía y referencias 2015Bibliografía y referencias 2015
Bibliografía y referencias 2015
 
Salud empresarial
Salud empresarialSalud empresarial
Salud empresarial
 

Semelhante a AspDotNetStorefront Multi store - Making Good Architecture Decisions

Benchmark of ecommerce solutions (short version, english)
Benchmark of ecommerce solutions (short version, english)Benchmark of ecommerce solutions (short version, english)
Benchmark of ecommerce solutions (short version, english)Philippe Humeau
 
Benchmark of e-commerce solutions
Benchmark of e-commerce solutionsBenchmark of e-commerce solutions
Benchmark of e-commerce solutionsNBS System
 
The biggest stores on Magento
The biggest stores on MagentoThe biggest stores on Magento
The biggest stores on MagentoDivante
 
Datalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointDatalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointMike Plant
 
Cis 555 Week 4 Assignment 2 Automated Teller Machine (Atm)...
Cis 555 Week 4 Assignment 2 Automated Teller Machine (Atm)...Cis 555 Week 4 Assignment 2 Automated Teller Machine (Atm)...
Cis 555 Week 4 Assignment 2 Automated Teller Machine (Atm)...Karen Thompson
 
Smart buckets ppt
Smart buckets pptSmart buckets ppt
Smart buckets pptkiran Patel
 
Delivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generationDelivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generationCodemotion
 
MongoDB Schema Design by Examples
MongoDB Schema Design by ExamplesMongoDB Schema Design by Examples
MongoDB Schema Design by ExamplesHadi Ariawan
 
What is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
What is OLAP -Data Warehouse Concepts - IT Online Training @ NewyorksysWhat is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
What is OLAP -Data Warehouse Concepts - IT Online Training @ NewyorksysNEWYORKSYS-IT SOLUTIONS
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedLa FeWeb
 
MicroStrategy Design Challenges - Tips and Best Practices
MicroStrategy Design Challenges - Tips and Best PracticesMicroStrategy Design Challenges - Tips and Best Practices
MicroStrategy Design Challenges - Tips and Best PracticesBiBoard.Org
 
Revolutionize Your Online Presence with Headless BigCommerce Development?
Revolutionize Your Online Presence with Headless BigCommerce Development?Revolutionize Your Online Presence with Headless BigCommerce Development?
Revolutionize Your Online Presence with Headless BigCommerce Development?Lucy Zeniffer
 
Nw2008 tips tricks_edw_v10
Nw2008 tips tricks_edw_v10Nw2008 tips tricks_edw_v10
Nw2008 tips tricks_edw_v10Harsha Gowda B R
 
Design Strategy for Data Isolation in SaaS Model
Design Strategy for Data Isolation in SaaS ModelDesign Strategy for Data Isolation in SaaS Model
Design Strategy for Data Isolation in SaaS ModelTechcello
 
Why Ecommerce Businesses Graduate To Magento
Why Ecommerce Businesses Graduate To MagentoWhy Ecommerce Businesses Graduate To Magento
Why Ecommerce Businesses Graduate To MagentoATAK Interactive, Inc
 
Magento live eCommerce demo tutorial for beginners by Magento Universe
Magento live eCommerce demo tutorial for beginners by Magento UniverseMagento live eCommerce demo tutorial for beginners by Magento Universe
Magento live eCommerce demo tutorial for beginners by Magento UniverseMagento Universe
 
Magento Live eCommerce Demo Tutorial for Beginners » Magento Universe
Magento Live eCommerce Demo Tutorial for Beginners » Magento UniverseMagento Live eCommerce Demo Tutorial for Beginners » Magento Universe
Magento Live eCommerce Demo Tutorial for Beginners » Magento UniversePuneet Parashar
 
Building a Big Data Solution
Building a Big Data SolutionBuilding a Big Data Solution
Building a Big Data SolutionJames Serra
 
Omnichannel B2B Architecture
Omnichannel B2B ArchitectureOmnichannel B2B Architecture
Omnichannel B2B ArchitectureDivante
 

Semelhante a AspDotNetStorefront Multi store - Making Good Architecture Decisions (20)

Benchmark of ecommerce solutions (short version, english)
Benchmark of ecommerce solutions (short version, english)Benchmark of ecommerce solutions (short version, english)
Benchmark of ecommerce solutions (short version, english)
 
Benchmark of e-commerce solutions
Benchmark of e-commerce solutionsBenchmark of e-commerce solutions
Benchmark of e-commerce solutions
 
The biggest stores on Magento
The biggest stores on MagentoThe biggest stores on Magento
The biggest stores on Magento
 
IT in retail
IT in retailIT in retail
IT in retail
 
Datalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointDatalayer Best Practices with Observepoint
Datalayer Best Practices with Observepoint
 
Cis 555 Week 4 Assignment 2 Automated Teller Machine (Atm)...
Cis 555 Week 4 Assignment 2 Automated Teller Machine (Atm)...Cis 555 Week 4 Assignment 2 Automated Teller Machine (Atm)...
Cis 555 Week 4 Assignment 2 Automated Teller Machine (Atm)...
 
Smart buckets ppt
Smart buckets pptSmart buckets ppt
Smart buckets ppt
 
Delivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generationDelivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generation
 
MongoDB Schema Design by Examples
MongoDB Schema Design by ExamplesMongoDB Schema Design by Examples
MongoDB Schema Design by Examples
 
What is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
What is OLAP -Data Warehouse Concepts - IT Online Training @ NewyorksysWhat is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
What is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
 
MicroStrategy Design Challenges - Tips and Best Practices
MicroStrategy Design Challenges - Tips and Best PracticesMicroStrategy Design Challenges - Tips and Best Practices
MicroStrategy Design Challenges - Tips and Best Practices
 
Revolutionize Your Online Presence with Headless BigCommerce Development?
Revolutionize Your Online Presence with Headless BigCommerce Development?Revolutionize Your Online Presence with Headless BigCommerce Development?
Revolutionize Your Online Presence with Headless BigCommerce Development?
 
Nw2008 tips tricks_edw_v10
Nw2008 tips tricks_edw_v10Nw2008 tips tricks_edw_v10
Nw2008 tips tricks_edw_v10
 
Design Strategy for Data Isolation in SaaS Model
Design Strategy for Data Isolation in SaaS ModelDesign Strategy for Data Isolation in SaaS Model
Design Strategy for Data Isolation in SaaS Model
 
Why Ecommerce Businesses Graduate To Magento
Why Ecommerce Businesses Graduate To MagentoWhy Ecommerce Businesses Graduate To Magento
Why Ecommerce Businesses Graduate To Magento
 
Magento live eCommerce demo tutorial for beginners by Magento Universe
Magento live eCommerce demo tutorial for beginners by Magento UniverseMagento live eCommerce demo tutorial for beginners by Magento Universe
Magento live eCommerce demo tutorial for beginners by Magento Universe
 
Magento Live eCommerce Demo Tutorial for Beginners » Magento Universe
Magento Live eCommerce Demo Tutorial for Beginners » Magento UniverseMagento Live eCommerce Demo Tutorial for Beginners » Magento Universe
Magento Live eCommerce Demo Tutorial for Beginners » Magento Universe
 
Building a Big Data Solution
Building a Big Data SolutionBuilding a Big Data Solution
Building a Big Data Solution
 
Omnichannel B2B Architecture
Omnichannel B2B ArchitectureOmnichannel B2B Architecture
Omnichannel B2B Architecture
 

Último

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

AspDotNetStorefront Multi store - Making Good Architecture Decisions

  • 1. “Multi Store” eCommerce Making Good Decisions Matthew Bertulli Co-Founder & President @mbertulli
  • 2. Agenda Introduction Multi-Store vs. Multi-License Overview “Heavy Hitters” Questions you as developers should be asking in order to find toolset fit. Use Cases Where do I get all of this stuff from? Technical Analysis and Comparisons Tools, Database, Core Code, Front-End “The Pretty” Q&A / Discussion
  • 3. Who is this guy? 10 or so years in eCommerce. Last “real job” was with NetSuite before starting Demac Media ~3 years ago. Experience with digital goods sales, online event registration and ticketing, b2c online retail, b2b eCommerce, multi-channel sales, and the nastiness that is eCommerce marketing. Developer first, everything else second. Multi-Language (not just a .NET guys). Strong belief in use the right tool for the right job. Love the challenges of multi-store and multi-channel eCommerce
  • 4. “Multi Store” Overview Two Viable Models Multi-Store is the true use of ASPDNSF Multi-Store version. V9 with more goodness. Multi-Instance is using multiple ASPDNSF instances for multiple stores. “Multi Store” eCommerce is extremely complicated. We have an hour and we won’t even scratch the surface.
  • 5. My Hope I want to give you enough ammunition to answer the following question when tackling “multi store” eCommerce: Is it more work to customize ASPDNSF Multi-Store or build tooling and process for handling multiple ASPDNSF instances?
  • 6. Heavy Hitters What exactly does truly map well in Multi-Store? Product Catalog Questions: Same products, different merchandising per store? Different pricing per store? Different categories/structure per store? Infrastructure! How are you going to be hosting? How are you handling deployment? Builds, fixes, testing, etc… Do you need to have different users have access to different stores? Are you doing multi-store for multiple “separate” clients? How different is the purchasing process from store to store? Same payment methods, same shipping methods? Do you know how these site are marketed / connected?
  • 7. Use Case – Multi-Store (MLx) Case #1: Multi-Store Deployment 5 stores. 25 planned and 50 is the target. Lower traffic sites, higher order value. Single vertical server scaling. Deal with web farm challenges if ever arise. Easier deployment of fixes on core code base. More difficult management of store-specific change requests (lots of shared code). Pretty large product (200,000+ SKUs) catalog and even larger set of meta data. Having this data in one repository has significant resource-based value.
  • 8.
  • 9. Use Case – Multi-Instance Case #2: Multi-Instance Deployment Currently 10 stores launched, 15 more planned, and 150-200 is the target. Each store owned and operated by a different company. Each store integrated to one wholesale distribution ERP system (Prophet21). Needed to be easier to make store specific customizations. Deployments of core code fixes/patches is much more difficult. Continuous Integration (CruiseControl and MSBuild are useful) Version control is important. Multiple web and database servers hosting all of these sites.
  • 10.
  • 11. Maintenance – MI / MS Developing your own build and deployment process. Our Tooling: SVN over GIT / Mercurial CruiseControl.NET & MSBuild Automated builds of checked in code. CSS Compression, FTP Files, Copy Proper License Files Etc… True local dev, staging server, and production server separation. Red Gate SQL Compare & SQL Data Compare Automation Transfer of new DLLs / patches / files to various web servers. Database changes - RPITA
  • 12.
  • 13. Database – Schema Differences
  • 14. Database – Multi-Instance Multiple database instance deployments. Dev, Staging and Production all look like this. Your data tooling must be a huge focus. Replication / Sharing of data (think inventory).
  • 15. What maps well? - MS The following have default mapping structures and an interface to make the mapping happen. What’s missing? Affiliates Categories Coupons Gift Cards Manufacturers News Topics Order Options Products Departments Shipping Methods String Resources
  • 16. Mapping Challenges - MS Customers / Users This is actually something that has been missing and can be an architectural challenge in single store scenarios. Which users have access to what? True Roles/Membership does not exist. Customer Levels If you have a wholesale only store with wholesale customer levels, those same levels will apply to all stores.
  • 17. Product Catalog - MS You can map products to stores, but you can’t do much past that natively. The Big One: Pricing Price, Cost, Sale Price, Volume Pricing, Customer Level Pricing ML 9 Makes price rule customization a little easier by consolidating everything into one Prices.cs class. Note: If you’ve ever tried to customize pricing in source code you know there are a LOT of touch points. The 2nd Big One: Content Many multi-store merchants will want to vary their product catalog content per store. Part of this is SEO, part of it is merchandising differently for different types of stores. (i.e. – discount store vs. normal retail vs. private sale) You could clone products, keeping a copy of each product in each store?
  • 18. Notice there is no “Store” paramater.
  • 19. Product Catalog - MI Big Challenge – You have dozens of database instances to push / replicate data into. Our Approach We developed an integration framework that allows us to setup a series of integration “jobs” for each store. These jobs do things like: Update Inventory every 15 minutes from ERP system. Process Orders from www.store.com to ERP system. Copy catalog of products to each store daily. This works for us, but doesn’t mean it works for everyone. Use of Red Gate tools may allow for easier data replication across instances in some cases.
  • 20. Users / Roles and Store Management - MS Same Company, Different Divisions (Split Resources) Not so nice a fit with Multi-Store License Same Company, Shared Resources Fits nicely with Multi-Store License Multiple Companies You’ll be coding quite a bit to make this work. Locking down sets of data based on user access is not an easy architectural problem to solve. Let alone in code.
  • 21. Front-End “The Pretty” - MS ASPDNSF has always been good at multiple skins/templates for different uses (think holiday season skin). Each store should share the same core .aspx pages. You want to watch out for those pages that don’t depend heavily on XMLPackages/Skins for display / markup. ShoppingCart.aspx Checkout Pages (checkoutshipping.aspx, checkoutpayment.aspx, checkout1.aspx) You can have separate skins / templates for each store. Pretty obvious one and very necessary. Method depends on V8 or ML code base.
  • 22. Front-End “The Pretty” - MI Organization & Structure to your code is key Each store is a customized version of an existing “Skin” that we pre-designed and developed. We create Skin_#### for each variation where #### is our client ID in the warehouse system. Leverage version control tools heavily to deal with branching, merging, conflicts and common code.
  • 23. Conclusion Multi-Store is a tough nut to crack, especially for the small to mid sized online merchant. Maintenance is the problem. Good Architecture is the answer. The right tooling can save you a lot of time and headache. Just because multi-store platforms exist, doesn’t make them the right choice for everyone. Q&A / Discussion