@@ -110,25 +110,95 @@ private extension TracksProvider {
110110 }
111111
112112 private func decorateEventNameForPOSIfNeeded( _ eventName: String ) -> String {
113- // We do not want to track some events that might happen in POS mode as `pos_` events,
114- // for example, when backgrounding the app or finishing async work from the app side.
115- // Ref: https://github.com/woocommerce/woocommerce-ios/pull/15006#issuecomment-2622001706
116- let exemptedEvents : Set < String > = [
117- " application_opened " ,
118- " application_closed " ,
119- " orders_add_new " ,
120- " support_new_request_viewed " ,
121- " dynamic_dashboard_card_data_loading_completed "
122- ]
123- if exemptedEvents. contains ( eventName) {
113+ guard let event = WooAnalyticsStat ( rawValue: eventName) else {
114+ DDLogWarn ( " ⚠️ Event not found in WooAnalyticsStat list " )
124115 return eventName
125116 }
126117
127- if Self . isPOSModeActive {
128- let prefix = " pos_ "
129- return " \( prefix) \( eventName) "
118+ let pointOfSaleEventList : Set < WooAnalyticsStat > = [
119+ // POS-specific events
120+ WooAnalyticsStat . pointOfSaleLoaded,
121+ WooAnalyticsStat . pointOfSaleProductsPullToRefresh,
122+ WooAnalyticsStat . pointOfSaleVariationsPullToRefresh,
123+ WooAnalyticsStat . pointOfSaleAddItemToCart,
124+ WooAnalyticsStat . pointOfSaleItemRemovedFromCart,
125+ WooAnalyticsStat . pointOfSaleCheckoutTapped,
126+ WooAnalyticsStat . pointOfSaleBackToCartTapped,
127+ WooAnalyticsStat . pointOfSaleBackToCheckoutFromCashTapped,
128+ WooAnalyticsStat . pointOfSaleClearCartTapped,
129+ WooAnalyticsStat . pointOfSaleExitMenuItemTapped,
130+ WooAnalyticsStat . pointOfSaleExitConfirmed,
131+ WooAnalyticsStat . pointOfSaleGetSupportTapped,
132+ WooAnalyticsStat . pointOfSaleSimpleProductsExplanationDialogShown,
133+ WooAnalyticsStat . pointOfSaleCreateNewOrderTapped,
134+ WooAnalyticsStat . pointOfSaleReceiptEmailSendTapped,
135+ WooAnalyticsStat . pointOfSalePaymentsOnboardingShown,
136+ WooAnalyticsStat . pointOfSalePaymentsOnboardingDismissed,
137+ WooAnalyticsStat . pointOfSaleCardReaderConnectionTapped,
138+ WooAnalyticsStat . pointOfSaleInteractionWithCustomerStarted,
139+ WooAnalyticsStat . pointOfSaleViewDocsTapped,
140+ WooAnalyticsStat . pointOfSaleReaderReadyForCardPayment,
141+ WooAnalyticsStat . pointOfSaleCashCollectPaymentSuccess,
142+
143+ // Order
144+ WooAnalyticsStat . orderCreationSuccess,
145+ WooAnalyticsStat . orderCreationFailed,
146+
147+ // Card Reader Connection
148+ WooAnalyticsStat . cardReaderSelectTypeShown,
149+ WooAnalyticsStat . cardReaderSelectTypeBuiltInTapped,
150+ WooAnalyticsStat . cardReaderSelectTypeBluetoothTapped,
151+ WooAnalyticsStat . cardReaderDiscoveryFailed,
152+ WooAnalyticsStat . cardReaderConnectionFailed,
153+ WooAnalyticsStat . cardReaderConnectionSuccess,
154+ WooAnalyticsStat . cardReaderDisconnectTapped,
155+ WooAnalyticsStat . manageCardReadersBuiltInReaderAutoDisconnect,
156+ WooAnalyticsStat . cardReaderAutomaticDisconnect,
157+ WooAnalyticsStat . cardReaderLocationPermissionPreAlertShown,
158+ WooAnalyticsStat . cardReaderLocationPermissionRequiredShown,
159+
160+ // Card Reader Software Update
161+ WooAnalyticsStat . cardReaderSoftwareUpdateTapped,
162+ WooAnalyticsStat . cardReaderSoftwareUpdateStarted,
163+ WooAnalyticsStat . cardReaderSoftwareUpdateSuccess,
164+ WooAnalyticsStat . cardReaderSoftwareUpdateFailed,
165+ WooAnalyticsStat . cardReaderSoftwareUpdateCancelTapped,
166+ WooAnalyticsStat . cardReaderSoftwareUpdateCanceled,
167+
168+ // Card-Present Payments Onboarding
169+ WooAnalyticsStat . cardPresentOnboardingLearnMoreTapped,
170+ WooAnalyticsStat . cardPresentOnboardingCompleted,
171+ WooAnalyticsStat . cardPresentOnboardingNotCompleted,
172+ WooAnalyticsStat . cardPresentOnboardingStepSkipped,
173+ WooAnalyticsStat . cardPresentOnboardingCtaTapped,
174+ WooAnalyticsStat . cardPresentOnboardingCtaFailed,
175+
176+ // Receipts
177+ WooAnalyticsStat . receiptEmailTapped,
178+ WooAnalyticsStat . receiptEmailSuccess,
179+ WooAnalyticsStat . receiptEmailFailed,
180+
181+ // Payments
182+ WooAnalyticsStat . collectPaymentCanceled,
183+ WooAnalyticsStat . collectPaymentFailed,
184+ WooAnalyticsStat . collectPaymentSuccess,
185+ WooAnalyticsStat . collectInteracPaymentSuccess,
186+ WooAnalyticsStat . interacRefundSuccess,
187+ WooAnalyticsStat . interacRefundFailed,
188+ WooAnalyticsStat . interacRefundCanceled,
189+
190+ // Payment Methods
191+ WooAnalyticsStat . paymentsFlowCompleted,
192+ WooAnalyticsStat . paymentsFlowCanceled,
193+ WooAnalyticsStat . paymentsFlowFailed,
194+ WooAnalyticsStat . paymentsFlowCollect,
195+ ]
196+
197+ guard Self . isPOSModeActive, pointOfSaleEventList. contains ( event) else {
198+ return eventName
130199 }
131- return eventName
200+ let prefix = " pos_ "
201+ return " \( prefix) \( eventName) "
132202 }
133203
134204 func refreshTracksMetadata( ) {
0 commit comments