Skip to content

Customer List

First-Pass Node Dossier

This page is an evidence-backed node dossier generated from the domain hierarchy and node questionnaire.

What It Is

Customer List is the customer-owned product list concept in Pyle. It is a list of products attached to a customer and a user, with a visibility setting that controls whether the list stays private or can be shared.

Parent hierarchy:

  • Customer Management
  • Customer-Owned Records
  • Customer List

Primary implementation paths:

  • packages/framework/src/Models/CustomerList.php
  • packages/framework/src/Actions/CustomerList
  • packages/storefront/src/Livewire/Storefront/CustomerList
  • packages/storefront/src/Livewire/Storefront/MyAccount/Lists
  • packages/storefront/src/Livewire/Storefront/MyAccount/List

What Users Can Do With It

Direct capabilities

Storefront users can:

  • create a new list
  • rename or update a list
  • switch a list between private and public
  • add products to a list
  • remove products from a list
  • download a list as a PDF
  • open the quote flow from a list

Indirect capabilities

Other workflows use customer lists without treating them as a standalone admin object:

  • product cards and cart items can add products to a list
  • shared lists can be opened by link when visibility allows it
  • wishlist content can be migrated into customer lists
  • list contents can be reused later as a quote or follow-up workflow

Where It Is Managed

ChannelRoleNotes
Storefront my-account lists pageDirectUsers see their saved lists here
Storefront list pageDirectUsers manage one list, share it, download it, or open quote-related flows
Storefront add-to-list dialogDirectUsers create a list or add products into an existing list
Product card and cart item buttonsIndirectUsers can add products to a list from shopping surfaces
Wishlist migrationDirect system-ownedLegacy wishlist content can be moved into customer lists

Sources:

  • packages/storefront/src/Livewire/Storefront/MyAccount/Lists/Page.php
  • packages/storefront/src/Livewire/Storefront/MyAccount/List/Page.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/CreateDialog.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/EditDialog.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/ShareDialog.php
  • packages/framework/src/Actions/CustomerList/MigrateWishlistsToCustomerList.php

Channel-Level Field Coverage

List creation and editing

The packaged list workflow exposes:

  • name
  • project_name
  • visibility_status

The backend also stores:

  • customer_id
  • user_id
  • uuid

Source:

  • packages/storefront/src/Livewire/Storefront/CustomerList/CreateDialog.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/EditDialog.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/ShareDialog.php
  • packages/framework/src/Models/CustomerList.php

Product membership

List items carry:

  • product_id
  • quantity

Source:

  • packages/framework/src/Models/CustomerListProduct.php

Configuration And Data Model

Key model characteristics:

  • customer-owned
  • user-owned
  • soft-deletable
  • visibility-aware
  • product-list pivot based

Important field groups:

Field GroupPurpose
identityuuid
ownershipcustomer_id, user_id
displayname, project_name
visibilityvisibility_status

Visibility behavior:

  • private lists stay within the owner context
  • public lists can be shared through a link
  • shared lists remain tied to the original user and customer

Sources:

  • packages/framework/src/Models/CustomerList.php
  • packages/framework/src/Enums/CustomerListVisiblityEnum.php

Relationships

Customer List directly relates to:

  • customer
  • user
  • products
  • comments

Source:

  • packages/framework/src/Models/CustomerList.php

Rules And Downstream Effects

Important rules and effects:

  • a list belongs to the current customer account context
  • a public list can be opened through its share URL
  • the quote/open flow dispatches the list into a separate follow-up dialog
  • list updates refresh storefront list state after save

Sources:

  • packages/storefront/src/Livewire/Storefront/MyAccount/List/Page.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/ShareDialog.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/EditDialog.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/AddToCustomerListDialog.php

Integrations And Automation

PDF download

The list page can render a PDF export of the current list and its products.

Source:

  • packages/storefront/src/Livewire/Storefront/MyAccount/List/Page.php

Wishlist migration

The framework includes a migration path that converts wishlists into customer lists.

Source:

  • packages/framework/src/Actions/CustomerList/MigrateWishlistsToCustomerList.php

Product entry points

Products can be added to lists from product cards and cart item surfaces.

Sources:

  • packages/storefront/src/Livewire/Storefront/Product/Card/AddToCustomerListButton.php
  • packages/storefront/src/Livewire/Storefront/Cart/Items/ItemBlock/AddToCustomerListButton.php

Where It Appears To End Users

Customer List appears in:

  • the my-account lists page
  • the individual list page
  • the add-to-list dialog from product and cart surfaces

Sources:

  • packages/storefront/src/Livewire/Storefront/MyAccount/Lists/Page.php
  • packages/storefront/src/Livewire/Storefront/MyAccount/List/Page.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/AddToCustomerListDialog.php

Current Documentation Takeaways

  • Customer lists are the storefront list-keeping concept, not an admin-only data table.
  • Public/private visibility is the main sharing control.
  • The feature overlaps with wishlists, but the framework now exposes customer lists as the stronger workflow.

Open Questions

  • This sprint did not find a dedicated admin-side customer-list management screen.
  • The quote/open dialog is dispatched from the list page, but the downstream quoting destination lives elsewhere in the storefront app.

Sources

  • packages/framework/src/Models/CustomerList.php
  • packages/framework/src/Models/CustomerListProduct.php
  • packages/framework/src/Actions/CustomerList/CreateCustomerList.php
  • packages/framework/src/Actions/CustomerList/UpdateCustomerList.php
  • packages/framework/src/Actions/CustomerList/DeleteCustomerList.php
  • packages/framework/src/Actions/CustomerList/MigrateWishlistsToCustomerList.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/CreateDialog.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/EditDialog.php
  • packages/storefront/src/Livewire/Storefront/CustomerList/ShareDialog.php
  • packages/storefront/src/Livewire/Storefront/MyAccount/Lists/Page.php
  • packages/storefront/src/Livewire/Storefront/MyAccount/List/Page.php