Use case: Scan Member Card <> Scan Item to Purchase Actors: Clerk Purpose: Process the Member Card when it is scanned at any time during purchase processing. Overview: Verify memberId, update previously scanned items to member prices if necessary, and retain member information as part of purchaseReceipt. Type: Essential Preconditions: purchaseReceipt exists for the present purchase transaction Postconditions: prices updated for previous items in purchaseReceipt; memberInformation added to purchaseReceipt Special Requirements: none

Flow of Events Actor Action System Response 1. This use case <> Scan 2. Verify scanned memberId; add to Item to Purchase and begins when purchaseReceipt the scanned item is a Member Card 3. Access memberInformation and add instead of a normal product to memberName to purchaseReceipt purchase 4. Adjust price for all products now in purchaseReceipt (product pricing only) if necessary (Member price exists) 5. Update and Display currentTotal PurchaseAmount to Clerk, Customer

Note: memberVisitData is not recorded at this time, but updated later in the Finalize Purchase Transaction use case.

Alternative Flow of Events Line 2: If memberId is invalid, return error indication so "Unknown Member" appears as Output to Clerk, Customer and terminate this Use Case. Source: Stumpf and Teague, Object-Oriented Systems Analysis and Design with UML, as modified by W.L.Honig for Comp 320, Loyola University Chicago, Spring 2008.