Customer.Id from the session and lists recent orders automatically. Verification calls AiChatBot/VerifyOrder which checks Order.BillingAddress.Email.IOrderService.SearchOrdersAsync(customerId). The order card renders order status, line items, and quick actions. "Track shipment" triggers state 3. "View invoice" links to the nopCommerce order details page (/orderdetails/{orderId}).794644790132 to request a hold or redirect.
Shipment.ShipmentItems + ShipmentTracker data. The carrier link opens the external tracking URL from IShipmentService. Estimated delivery date from Shipment.DeliveryDateUtc or carrier API. The bot can answer follow-up questions about the shipment using order context injected into the LLM prompt.AiChatBot/VerifyOrder returns 404 or email mismatch. Multi-order list shows compact cards (max 5 recent). Logged-in users always see the multi-order selector if they have >1 active order. Each card is clickable to expand into the full order detail (state 2).lookup_order / track_shipment) rather than free-text response.Customer.IsRegistered (detected from session cookie), the bot calls IOrderService.SearchOrdersAsync(customerId: currentCustomer.Id) directly. For guests, it requires order number + billing email verification via AiChatBot/VerifyOrder endpoint.Order entity fields: Id, OrderTotal, PaymentStatus, ShippingStatus, CreatedOnUtc, plus OrderItem list with Product.Name and UnitPriceExclTax.Shipment + ShipmentStatusEvent records. Each event has EventName, Location, Date, CountryCode. The "current" step uses the most recent event; future steps are inferred from standard carrier milestones.IShippingPluginManager and the Shipment.TrackingNumber. Falls back to generic carrier URL patterns (FedEx, UPS, USPS, DHL, Correios) if no plugin provides a GetUrl method.Order.BillingAddress.Email (case-insensitive). Rate-limited to 5 attempts per session to prevent enumeration. The bot never exposes full billing address, only order status, items, and shipping data.EnableOrderTracking (bool) and EnableShippingTracking (bool) in AiChatBotSettings control whether these flows are available. MaxOrdersToShow (int, default 5) limits the multi-order list.body_end_html_tag_before (same as general chat). Order tracking is a capability within the same widget, not a separate component.