feat: add basic support for local customer, product lookups

also convert pending to local (where relevant) when executing batch
This commit is contained in:
Lance Edgar 2025-01-09 12:13:58 -06:00
parent ebd22fe6ee
commit a4ad23c7fa
23 changed files with 3205 additions and 796 deletions

View file

@ -5,6 +5,46 @@ Glossary
.. glossary::
:sorted:
external customer
A customer account from an external system. Sideshow can be
configured to lookup customer data from external system(s) when
creating an :term:`order`.
See also :term:`local customer` and :term:`pending customer`.
external product
A product record from an external system. Sideshow can be
configured to lookup customer data from external system(s) when
creating an :term:`order`.
See also :term:`local product` and :term:`pending product`.
local customer
A customer account in the :term:`app database`. By default,
Sideshow will use its native "Local Customers" table for lookup
when creating an :term:`order`.
The data model for this is
:class:`~sideshow.db.model.customers.LocalCustomer`.
See also :term:`external customer` and :term:`pending customer`.
local product
A product record in the :term:`app database`. By default,
Sideshow will use its native "Local Products" table for lookup
when creating an :term:`order`.
The data model for this is
:class:`~sideshow.db.model.products.LocalProduct`.
See also :term:`external product` and :term:`pending product`.
new order batch
When user is creating a new order, under the hood a :term:`batch`
is employed to keep track of user input. When user ultimately
"submits" the order, the batch is executed which creates a true
:term:`order`.
order
This is the central focus of the app; it refers to a customer
case/special order which is tracked over time, from placement to
@ -20,17 +60,19 @@ Glossary
sibling items.
pending customer
Generally refers to a "new / unknown" customer, e.g. for whom a
new order is being created. This allows the order lifecycle to
get going before the customer has a proper account in the system.
A "temporary" customer record used when creating an :term:`order`
for new/unknown customer.
See :class:`~sideshow.db.model.customers.PendingCustomer` for the
data model.
The data model for this is
:class:`~sideshow.db.model.customers.PendingCustomer`.
See also :term:`external customer` and :term:`pending customer`.
pending product
Generally refers to a "new / unknown" product, e.g. for which a
new order is being created. This allows the order lifecycle to
get going before the product has a true record in the system.
A "temporary" product record used when creating an :term:`order`
for new/unknown product.
See :class:`~sideshow.db.model.products.PendingProduct` for the
data model.
The data model for this is
:class:`~sideshow.db.model.products.PendingProduct`.
See also :term:`external product` and :term:`pending product`.