With more than 55 years of service to pet parents, Petco is a category-defining health and wellness company focused on improving the lives of pets, pet parents and their own Petco partners. The company operates petco.com and more than 1,500 Petco locations across the U.S., Mexico and Puerto Rico.
As part of a business innovation initiative, and as a result of sudden shifts in customer shopping habits accelerated by COVID-19, Petco partnered with JBS to quickly get curbside pickup to its customers. The partnership was expected to increase the functionality of their mobile eCommerce app, with the goal of allowing customers to easily buy online and conveniently pickup curbside.
In order to properly fulfill curbside pickup orders, employees had to be informed when customers were approaching and/or arrived at the store location. To facilitate this, the "in-store order pickup app" was modified to use mobile location service events as a trigger to alert employees when customers were approaching. This modification provided employees with the ETA of their customers, giving them ample time to fulfill the order, and to make sure the item was waiting curbside when the customer arrived.
In turn, customers needed a way to communicate to employees when they arrived at the store location as well as view real-time order status - including when a Petco employee was coming out with their order. This functionality was integrated into the existing customer-facing eCommerce app.
JBS worked with multiple internal teams to coordinate the end-to-end architecture of this feature, including cross-service communication contract definitions. With close collaboration between JBS and Petco, curbside pickup went live on-time, in just six weeks.
Consumer expectations for new delivery options were already on the rise, but the 2020 pandemic made providing contactless delivery more of a necessity than a nice-to-have. This rapid shift in shopping patterns created an extremely aggressive timeline to deliver on. The location of the user and real-time updates meant that performance and data accuracy were key areas that needed special focus. There were multiple internal systems involved which added to the complexity of the project. They included:
- mobile app
- in-store app
Curbside SDK and API Integration
Once a user places a pickup order, the mobile app needed to track the user's location and detect when in proximity to the pickup location, which would trigger an alert for in-store employees. It was necessary that the selected third-party curbside pickup SDK would need to be integrated quickly, and store location information would need to be loaded into the third-party location tracking system’s database to serve as a collection of possible pickup locations.
Then, the in-store app used by Petco employees would need to leverage incoming curbside SDK webhook event updates to know when a customer's status changed (in transit, arriving, arrived, ETA updates, etc.) so store employees could see in real-time when customers would be arriving soon or when they had arrived on-site.
Once orders are picked up by customers, they are marked as completed via the store pick app which also stops the customer ETA tracking events from the device.
How JBS Helped
JBS worked with multiple internal teams to coordinate the end-to-end architecture of this feature, including cross-service communication contract definitions (API requests to the in-store app to update user trip status for more accurate location updates and ETA). Our team successfully integrated a Curbside Pickup SDK into the mobile app client to track GPS coordinates and handle the order placement to order pickup lifecycle. This included setting up the app to respect location permissions properly, managing background service states/support, and setting up trip metadata properly so the in-store app could properly leverage API webhook status update requests for in-store notifications/paging.
Aside from the 3rd party library integrations above, the ability to leverage AWS and many of its services was the biggest technological enabler and success factor. By using a serverless architecture involving API Gateway and AWS Lambda as the hosting infrastructure, JBS was able to scale the service automatically with no operational overhead – regardless of traffic volume. Using Lambda allowed developers to focus on writing business logic and the functionality needed for curbside pickup, and not have to spend time writing code to handle scaling and performance issues. Two other key services that were integrated into the solution JBS implemented were DynamoDB and AWS ElastiCache. DynamoDB allowed us to scale to almost any workload and almost more importantly, DynamoDB is incredibly fault-tolerant, keeping Petco’s customer data incredibly safe and secure in the event of any site outages. ElastiCache also helped boost performance and scaling by reducing the number of requests required for backend processing. AWS CloudWatch was used as the monitoring solution, and with its very tight integration to the AWS services noted above, JBS developers were easily able to monitor and gain insights into how the solution was performing and if there were any service issues or outages, they could be immediately alerted.
By fully embracing AWS and cloud native first mentality, JBS was able to focus on solving the business problem and providing a first-class solution that was scalable, fault-tolerant, and secure. All while keeping a highly aggressive development cycle.
Internally, JBS developers worked together closely to ensure order and user information was aggregated and monitored in real-time for store employees to have the most up-to-date view of incoming pickups possible.
JBS helped deliver this solution through close collaboration with Petco within six weeks by:
- working closely with all teams and products involved up-front to quickly establish an end-to-end architecture
- working with UI designers and product owners to "trim the fat" and deliver viable MVP that was still robust and attractive for users
- prototyping and integrating third-party SDKs quickly to locate and work around any technical deficiencies or requirements that would not be fully supported
- by taking advantage of AWS and using a cloud native approach to both architecture and implementation
Using JBS’s hybrid microservices approach, microservice wrapper applications were built that exposed functionalities of legacy systems—including management of shopping cart, order, products, user profiles, payments, and more. These microservices were then supplemented with workflows to support the overall curbside pickup process. By using AWS, JBS was able to host these microservices in a serverless fashion and increase performance and scalability, while drastically reducing cost by cutting most of operational overhead typically needed in non-serverless architectures.
The close collaboration between JBS and Petco resulted in a curbside pickup solution that provides a seamless ordering and fulfillment experience for both customers and employees and was completed and online in less than six weeks.
Curbside pickup now accounts for 60% of all pickup orders. Before the COVID-19 pandemic, approximately 20% of all app orders were pickup orders. That number has since grown to an impressive 39%.