Skip to content

Store customer experience

Current delivery

The public marketing website gets an English/Spanish Shop entry and coming-soon page, as Angel selected on 2026-09-19. The gated development checkout remains separate. WooCommerce/MariaDB already own registration, accounts, cart and orders; no second customer database is planned.

Catalog browsing uses native WooCommerce categories, product search, sorting and pagination. Create one listing per physical product with approved quantity price breaks (SOP-036). Recently viewed was removed at Angel’s request on 2026-09-19. The store should not record new recently-viewed history or render its cards. Category navigation should follow parent/child categories rather than showing thousands of products on one page. Use meaningful shared product attributes as the catalog grows, such as capacity, nominal voltage, connector and dimensions; only verified data belongs in filters. Native query controls are not proof of a thousand-product load test. Benchmark representative imports before launch; consider a dedicated search index only when measurement justifies it.

My Orders leads through native customer login and shows only the customer's own orders. The order detail now distinguishes recorded order status from shipping. ERP shipment references already return to the authorized order view. Never translate “completed” into carrier-delivered or a label purchase into an actual shipment.

The signed-out account entry follows the current single-focus pattern selected by Angel: one email/password sign-in card, a separate Create account route and a separate native guest order lookup. Registration uses email and a chosen password; no customer username field is shown. Shopify’s current passwordless email-code model was reviewed, but it is not enabled while outbound customer email remains blocked. Future Google/Apple/Facebook buttons belong above the existing sign-in fallback after provider acceptance.

Social login: connection inputs still needed

Requested: Google, Apple and Facebook customer sign-in. These are separate from staff Cloudflare Google access. Keep email/password and guest checkout available. Request only necessary identity fields. Account linking must require verified identity and protection against accidentally linking a customer's email to a staff account. Provider subject IDs are durable identifiers; names/email domains do not confer business inventory access. Existing B2B approval remains mandatory.

Nextend Social Login offers Google and Facebook in its free provider set; its Apple provider and automatic WooCommerce integration are paid. Its supported shortcode can place free provider buttons on native customer pages, but integration and account linking still require acceptance. No paid plugin or Apple subscription was purchased. Avoid a homegrown OAuth/password backend to sidestep a small plugin fee.

Apple web sign-in requires a Services ID associated with a primary App ID. Apple developer membership and private-relay email configuration need review; it must not be represented as a zero-setup free provider.

Missing inputs: owner-managed Google OAuth client, Meta/Facebook app, Apple developer account/App ID/Services ID/key if Apple is desired. Store secrets only in the credential workflow, never chat or this notebook. Use separate development/production callback configuration, exact redirect allowlists, provider state/nonce checks and least-privilege customer roles. WordPress currently has outbound HTTP and network isolation; token exchange needs a narrowly scoped tested integration before enabling login. Do not broadly open WordPress networking, remove the development gate or show nonfunctional login buttons. No social login provider is connected yet.

Shipment location map: carrier feed still needed

Requested map should show the last carrier-reported scan location with its event time, carrier, tracking link and whether the location is approximate. It must not imply GPS/live truck position. Do not place a marker at the customer's address and label it as the parcel's current location. If the carrier supplies no location, show its tracking link and available status without inventing a marker.

Missing inputs: selected carrier(s), tracking API access, supported service/destination coverage and a real test tracking reference authorized for validation. A map library alone cannot supply shipment events. Normalize shipment-level events for split parcels, deduplicate carrier events, retain time zones/last refresh, and keep stale data visibly timestamped. A carrier-delivered scan is distinct from an ERP staff-entered shipment date. Customer addresses and tracking IDs must not be exposed on a public map; enforce native order ownership or valid guest order access.

No carrier location feed or live map is connected yet. Existing Woo-style shipment tracking is a number/link/date presentation, not a location service. Carrier integration and map acceptance remain explicit follow-up work after account details are supplied.

Detailed staged implementation and assigned tasks: store-social-login (2026-09-19).

2026-09-19 superseded: the brief explanatory recently-viewed implementation was later removed at the owner’s request. Ten additional test listings make multi-product discovery testable; see store-test-catalog and store-launch.

Angel rejected squeezed recent cards and distracting appearance controls. Direction: persistent Products/category menu, visible search, stable Home/Shop/Engineering Notes/support/account/cart links and clear Shop/category/product breadcrumbs. Appearance moves to a compact footer control; no new palette chosen. Existing checkout, ERP authority and test guards remain intact. Real development help pages explain test payment/shipping and offer FAQs/contact; they are not approved live commercial policies.

Reference structures: Adafruit separates Shop/Learn/Blog/Forums with categories and support links. Waveshare uses a Products category hierarchy plus payment/shipping/wiki/support links. Its direct homepage returned403 in the research fetch; indexed first-party pages supplied the navigation structure. We borrow navigation principles, not branded assets or claims.

Task277 tracks remaining storefront UX acceptance; task280 owns product-document inventory and a wiki/forum decision with moderation/support ownership. Do not publish empty forum or wiki links.

Contained shop shell

Home now returns to the catalog. About, Contact and Engineering Notes have local shop pages, so the header and footer keep customers within the same account/cart context. The full company website and article library remain available only through clearly labeled links that open in a new tab. The shop now uses the main website’s exact local system font stack. Cart quantity is a separated badge rather than joined text.