Orders¶
Orders reference.
Status¶
- class salesman.orders.status.BaseOrderStatus(value)[source]¶
Base order status enum, actuall choices must extend this class.
- classmethod BaseOrderStatus.get_payable() → list[source]¶
Returns list of statuses from which an order is eligible for payment.
- classmethod BaseOrderStatus.get_transitions() → dict[source]¶
Returns a dict of statuses with their transitions. If not specified for status, any transition is valid.
- classmethod BaseOrderStatus.validate_transition(status: str, order: salesman.orders.models.Order) → str[source]¶
Validate a given status transition for the order. By default check status is defined in transitions.
- Parameters
status (str) – New status
order (Order) – Order instance
- Raises
ValidationError – If transition not valid
- Returns
Validated status
- Return type
str
Utils¶
- salesman.orders.utils.generate_ref(request: django.http.request.HttpRequest) → str[source]¶
Default order reference generator function. Can be overriden by providing a dotted path to a function in
SALESMAN_ORDER_REFERENCE_GENERATOR
setting.Default format is
{year}-{5-digit-increment}
(eg. 2020-00001).- Parameters
request (HttpRequest) – Django request
- Returns
New order reference
- Return type
str
Signals¶
- property signals.status_changed¶
Base class for all signals
Internal attributes:
- receivers
{ receiverkey (id) : weakref(receiver) }
Models¶
- class salesman.orders.models.OrderManager(*args, **kwargs)[source]¶
- create_from_request(request: django.http.request.HttpRequest, **kwargs) → salesman.orders.models.Order[source]¶
Create new order with reference. Items are still in basket and should be added using
order.populate_from_basket(basket, request)
method.- Returns
Order instance
- Return type
- create_from_basket(basket: salesman.basket.models.Basket, request: django.http.request.HttpRequest, **kwargs) → salesman.orders.models.Order[source]¶
Create and populate new order from basket.
- Returns
Order instance
- Return type
- class salesman.orders.models.Order(id, user, ref, status, token, email, shipping_address, billing_address, subtotal, total, _extra, date_created, date_updated)[source]¶
- pay(amount: decimal.Decimal, transaction_id: str, payment_method: str = '') → salesman.orders.models.OrderPayment[source]¶
Create a new payment for order.
- Parameters
amount (Decimal) – Amount to add
transaction_id (str) – ID of transaction
payment_method (str, optional) – Payment method identifier. Defaults to ‘’.
- Returns
New order payment instance
- Return type
- populate_from_basket(basket: salesman.basket.models.Basket, request: django.http.request.HttpRequest, **kwargs) → None[source]¶
Populate order with items from basket.
- Parameters
basket (Basket) – Basket instance
request (HttpRequest) – Django request
- property status_display: str¶
Returns display label for current status.
- property statuses: Type[django.db.models.enums.TextChoices]¶
Shorthand on order instance to get statuses enum.
- amount_paid¶
Returns amount already paid for this order.
- property amount_outstanding: decimal.Decimal¶
Returns amount still needed for order to be paid.
- property is_paid: bool¶
Returns if order is paid in full.
- class salesman.orders.models.OrderItem(id, order, product_type, product_content_type, product_id, product_data, unit_price, subtotal, total, quantity, _extra)[source]¶
- property name¶
Returns product name from stored data.
- property code¶
Returns product name from stored data.
Serializers¶
- class salesman.orders.serializers.OrderItemSerializer(*args, **kwargs)[source]¶
Serializer for order item.
- class salesman.orders.serializers.OrderPaymentSerializer(*args, **kwargs)[source]¶
Serializer for order payment.
- class salesman.orders.serializers.OrderNoteSerializer(*args, **kwargs)[source]¶
Serializer for order note.
- class salesman.orders.serializers.StatusTransitionSerializer(*args, **kwargs)[source]¶
Serializer to display order status with error.
- class salesman.orders.serializers.OrderStatusSerializer(*args, **kwargs)[source]¶
Serializer used to change order status.