pypresscart.models.orders

Order models.

Classes

CheckoutLineItem(*, product_id[, quantity, ...])

A line item in a checkout request.

CheckoutRequest(*, profile_id, line_items[, ...])

Body for POST /orders/checkout.

LineItem(*[, id, order_id, price, ...])

A line item on a returned order.

Order(*, id[, profile_id, client_id, ...])

Order returned by GET /orders / /orders/{id} and POST /orders/checkout.

OutletRef(*[, id, name, logo, website_url])

Minimal outlet reference embedded in line items.

TeamRef(*[, name, contact_email])

class pypresscart.models.orders.CheckoutLineItem(*, product_id, quantity=1, is_add_on=False, linked_order_line_item_id=None, **extra_data)[source]

Bases: PresscartModel

A line item in a checkout request.

Parameters:
  • product_id (str)

  • quantity (int)

  • is_add_on (bool)

  • linked_order_line_item_id (str | None)

  • extra_data (Any)

product_id: str
quantity: int
is_add_on: bool
linked_order_line_item_id: str | None
class pypresscart.models.orders.CheckoutRequest(*, profile_id, line_items, discount=0, **extra_data)[source]

Bases: PresscartModel

Body for POST /orders/checkout.

Parameters:
profile_id: str
line_items: list[CheckoutLineItem]
discount: float | None
class pypresscart.models.orders.LineItem(*, id=None, order_id=None, product_id, quantity, price=None, is_add_on=None, linked_order_line_item_id=None, name=None, product_type_name=None, type_id=None, product_type_prefix=None, outlet=None, includes=None, created_at=None, updated_at=None, deleted_at=None, **extra_data)[source]

Bases: PresscartModel

A line item on a returned order.

The Presscart API does not populate id on the line items returned by POST /orders/checkout (the order has been created but the line items haven’t been persisted as OrderItem records yet — those are surfaced by GET /order-items after payment). Both id and order_id are therefore optional so unpaid checkout responses parse cleanly.

Parameters:
id: str | None
order_id: str | None
product_id: str
quantity: int
price: float | None
is_add_on: bool | None
linked_order_line_item_id: str | None
name: str | None
product_type_name: str | None
type_id: str | None
product_type_prefix: str | None
outlet: OutletRef | None
includes: list[IncludeItem] | None
created_at: datetime | None
updated_at: datetime | None
deleted_at: datetime | None
class pypresscart.models.orders.Order(*, id, profile_id=None, client_id=None, checkout_by_id=None, team_id=None, total=None, subtotal=None, processing_fee=None, discount=None, credits_applied=None, coupon=None, client_secret=None, date_paid=None, status=None, reference_number=None, external_reference_number=None, customer_invoice_id=None, customer_invoice_source=None, customer_invoice_date=None, customer_invoice_url=None, is_guest_order=None, guest_email=None, account_owner_email=None, guest_stripe_customer_id=None, metadata=None, created_at=None, updated_at=None, deleted_at=None, team=None, name=None, email=None, checkout_link=None, line_items=[], **extra_data)[source]

Bases: PresscartModel

Order returned by GET /orders / /orders/{id} and POST /orders/checkout.

Team info is encoded differently per endpoint: GET /orders (list) returns a nested team: { name, contact_email } block, while GET /orders/{id} flattens it to top-level name and email. Both shapes are modeled; whichever the endpoint emits will be populated and the other will be None.

Parameters:
  • id (str)

  • profile_id (str | None)

  • client_id (str | None)

  • checkout_by_id (str | None)

  • team_id (str | None)

  • total (float | None)

  • subtotal (float | None)

  • processing_fee (float | None)

  • discount (float | None)

  • credits_applied (float | None)

  • coupon (str | None)

  • client_secret (str | None)

  • date_paid (datetime | None)

  • status (str | None)

  • reference_number (str | None)

  • external_reference_number (str | None)

  • customer_invoice_id (str | None)

  • customer_invoice_source (str | None)

  • customer_invoice_date (datetime | None)

  • customer_invoice_url (str | None)

  • is_guest_order (bool | None)

  • guest_email (str | None)

  • account_owner_email (str | None)

  • guest_stripe_customer_id (str | None)

  • metadata (dict[str, Any] | None)

  • created_at (datetime | None)

  • updated_at (datetime | None)

  • deleted_at (datetime | None)

  • team (TeamRef | None)

  • name (str | None)

  • email (str | None)

  • checkout_link (str | None)

  • line_items (list[LineItem])

  • extra_data (Any)

id: str
profile_id: str | None
client_id: str | None
checkout_by_id: str | None
team_id: str | None
total: float | None
subtotal: float | None
processing_fee: float | None
discount: float | None
credits_applied: float | None
coupon: str | None
client_secret: str | None
date_paid: datetime | None
status: str | None
reference_number: str | None
external_reference_number: str | None
customer_invoice_id: str | None
customer_invoice_source: str | None
customer_invoice_date: datetime | None
customer_invoice_url: str | None
is_guest_order: bool | None
guest_email: str | None
account_owner_email: str | None
guest_stripe_customer_id: str | None
metadata: dict[str, Any] | None
created_at: datetime | None
updated_at: datetime | None
deleted_at: datetime | None
team: TeamRef | None
name: str | None
email: str | None
line_items: list[LineItem]
class pypresscart.models.orders.OutletRef(*, id=None, name=None, logo=None, website_url=None, **extra_data)[source]

Bases: PresscartModel

Minimal outlet reference embedded in line items.

Parameters:
  • id (str | None)

  • name (str | None)

  • logo (str | None)

  • website_url (str | None)

  • extra_data (Any)

id: str | None
name: str | None
website_url: str | None
class pypresscart.models.orders.TeamRef(*, name=None, contact_email=None, **extra_data)[source]

Bases: PresscartModel

Parameters:
  • name (str | None)

  • contact_email (str | None)

  • extra_data (Any)

name: str | None
contact_email: str | None