Skip to content

Conversation

@jaclync
Copy link
Contributor

@jaclync jaclync commented Sep 12, 2025

Part of WOOMOB-1100

Description

This PR adds the UI for POS local catalog sync settings with mock data behind the i1 feature flag. It introduces a new settings detail view that allows merchants to view & configure local catalog sync options for POS. The sync status integration requires more changes which will be included in a future PR.

The implementation includes:

  • New POSSettingsLocalCatalogDetailView that provides the interface for catalog settings
  • Integration with PointOfSaleSettingsView to display the local catalog settings option behind the local catalog i1 feature flag

Steps to reproduce

  1. Log in to a store eligible for POS if needed
  2. Tap on the POS tab
  3. Navigate to POS Settings (ellipsis menu > Settings)
  4. Look for "Local Catalog" option in the settings list
  5. Tap on "Local Catalog" --> the catalog settings should be shown with mock data and consistent layout as other settings

Testing information

I tested that when the feature flag is disabled, the catalog settings isn't shown. Tested in iPad A18 iOS 18.4 simulator.

Screenshots

Simulator Screenshot - iPad (A16) - 2025-09-12 at 17 01 25
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

@jaclync jaclync added type: task An internally driven task. status: feature-flagged Behind a feature flag. Milestone is not strongly held. feature: POS labels Sep 12, 2025
@jaclync jaclync added this to the 23.3 milestone Sep 12, 2025
@jaclync jaclync requested a review from joshheald September 12, 2025 09:16
@jaclync jaclync changed the title POS Settings: Add local catalog sync settings UI [Local Catalog] POS Settings: add local catalog sync settings UI Sep 12, 2025
@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Sep 12, 2025

App Icon📲 You can test the changes from this Pull Request in WooCommerce iOS Prototype by scanning the QR code below to install the corresponding build.

App NameWooCommerce iOS Prototype
Build Numberpr16125-6568ace
Version23.2
Bundle IDcom.automattic.alpha.woocommerce
Commit6568ace
Installation URL5p2e1cg1mu8g0
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@joshheald joshheald self-assigned this Sep 15, 2025
Copy link
Contributor

@joshheald joshheald left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks. A few small suggestions inline


VStack(spacing: POSSpacing.medium) {
// TODO: WOOMOB-1100 - replace with catalog data
fieldRowView(label: Localization.catalogSize, value: "1,250 products, 3,420 variations (1.8 GB)")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1.8GB scared me for a moment. Might be best to either make a note in this view that this is fake data, or use something clearly impossible (500TB or something)...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, there's a TODO note above to replace the value, but after an initial look I don't think there's a straightforward way to calculate the catalog size for a site since the database could include data for more than the current site. I removed the storage space for now in 96feb4e, and I will add an issue to implement the storage space info if it's included in the final design.

Comment on lines 20 to 22
catalogStatusView
managingDataUsageView
manualCatalogUpdateView
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
catalogStatusView
managingDataUsageView
manualCatalogUpdateView
catalogStatus
managingDataUsage
manualCatalogUpdate

They're not full views anyway, but even if they were, the word "view" seems unnecessary here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, renamed in 3c4cac2.

Comment on lines 7 to 9
private var backgroundColor: Color {
Color.posOnSecondaryContainer
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this can't change, maybe it's better to make it a constant?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup I agree, this was from following other sibling views in the settings. Updated in 3a24acb.


static let sidebarNavigationLocalCatalogTitle = NSLocalizedString(
"pointOfSaleSettingsView.sidebarNavigationLocalCatalogTitle",
value: "Local catalog",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps just Catalog is enough? We don't use the word local inside the settings detail.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, the "local" part could be confusing for merchants. Updated in 62a78d7.

@jaclync jaclync enabled auto-merge September 17, 2025 06:22
@jaclync jaclync merged commit 1e411df into trunk Sep 17, 2025
14 checks passed
@jaclync jaclync deleted the feat/WOOMOB-1100-pos-sync-settings-ui-only branch September 17, 2025 06:41
@jaclync jaclync restored the feat/WOOMOB-1100-pos-sync-settings-ui-only branch September 17, 2025 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature: POS status: feature-flagged Behind a feature flag. Milestone is not strongly held. type: task An internally driven task.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants