Pickup point exclusion and delivery status QA for a DIY retail logistics platform

A large DIY retail chain needed to instantly disable specific pickup points across its delivery aggregator without manual coordination across teams, and to get clear reasons for delivery delays and cancellations from third-party carriers. Azati's QA engineer tested both features end to end, including integration testing with external delivery partners.

Fix my delivery aggregator
3

backend services tested for delivery status reason tracking

2

features QA-validated end to end, including third-party integration testing

11+

tools used across test management, monitoring, and message brokering

Technologies used

MongoDB
MongoDB
Apache Kafka
Apache Kafka
RabbitMQ
RabbitMQ
Kubernetes
Kubernetes
Jenkins
Jenkins
Swagger
Swagger
Postman
Postman
Grafana
Grafana

Motivation

The client operates a large retail & logistics network spanning more than 100 stores, 11 dark stores, and 6 distribution centers, with tens of thousands of employees and a logistics aggregator coordinating delivery across multiple third-party partners. As the pickup point network grew, two operational gaps started costing real time and trust: there was no fast way to pull a problematic pickup point out of circulation, and nobody could get a clear answer, quickly, about why a specific order had been delayed or cancelled by a carrier.

Both problems had the same shape. A simple-sounding business need, turn off this point, tell me why this order is late, was buried under slow internal coordination and undocumented behavior from third-party systems. Azati's QA engineer joined the team responsible for the pickup point and delivery aggregator to validate the fixes the engineering team built for both issues, with a particular focus on how those fixes behaved once real delivery partners were involved.

Business challenges

Challenge 01

No fast way to disable a single pickup point or group of points

Removing a point from the list customers see used to require manual coordination across multiple internal teams. That was workable at a small scale, but it broke down as the pickup point network grew and the reasons for needing to act quickly multiplied:

  • Unprofitable points needing removal without a lengthy approval chain
  • Partner-side operational or technical outages requiring immediate action
  • Suspected fraud at specific locations needing fast response
  • No way to exclude points by shared attributes like partner or region
#1
Challenge 02

No clear, fast answer for why an order was delayed or cancelled

When a customer asked why their order hadn't arrived, the honest answer often required a slow back-and-forth between internal teams and the delivery partner. There was no structured way to capture and surface the carrier's own stated reason:

  • No fixed reference list of cancellation and delay reasons
  • Reason data not reaching the team that owns the logistics operator dashboard
  • No visible history of delivery date changes per order
  • Repeated manual investigation for similar, recurring issues
#2
Challenge 03

Validating changes across a distributed, partner-dependent architecture

Both fixes touched backend services that communicate asynchronously and depend on data from external delivery partners. Testing had to cover internal logic and the behavior of the full integration path, not just one service in isolation:

  • Changes spanning three backend services for reason-code propagation
  • New database collection and CRUD logic for pickup point exclusions
  • Asynchronous data flow via Kafka and RabbitMQ between services
  • Integration testing required with each connected delivery partner
#3

Why Azati?

QA depth in distributed, message-driven systems

Validating an exclusion rule or a reason code that travels across Kafka topics and RabbitMQ queues before reaching a customer-facing filter is not a simple click-through test. Azati's QA engineer worked directly with the platform's message-driven architecture, using Conduktor and the RabbitMQ management plugin to verify that data moved correctly between services, not just that the end result looked right.

Comfortable testing across organizational and company boundaries

Both features depended on behavior from third-party delivery and pickup point partners outside the client's own systems. Azati's QA engineer planned and executed integration tests that crossed those boundaries, coordinating around partner-specific quirks rather than assuming every external system would behave the same way.

Structured test documentation that survives team handoffs

Test cases and results were maintained in AllureTestOps, with task tracking in Yandex Tracker and supporting documentation in Confluence. That discipline matters in a large retail organization where multiple teams touch the same delivery aggregator over time and need a reliable record of what was tested and why.

Fast onboarding into an existing Agile delivery cadence

The engagement ran inside the client's existing sprint-based Agile process. Azati's QA engineer integrated into that cadence directly, picking up backend changes already in flight rather than requiring a separate ramp-up phase before becoming productive.

Need QA coverage for a complex logistics or delivery platform?

Whether it's third-party integration testing, message-driven architecture, or fast-moving backend changes, Azati's QA engineers can validate it without slowing your team down.

Talk to a QA engineer

Solution

01

Pickup point exclusion testing

Azati tested the new exclusion functionality that lets the operations team remove individual pickup points, or entire groups of points, from what customers see during checkout. This included validating the new database collection storing exclusion attributes, the CRUD methods for managing entries, and the logic for excluding points by shared attributes such as delivery partner or geographic region.

Key capabilities:
  • CRUD operations on the new exclusion attributes collection
  • Group-based exclusion by partner and geographic region
  • Flexible update logic for the exclusion list
  • Validation of the enriched main pickup point filter
02

Delivery status reason code testing

Azati tested changes across three backend services responsible for receiving cancellation and delay reason codes from delivery partners and propagating them to the team that owns the logistics operator dashboard. This included verifying the fixed reference list of reason codes and the history of delivery date changes shown per order.

Key capabilities:
  • Reason code propagation across three backend services
  • Validation against a fixed carrier reason reference list
  • Delivery date change history accuracy per order
  • Data consistency between receiving and displaying teams
03

Third-party integration testing

Both features depended on real behavior from external delivery and pickup point partners, not just internal logic. Azati ran integration tests against connected partner systems to confirm that exclusion rules and reason codes behaved correctly across the full data path, using Postman for API-level verification and Swagger for contract reference.

Key capabilities:
  • API-level integration testing against partner systems via Postman
  • Contract verification against Swagger specifications
  • End-to-end validation from partner event to customer-facing result
  • Regression checks across previously stable integration points

What Azati did

AreaAzati contribution
Pickup point exclusionTested CRUD logic, group-based exclusion rules, and the enriched pickup point filter
Delivery reason trackingTested reason code propagation across three backend services
Third-party integrationValidated behavior across connected delivery and pickup point partners
Message-driven architectureVerified data flow through Kafka and RabbitMQ using Conduktor
Test documentationMaintained structured test cases and results in AllureTestOps
Delivery cadenceWorked inside the client's existing Agile sprint process

Security

The platform handles operational logistics data rather than customer payment information, so testing focused on data integrity and correct access boundaries between internal services and external partners. Service-to-service communication runs through Kafka and RabbitMQ with managed access controls, and monitoring across the stack is handled via Kibana, Jaeger, and Grafana Loki, giving the team visibility into how exclusion rules and reason codes move through the system in production.

Engagement & delivery

QA engineer embedded in an existing Agile team

Azati provided a single QA engineer who joined the client's existing pickup point and delivery aggregator team, working inside their established sprint cadence rather than as a separate, parallel workstream.

Two focused testing engagements

The work was delivered as two distinct testing efforts tied to two separate features:

  • Pickup point exclusion testing, delivered over two weeks
  • Delivery status reason code testing, delivered over one month
  • Both engagements included third-party integration testing with delivery partners
  • Vendor coordination required, as external delivery partners were involved in testing scope

Results & business impact

Faster response when a pickup point needs to be disabled

When a point becomes unprofitable, shows signs of fraud, or a partner reports an operational or technical outage, the team can now remove it from circulation quickly instead of routing the decision through a slow, manual process involving multiple internal teams.

Clearer, faster answers on delivery delays and cancellations

A fixed reference list of carrier-reported reasons, combined with a visible history of delivery date changes, gives internal teams a direct answer instead of a multi-step investigation, reducing back-and-forth between teams and with customers.

Reduced negative customer experience

Faster pickup point corrections and clearer delay explanations both reduce the moments where a customer is left waiting without a real answer, directly improving the experience around order fulfillment.

Kafka-based event streaming expertise retained

The engagement deepened the team's hands-on experience with Apache Kafka for reliably collecting, storing, and asynchronously transmitting high-volume data flows between services in real time, expertise that carries directly into future logistics and event-driven platform work.

Strategic wins

What stands out about this engagement beyond the two specific fixes:

Group-based exclusion as a scalable pattern

Building exclusion logic around shared attributes, partner, region, rather than only individual point IDs, means the same mechanism keeps working as the network grows. A single partner outage can be handled with one rule instead of dozens of manual removals.

Reason codes as a trust mechanism, not just a data field

A fixed, structured list of cancellation and delay reasons does more than fill a database column. It turns a vague "your order is late" into a specific, defensible answer, which matters as much for internal team friction as it does for customer-facing support.

Integration testing as the real risk surface

In a system built on internal logic plus several third-party partners, most of the risk lives at the boundary between systems, not inside any single service. Treating partner integration testing as a first-class part of the QA scope, rather than an afterthought, is what actually catches the failures that matter in production.

The described expertise is relevant for

  • Delivery aggregators and pickup point management platforms
  • Retail and e-commerce logistics QA at multi-region scale
  • Kafka and RabbitMQ-based microservices testing
  • Third-party carrier and delivery partner integration testing
  • Backend testing for data-heavy, partner-dependent systems
  • Structured QA documentation for long-lived enterprise platforms

Last updated

Got a job for Azati? Let’s talk business!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

What's next?

  • 1. Tell Us Your Story
    Describe your project. We come back within 24 hours with team availability and a rough plan. NDA on request before the first call.
  • 2. Get Your Roadmap
    Receive a detailed proposal with scope, team composition, timeline, and costs tailored to your goals.
  • 3. Start Building
    Azati aligns on details, finalize terms, and launch your project with full transparency.