Open Channels FM
Open Channels FM
A WooCommerce Migration and Multisite Case Study
Loading
/

Jonathan has a chat as he dives into a case study with revolving around migration and multi-sites with WooCommerce. Aslam Multani, Chirag Patel and Ajay Ghaghretiya from Multidots share insights and valuable tips as they talk about their project working on RHRSwag.com.

Episode Transcript

Jonathan: Welcome to “Do the Woo”. I’m your host today, Jonathan Wold and I am joined with a larger than normal group today. I’ve got some fantastic folks. I’ve got Aslam, who’s the CTO and co-founder of Multidots. I’ve got Chirag, who is a project manager at Multidots, and Ajay, who is a senior WordPress engineer. Welcome, each of you. It’s great to have you today.

Aslam: Thank you, Jonathan. Thank you for the introduction.

Jonathan: So Aslam, can you tell us a little bit about Multidots. Like you guys have been in the space for a long time. What does Multidots do, and you also, tell us about the DotStore as well.

Aslam: Thanks Jonathan for this opportunity to come on the podcast. As you said, my name is Aslam, and I’m one of the co-founder and chief technology officer. And Multidots, we are a proud workplace VIP agency partner. We are a gold partner and we work for many of the enterprise customers. And we as a service agency, we expertise into complex workplace based solutions. That includes migrations from other CMS to workplace, or if you are a big media house or a publication company and looking for a custom editorial workflow or solutions, we would be really happy to help. We also have the Dotstore, it is a premium commerce plugin shop where we specialize into multiple solutions that we provide based on WooCommerce. So it’s a very popular store we have there.

Jonathan: Excellent. Chirag, so project management, that can mean a lot of things. What do you tend to focus your time on?

Chirag: So, yes, I’m Chirag Patel, working as a project manager at Multidots, and I have been working with WordPress for more than 10 years, and I have worked with multiple brands, startups, and agency to build website and WooCommerce. And Aslam mentioned, I think I’m also a part of your project of media publishing.

Jonathan: Yep. Excellent. Excellent. And do you enjoy project management?

Chirag: Yeah.

Jonathan: I’ve done enough project management to appreciate those who enjoy it. It’s not my favorite thing. And it takes people with the skill and interest to do it well.

Chirag: Yeah. I have started my journey with the developer and step by step gradually I have started the project lead, and team lead, and project manager. So now I’m enjoying, I can say my role and responsibility.

Jonathan: I forgot how many years, maybe five, six years ago, that WordPress started bringing project management into core development. So I’m very, very grateful. As projects get more and more complex, the role of someone to wrangle is more important. Ajay, so you are a senior WordPress engineer, and what types of projects do you work? Is it a lot of the WooCommerce stuff, what do you focus on?

Ajay: Yes, Jonathan, so before five years ago, I have joined a Multidots and I can say I start my career with the Multidots and I worked on many of the WordPress and WooCommerce customer customization. So mainly I have work on marketplace type of project in WooCommerce. Then we have also work on the case study, where we have built the many of the auto optimization tool. And we have achieving some of the functionality where we need to do many customization for our ads and many other compatible plugins and making the customization of WooCommerce.

Jonathan: Excellent Ajay, well, it’s great to meet each of you. So one of the things we love doing, we love telling stories, and we love just sharing perspective with people of like, Hey, there’s interesting things happening in WooCommerce that you just might not know unless you talk to someone. You’ve given some talks at WordCamps, you’ve shared, there’s a lot of folks I’m sure who still haven’t heard about some of the projects you’ve worked on. You had a particular project. So Aslam, can you give us the setup? Tell us about this project, Ajay mentioned the domain, but give us some background.

Background on the case study

Aslam: When we thought of sharing some useful tips for the development community on WooCommerce, I feel that this particular case study from rhrswag.com, it might be interesting. The way it will be interesting is first, you can consider it as a migration case study, where if you see on WordPress multi-site, you can see a lot of examples where you have a content website and you merge them into a multi-site to take the advantage of single code base and you are using it. But here in this particular case study, we are merging multiple independent WooCommerce stores into one multi-site. Meaning we are using one common code base of WooCommerce plus the plugins, but we are running six to seven WooCommerce stores. And I feel this was an interesting migration where you will be merging multiple customer data from multiple stores into one. And we have all those learnings that I’m sure we will be able to share here so that the developer community will face a similar situation in the future. They can learn from the learnings.

This particular case study has a lot of third party integrations. Plus it has almost more than a hundred thousand plus SKUs now. So we have a case study where how the WooCommerce can handle such a load of thousands of SKUs with a WooCommerce store.

The biggest challenge

Jonathan: Yes, there’s a lot of complexity in what you’re describing. For those who already are familiar with multi-site. There’s a lot of power in it and complexity, but that’s just content. When you add in commerce on top of that and all the expectations of that, especially with the large store that can have traffic surges it’s very interesting. Chirag, I just want to jump into what was the biggest challenge that you saw, in managing like a project like this?

Chirag: As Aslam mentioned, initially we have migrated different single Woo store in single multi-site instance. We have faced many challenges, but yes, I have highlighted two main challenges. One is user migration. So I think Jonathan, and everyone know that WordPress have a common user table in multi-site instance. But in a different case, we can see in a different single store have a different user table. So to the more clarity, let me give you example. I’m Chirag and I have placed four orders in four different websites in single Woo site. So my data are stored in different users and my association is also stored in different WebPress setup. But when we are migrating those four single site to one multi-site instance at that time that was a trouble.

So we have to migrate only one user like Chirag, but we have to make sure all the association will migrate it. This is the very interesting problem we faced during the migration. And we check out the different solution for that, but in the market there are no solution available. So we developed our own WPCLS script, and we solve this problem.

Multiple stores into a single instance

Jonathan: Yes. It’s not just as simple as oh, multi-authors, let’s merge them together, it’s like, no, no. You have order history. And then you also just to add to that, the whole live nature of this. The data’s evolving as you go. So Ajay, I’m curious, what can you tell us about the how part of this? You have multiple stores, you’re going to put this into a single instance. Tell us about that, how was that experience?

Ajay: So, yes, when we check that all single individual site, we have found that many of their customer are same, but they have different orders on all that site. So what was the issue we have faced? All this data is store based on the user ID. In the analytic as well, there are store based on the user ID, but when we migrated all that user in a single table, we get the different user ID that is not available on all different site. So that was the biggest challenge we can say, because we have to deal with the all analytic data, order history data, when we utilized that single user for all the website.

Keeping the store up and running

Jonathan: Can you tell us roughly how many users we’re dealing with? Because a hundred thousand SKUs, whatever you can tell us. Could you give the audience a perspective?

Ajay: Yes. There is 3K plus users available. From all this sites.

Jonathan: Yep. That’s a lot of users.

Ajay: Yes. And additionally, one more thing is we have faced about the image upload. Because all the different site have image path is directly with the domain. But when we migrated all the content in the multi-site, we have to manage the sites, upload directory. So we have built our custom script and using the REST API, we have migrated all data in a single multi-site instance. And we also use the REST API to whenever a new order is placed on any individual site, then we instantly get that data into our multi-site, because our client is not wanted to make site on maintenance more. So that was the biggest challenge. We have to implement that REST API concept as well.

Jonathan: Wow. Yeah. I just want to call that out to catch that, because this is the big thing. If you have an active store, you can’t take it down for a long period of time. That costs money to take it down. So it sounds like what I heard you say, if I heard right, is you developed all this, but also via the APIs were keeping the databases in sync.

Aslam: It was more of his zero down time.

Chirag: Less downtime actually, that was a client need. And that is also a second challenge. And for that, as you mentioned, we have used REST API and we have write some custom WPCLS script for admin configuration. So when we switch the domain, we will run the WPCLS so automatically that script will configure the admin configuration, like team like sidebar and everything. We maintain the less downtime on that.

Jonathan: One of the common criticisms, Ajay, of WooCommerce is performance, especially when you’re dealing with scale. How did you guys think about that? How did you make sure that all this was going to work well, because you’re now making it bigger, right? That would be an argument initially for having separate multi-sites or separate sites is like, oh, if performance hits one, it doesn’t affect the others, but now you’re bringing it all back. You have one large database, how did you make sure things are going to stay performance?

Ajay: So, yes, when we come to the WooCommerce and WooCommerce store, performance is playing a major role when we need a used traffic. So as we say, we have implemented many third parties API, and our client is also using the Facebook feed and Google ads. So for all this site, we have to make fade for products for the third party. And that is the reason we are getting the huge traffic. So performance is much important for us. And we utilize our custom code and we reduced the number of plugins that we were using on our old side. So we have bunch of the common plugins that we can utilize in for all these sites. We have removed the other plugins that are unnecessary, or we can say the least useful. But we have implemented our custom code for all these sites. And we have made our custom plugins.

Jonathan: I’m curious. Did you deal with any custom order table stuff? How did you approach that with WooCommerce? That’s been an area that WooCommerce has been working on more lately, how did you tackle that here?

Ajay: Yes. As Aslam and Chirag mentioned, we have 100K plus SKUs. And for the ordering, we are using that custom tables. Because we are using the concept of year, make, model on one of the website. And we can say year, make, model, is a big concept that are using on mostly on U.S. based websites. We are managing the truck accessories. So there are many parts available for truck accessories for the different mac and different model data.

Jonathan: Yeah. Within the car space, the vehicles, there are so many different combinations and keeping that all straight. So you have a lot of data and a lot of permutations of data where they mix and match. So you use custom tables.

Ajay: Yes. For managing the year, make, model data, we have used our custom table.

Thanks to our Pod Friends OSTraining and GoDaddy Pro

Third-party integrations and custom endpoints

Jonathan: And with the third party integrations, how did you approach that? Is that something … Were you just doing your own like custom API endpoint? How did you handle that?

Ajay: So for the third party API, we have used one additional server to implement the daily feed, to generate the feed data, to sync up the inventory, and to getting the tracking from our third party vendors. Because our client is wanted to do automation for inventory, for shipment tracking. So additionally, we have used one additional server to perform all that accents.

Jonathan: So you have the main multi-site install, and then you have the separate server to handle some of the API. So Aslam, I’m curious. So third party especially in the world of WooCommerce is a big part of it. You’re going to use services for this and that. Are there any other challenges that you guys ran into working with these third parties?

Aslam: Yes, Jonathan. The integrations as you mentioned, we had a lot out of Facebook and Google, those were primary integrations. Now, as everybody know, with such a large SKU store, the problem comes up with the providing the feed, the real time feed. And imagine if you want to generate a feed on an everyday basis for a 100K plus SKUs, it takes a lot of time. And that is where we realized earlier, the client was using already made plugin for Facebook feed or for Google feed. But that plugin was falling behind. We had a lot of data mismatch and that was a kind of a nightmare for Ajay and Chirag as well while we were working. The customer wanted to run Google ads, Facebook ads, but the feed was not matching. The inventory was not matching up. And that is when we came up with this custom script. We got rid of those plugins and we implemented a custom script, and that would be our primary suggestion for the development community that whenever you have such a scenario, rather than relying on the existing plugins, it is the best idea to see what is a need for your store and implement it as a custom script.

Jonathan: Yeah. And this is of course, one of the benefits of open source, right? Is you can take an existing plugin and say, okay, we can modify this. We can strip out everything that we don’t need, because sometimes you just really have to narrow it on performance. Where it’s like, okay, we need to make this thing work really specifically for this particular client’s need, it’s still this open source base, you can customize it though for what they need.

Aslam: That’s true. Yeah.

Other lessons learned about WooCommerce and scale

Jonathan: So you learned a lot from this, you got it done, it’s up and running, it looks great. So when you can switch, you can try the different domains and it’s all the same multi-site install. From the client’s experience, what’s been some of the benefit for them. I’m curious, on the side of this being done, I’m assuming one of the biggest ones is it simplified their management? Is there anything else that you’d add? What’s been the benefit for the clients of all this work?

Aslam: Sure. I can add in. And then Chirag, you can add in. If I speak again from a … Because we are talking all development community, right? So one of the biggest advantage for the store owner will come is the easy management of the code base. Now imagine earlier you were managing seven or 10 different WordPress installations. You have a plugin updates. You have a WordPress upgrades and you do test all the different seven websites, if anything is breaking or not. So it is a one simple code repository. You upgrade your WordPress in WooCommerce, it’ll be applied everywhere.

And the best beauty is if you have a common UI for your front store, you can use the common theme, right? So that whenever you want to apply some, introduce a new feature, it becomes very easy. So that is a very go-to advantage for the store owner. But apart from this, they have experienced a lot of advantages in terms of managing the store from admin. The login becomes easy, you have a multi-site UI where you can switch between the stores. And we haven’t implemented it yet, but I think if they want to have any kind of a dashboard, like global dashboard to see sales of between different stores and all, they can introduce it very easily.

Jonathan: Well, and for the users, am I right in understanding now, so the users, are their accounts able to work across the stores now?

Aslam: That’s a very interesting point Jonathan, you brought up. I think the customer on our current case study, they do not have a need at the moment, but you are right. We can implement it very easily.

Jonathan: It’s possible. They could do that if they wanted to.

Aslam: Yeah. Multi website account management is possible. Yeah.

Jonathan: What I love about this too is that you’re effectively giving them their own platform. It’s WordPress, it’s open source, WooCommerce, they get the benefit of the large ecosystem. They can build this thing for their customer’s needs.. If a new plugin comes along, they can install it and they can benefit. You can work with them on that. You can customize it. And they can also really narrow in to say like, yeah, if our customers really want to have it more tightly integrated, we can do that. And if they don’t, we don’t need to. But they have the options now. That’s great. Chirag, anything to add in terms of the benefit?

Chirag: Yes. I think Aslam mentioned most of the thing, but yes, from my side, of course, client have an easy interface from back-end side. And I have few points which I would like to share for a development community.

Jonathan: Please. Yeah. Go for it. You guys have learned a lot on this project. You got it done. The client’s happy about it. What are some of the things that you would share with developers, some of the learnings, some of the lessons from this?

Chirag: Yeah. So I think when we heard the WooCommerce, everybody’s talking about the limitation of WooCommerce. Everybody is talking about how many product WooCommerce can handle. So during this migration, these questions is in our mind. Because client, that point, I know the earlier side was we can say a performance very slow. After migrating, we also have to take care of the performance as well. So during the migration, that was the question for us as well 100 and 150K SKU will be there for single site. There are many website of WooCommerce. So that was our questions, but yes, and I saw that I have a faith on WooCommerce.

I read so many article in that WooCommerce team state, you can list an infinite number of product on WooCommerce site. And I agree with it because it is all about site performance, plus scalability of a Woo Store, and how you manage the third party call and cashing. We should take care factor affecting WooCommerce, scalability, efficient coding, and one of the important part, the hosting companies also play a vital role in the WooCommerce load of the site.

Jonathan: Yeah. Having a good hosting partner is a big factor in that. Yeah. Which can say a lot too about based on your customer might be in one location versus another. And knowing where their audience is you can find the right partner. Yeah. And I love how you guys have put the attention on how you manage the third party aspect of it. Because in your case, its not like one of the solutions that okay, third party, it’s a wild card, it’s a variable, so we’re going to set up a separate server that’s going to be the job, it’s going to just do that job of handling that. That’s an example of … For smaller stores, probably fine to have it all together. At some point you’re like, you know what, we’re going to set this aside so that we can dedicate resources and really fine tune it. I like that. Ajay, what about you? What else would you add, your guidance for other developers working on projects like this?

Ajay: Yes. I just want to say when we are handling the WooCommerce store, just use the less plugin would help the performance increasing, optimize theme, and the use the core APA functions other than adding many of the custom code for running the WooCommerce. Because many time it happens, we are adding many of the other WP queries and all these things, making this WooCommerce store slower and we must need to take care about the landing page. So the landing page is most useful when our client is utilizing the Google ad or Facebook ad.

Jonathan: Ah, yes. Yes. So you got to make sure that’s performant, that’s working really quickly. Yeah. Okay. Good. Aslam, how about yourself? Anything else that you would add for people who are working on WooCommerce? Maybe they haven’t had the experience that you guys have had yet. They’re starting small, but they want to work on bigger things. What guidance who would you have to offer?

Aslam: I would like to go a little bit on the before part. If you think these as in a pretty good task of a migration. Then I would highly encourage the engineering and strategy team to take a pen and paper and sit on a table and decide your strategy. That is how I think you will encounter all the different cases, like what Ajay mentioned about the images, right? What might be the possible challenges. And that would be the best idea. Pan out all the challenges that you may face. Whether the conflicting user data, the order tables, or what is the SU URL pattern you want to manage. So that after the migration, you do not have any impact on your search ranking. So preparing such a strategy has really helped us when we were actually designing this overall migration process for this client.

Jonathan: Well, one thing that stands out to me too here, especially within an E-Commerce install, because there’s a much higher stakes, there’s more risk to it. It seems really helpful to be clear on what your constraints are. So for instance, in your case, the client gave you a constraint of zero downtime. That’s not a constraint that a lot of people are used to.. We generally want little downtime, but if it’s just content, it’s lower, it’s funny right? People doing content migrations we will still like schedule downtime and that’s easier. For E-Commerce, it would be a lot easier to have downtime where you can deal with sync, but they’re like no, no downtime. So that’s an example of a constraint that you need to understand and I’m sure you had to do a lot of extra work to figure out how to pull that off.

So knowing those constraints up front, I imagine it’s going to make a big difference in your ability to design solutions that match those constraints. And then you can also find out how serious the clients are about those constraints. Because you had to put a lot more work into making sure that was good. My guess is that for the client, it was worth it for them to say we don’t want to lose the orders. So yeah, we’re paying you guys to figure out how to pull this off without the downtime.

Aslam: That’s right.

Jonathan: I like that. I like that. So understanding the constraints, doing the planning upfront, making sure that you have a strategy that matches those constraints, and then it’s just easy project management, right Chirag?

Aslam: That’s true. And last but not the least, I’d like to weigh in what Chirag mentioned about the platform. For example, on this particular project, we are utilizing WordPress VIP. And I really feel that having an enterprise managed hosting like WordPress VIP, really adds a lot of value. Once you utilize the best of the caching capabilities, you have a CDN availabilities. That really adds in the experience that you want to provide to your customers for your online store.

Jonathan: Yeah. And of course, having a partner who you can connect with who has that context, because I’m guessing that there were some things that you had to do in collaboration that you had to figure out together because it’s new territory and having a good partner is a key to that. I like that.

Aslam: That’s right.

Jonathan: Yeah. Cool. Any final thoughts? Anything else to add?

Chirag: Yes, we choose WordPress VIP is our best decision I can say, because earlier client was literally frustrated about the downtime of site. Because hundred plus of SKU and the client want operation every day from backend side. Uploading thousands of product in a single click. So that was really a problem. So we have migrated the site in WordPress VIP and that was our best decision I can say.

Jonathan: Cool. Having a good partner on that, I like that a lot. I really appreciate a couple of things. One, I appreciate you guys taking on projects like this it’s challenging, right? There’s new things you have to figure out. Some people find that really enjoyable. I hope that’s the case with some of this. But we need to continue pushing the edges and it’s projects like this that give other people confidence say, look, they were able to do it here. We can also do it here. And it helps inspire more confidence in this space. With WooCommerce, with these proprietary platforms, which are great for what they do, it’s very easy for them to align their messaging and in our space, because like you can use WooCommerce for something small, something big, it’s very easy. There’s not a consistent message. So it takes stories like yours that we can point to and say, Hey, this is what’s possible. So I appreciate you guys both doing the work and also taking the time to share your stories. So thank you.

Aslam: Thank you. Thank you. Yeah. And thank you, Jonathan, for giving us this opportunity to share our story. I hope the WooCommerce community who listens this podcast, they will be able to get the value. And if at any point of time if anybody has any query, feel free to connect with us, we are available.

Jonathan: If folks are interested in talking, what’s the best way to get ahold of you guys?

Aslam: The best way would be go to the contact page on Multidots and the team will route to us. Yeah, that would be the best way.

Jonathan: Cool. Excellent. Thank you guys for your time and keep it up.

Aslam: Thank you, Jonathan. And thanks to “Do The Woo” team for allowing us this opportunity to speak here.

  • Background on the case study
  • The biggest challenge
  • Multiple stores into a single instance
  • Keeping the store up and running
  • Third-party integrations and custom endpoints
  • Other lessons learned about WooCommerce and scale

Leave a Reply

Graphic featuring the title 'BackTalk' in a modern font on a dark background with circular patterns, promoting the OpenChannels FM Podcast Network.

BackTalk, quotable insights and honest conversations pulled straight from the Open Channels FM Podcast Network. Follow it on our site or have it delivered to your inbox every Wednesday.

Discover more from Open Channels FM

Subscribe now to keep reading and get access to the full archive.

Continue reading