Skip to content

Commit 0af088f

Browse files
authored
[Woo POS] Improve POS tracking conformance (#15214)
2 parents 92d5f45 + 33b40e9 commit 0af088f

File tree

9 files changed

+137
-108
lines changed

9 files changed

+137
-108
lines changed

WooCommerce/Classes/POS/Analytics/POSCollectOrderPaymentAnalytics.swift

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import protocol WooFoundation.Analytics
22
import Yosemite
33

4-
final class POSCollectOrderPaymentAnalytics: CollectOrderPaymentAnalyticsTracking {
4+
final class POSCollectOrderPaymentAnalytics: POSCollectOrderPaymentAnalyticsTracking {
55
var connectedReaderModel: String?
66

77
private var customerInteractionStarted: Double = 0
@@ -126,15 +126,3 @@ private extension POSCollectOrderPaymentAnalytics {
126126
resetProcessingPaymentTracking()
127127
}
128128
}
129-
130-
// Protocol conformance. These events are not needed for IPP, only for POS.
131-
// https://github.com/woocommerce/woocommerce-ios/issues/15149
132-
extension CollectOrderPaymentAnalytics {
133-
func trackCustomerInteractionStarted() { }
134-
func trackOrderSyncSuccess() { }
135-
func trackCardReaderReady() { }
136-
func trackCardReaderTapped() { }
137-
func trackCheckoutTapped() { }
138-
func resetCheckoutTapCountTracker() { }
139-
func trackSuccessfulCashPayment() { }
140-
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
protocol POSCollectOrderPaymentAnalyticsTracking: CollectOrderPaymentAnalyticsTracking {
2+
func trackCustomerInteractionStarted()
3+
func trackOrderSyncSuccess()
4+
func trackCardReaderReady()
5+
func trackCardReaderTapped()
6+
func trackCheckoutTapped()
7+
func resetCheckoutTapCountTracker()
8+
func trackSuccessfulCashPayment()
9+
}

WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ protocol PointOfSaleAggregateModelProtocol {
6262
private let cardPresentPaymentService: CardPresentPaymentFacade
6363
private let orderController: PointOfSaleOrderControllerProtocol
6464
private let analytics: Analytics
65-
private let collectOrderPaymentAnalyticsTracker: CollectOrderPaymentAnalyticsTracking
65+
private let collectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking
6666

6767
private var startPaymentOnCardReaderConnection: AnyCancellable?
6868
private var cardReaderDisconnection: AnyCancellable?
@@ -73,7 +73,7 @@ protocol PointOfSaleAggregateModelProtocol {
7373
cardPresentPaymentService: CardPresentPaymentFacade,
7474
orderController: PointOfSaleOrderControllerProtocol,
7575
analytics: Analytics = ServiceLocator.analytics,
76-
collectOrderPaymentAnalyticsTracker: CollectOrderPaymentAnalyticsTracking,
76+
collectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking,
7777
paymentState: PointOfSalePaymentState = .card(.idle)) {
7878
self.itemsController = itemsController
7979
self.cardPresentPaymentService = cardPresentPaymentService

WooCommerce/Classes/POS/Presentation/PointOfSaleEntryPointView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ struct PointOfSaleEntryPointView: View {
1212
onPointOfSaleModeActiveStateChange: @escaping ((Bool) -> Void),
1313
cardPresentPaymentService: CardPresentPaymentFacade,
1414
orderController: PointOfSaleOrderControllerProtocol,
15-
collectOrderPaymentAnalyticsTracker: CollectOrderPaymentAnalyticsTracking) {
15+
collectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking) {
1616
self.onPointOfSaleModeActiveStateChange = onPointOfSaleModeActiveStateChange
1717

1818
let posModel = PointOfSaleAggregateModel(

WooCommerce/Classes/ViewRelated/Orders/Collect Payments/CollectOrderPaymentAnalytics.swift

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@ protocol CollectOrderPaymentAnalyticsTracking {
2424
func trackReceiptPrintCanceled()
2525

2626
func trackReceiptPrintFailed(error: Error)
27-
28-
func trackCustomerInteractionStarted()
29-
func trackOrderSyncSuccess()
30-
func trackCardReaderReady()
31-
func trackCardReaderTapped()
32-
func trackCheckoutTapped()
33-
func resetCheckoutTapCountTracker()
34-
func trackSuccessfulCashPayment()
3527
}
3628

3729
final class CollectOrderPaymentAnalytics: CollectOrderPaymentAnalyticsTracking {

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1629,6 +1629,8 @@
16291629
68E952D22875A44B0095A23D /* CardReaderType+Manual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E952D12875A44B0095A23D /* CardReaderType+Manual.swift */; };
16301630
68ED2BD62ADD2C8C00ECA88D /* LineDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68ED2BD52ADD2C8C00ECA88D /* LineDetailView.swift */; };
16311631
68F151E12C0DA7910082AEC8 /* CartItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F151E02C0DA7910082AEC8 /* CartItem.swift */; };
1632+
68F68A502D6730E200BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F68A4F2D6730DF00BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift */; };
1633+
68F68A522D67365900BB9568 /* MockPOSCollectOrderPaymentAnalyticsTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F68A512D67365900BB9568 /* MockPOSCollectOrderPaymentAnalyticsTracker.swift */; };
16321634
68F896422D5E4323000B308B /* POSCollectOrderPaymentAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F896412D5E4321000B308B /* POSCollectOrderPaymentAnalytics.swift */; };
16331635
740382DB2267D94100A627F4 /* LargeImageTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 740382D92267D94100A627F4 /* LargeImageTableViewCell.swift */; };
16341636
740382DC2267D94100A627F4 /* LargeImageTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 740382DA2267D94100A627F4 /* LargeImageTableViewCell.xib */; };
@@ -4783,6 +4785,8 @@
47834785
68E952D12875A44B0095A23D /* CardReaderType+Manual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CardReaderType+Manual.swift"; sourceTree = "<group>"; };
47844786
68ED2BD52ADD2C8C00ECA88D /* LineDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineDetailView.swift; sourceTree = "<group>"; };
47854787
68F151E02C0DA7910082AEC8 /* CartItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CartItem.swift; sourceTree = "<group>"; };
4788+
68F68A4F2D6730DF00BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCollectOrderPaymentAnalyticsTracking.swift; sourceTree = "<group>"; };
4789+
68F68A512D67365900BB9568 /* MockPOSCollectOrderPaymentAnalyticsTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPOSCollectOrderPaymentAnalyticsTracker.swift; sourceTree = "<group>"; };
47864790
68F896412D5E4321000B308B /* POSCollectOrderPaymentAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCollectOrderPaymentAnalytics.swift; sourceTree = "<group>"; };
47874791
6A58DEEBCA91CDE69F439754 /* Pods_Woo_Watch_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Woo_Watch_App.framework; sourceTree = BUILT_PRODUCTS_DIR; };
47884792
6DC4526F9A7357761197EBF0 /* Pods_WooCommerceTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WooCommerceTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -7731,6 +7735,7 @@
77317735
200BA15A2CF0A2130006DC5B /* MockPointOfSaleItemsService.swift */,
77327736
20FCBCE22CE24F5D0082DCA3 /* MockPointOfSaleAggregateModel.swift */,
77337737
207D2D222CFDCCBF00F79204 /* MockPOSOrderableItem.swift */,
7738+
68F68A512D67365900BB9568 /* MockPOSCollectOrderPaymentAnalyticsTracker.swift */,
77347739
);
77357740
path = Mocks;
77367741
sourceTree = "<group>";
@@ -7748,6 +7753,7 @@
77487753
02D1D2D82CD3CD710069A93F /* Analytics */ = {
77497754
isa = PBXGroup;
77507755
children = (
7756+
68F68A4F2D6730DF00BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift */,
77517757
68F896412D5E4321000B308B /* POSCollectOrderPaymentAnalytics.swift */,
77527758
02D1D2D92CD3CD8D0069A93F /* WooAnalyticsEvent+PointOfSale.swift */,
77537759
);
@@ -16170,6 +16176,7 @@
1617016176
203163AF2C1C5C6B001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel.swift in Sources */,
1617116177
EE45E2BF2A409E250085F227 /* UIColor+Tooltip.swift in Sources */,
1617216178
B5FD111621D3F13700560344 /* BordersView.swift in Sources */,
16179+
68F68A502D6730E200BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift in Sources */,
1617316180
68E674AF2A4DACD50034BA1E /* UpgradeTopBarView.swift in Sources */,
1617416181
0262DA5B23A244830029AF30 /* Product+ShippingSettingsViewModels.swift in Sources */,
1617516182
02D29A8E29F7C26000473D6D /* InputAccessoryView.swift in Sources */,
@@ -17354,6 +17361,7 @@
1735417361
20FCBCDF2CE241810082DCA3 /* PointOfSaleAggregateModelTests.swift in Sources */,
1735517362
03D7985C2A94EC7700809B0E /* MockCollectOrderPaymentAnalyticsTracker.swift in Sources */,
1735617363
021E2A2023AA274700B1DE07 /* ProductBackordersSettingListSelectorCommandTests.swift in Sources */,
17364+
68F68A522D67365900BB9568 /* MockPOSCollectOrderPaymentAnalyticsTracker.swift in Sources */,
1735717365
0235BFDB246E99A700778909 /* ProductFormActionsFactory+NonEmptyBottomSheetActionsTests.swift in Sources */,
1735817366
DE7B17F52C0DF02800A6C7D8 /* InboxEligibilityUseCaseTests.swift in Sources */,
1735917367
020BE76723B49FE9007FE54C /* AztecBoldFormatBarCommandTests.swift in Sources */,

WooCommerce/WooCommerceTests/Mocks/MockCollectOrderPaymentAnalyticsTracker.swift

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -53,33 +53,4 @@ final class MockCollectOrderPaymentAnalyticsTracker: CollectOrderPaymentAnalytic
5353
func trackReceiptPrintFailed(error: Error) {
5454
// no-op
5555
}
56-
57-
func trackCustomerInteractionStarted() {
58-
// no-op
59-
}
60-
61-
func trackOrderSyncSuccess() {
62-
// no-op
63-
}
64-
65-
func trackCardReaderReady() {
66-
// no-op
67-
}
68-
69-
func trackCardReaderTapped() {
70-
// no-op
71-
}
72-
73-
var didCallTrackCheckoutTapped = false
74-
func trackCheckoutTapped() {
75-
didCallTrackCheckoutTapped = true
76-
}
77-
78-
func resetCheckoutTapCountTracker() {
79-
// no-op
80-
}
81-
82-
func trackSuccessfulCashPayment() {
83-
// no-op
84-
}
8556
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
@testable import WooCommerce
2+
import struct Yosemite.PaymentIntent
3+
4+
final class MockPOSCollectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking {
5+
var didCallTrackCheckoutTapped = false
6+
7+
func trackCustomerInteractionStarted() {
8+
// no-op
9+
}
10+
11+
func trackOrderSyncSuccess() {
12+
// no-op
13+
}
14+
15+
func trackCardReaderReady() {
16+
// no-op
17+
}
18+
19+
func trackCardReaderTapped() {
20+
// no-op
21+
}
22+
23+
func trackCheckoutTapped() {
24+
didCallTrackCheckoutTapped = true
25+
}
26+
27+
func resetCheckoutTapCountTracker() {
28+
// no-op
29+
}
30+
31+
func trackSuccessfulCashPayment() {
32+
// no-op
33+
}
34+
35+
var connectedReaderModel: String?
36+
37+
func preflightResultReceived(_ result: WooCommerce.CardReaderPreflightResult?) {
38+
// no-op
39+
}
40+
41+
func trackProcessingCompletion(intent: Yosemite.PaymentIntent) {
42+
// no-op
43+
}
44+
45+
func trackSuccessfulCardPayment(capturedPaymentData: WooCommerce.CardPresentCapturedPaymentData) {
46+
// no-op
47+
}
48+
49+
func trackPaymentFailure(with error: any Error) {
50+
// no-op
51+
}
52+
53+
func trackPaymentCancelation(cancelationSource: WooCommerce.WooAnalyticsEvent.InPersonPayments.CancellationSource) {
54+
// no-op
55+
}
56+
57+
func trackEmailTapped() {
58+
// no-op
59+
}
60+
61+
func trackReceiptPrintTapped() {
62+
// no-op
63+
}
64+
65+
func trackReceiptPrintSuccess() {
66+
// no-op
67+
}
68+
69+
func trackReceiptPrintCanceled() {
70+
// no-op
71+
}
72+
73+
func trackReceiptPrintFailed(error: any Error) {
74+
// no-op
75+
}
76+
}

0 commit comments

Comments
 (0)