API

Plug-ins

Criterion

class lfs.criteria.models.Criterion

Base class for all criteria.

Attributes:

cart
The current cart of the current customer.
content
The content object the criterion belongs to.
operator
The current selected operator for the criterion.
position
The position of the criterion within a list of criteria of the content object.
product
The product, if the criterion is called from a product detail view. Otherwise this is None.
request
The current request.

Constants:

EQUAL, LESS_THAN, LESS_THAN_EQUAL, GREATER_THAN, GREATER_THAN_EQUAL, IS_SELECTED, IS_NOT_SELECTED, IS_VALID, IS_NOT_VALID, CONTAINS
Integers which represents certain operators.
INPUT, SELECT, MULTIPLE_SELECT
Constants which represents the types of selectable values. One of these must be returned from get_value_type.
NUMBER_OPERATORS

A list of operators which can be returned from get_operators.

[
    [EQUAL, _(u"Equal to")],
    [LESS_THAN, _(u"Less than")],
    [LESS_THAN_EQUAL, _(u"Less than equal to")],
    [GREATER_THAN, _(u"Greater than")],
    [GREATER_THAN_EQUAL, _(u"Greater than equal to")],
]
SELECTION_OPERATORS

A list of operators which can be returned from get_operators.

[
    [IS_SELECTED, _(u"Is selected")],
    [IS_NOT_SELECTED, _(u"Is not selected")],
]
VALID_OPERATORS

A list of operators which can be returned from get_operators.

[
    [IS_VALID, _(u"Is valid")],
    [IS_NOT_VALID, _(u"Is not valid")],
]
STRING_OPERATORS

A list of operators which can be return from get_operators.

[
    [EQUAL, _(u"Equal to")],
    [CONTAINS, _(u"Contains")],
]
get_operators()

Returns the selectable operators of the criterion which are displayed to the shop manager. This is a list of list, whereas the the first value is integer, which is stored within the criterion and the second value is the string which is displayed to the shop manager, e.g.:

[
    [0, _(u"Equal to")],
    [1, _(u"Less than")],
    [2, _(u"Less than equal to")],
    [3, _(u"Greater than")],
    [4, _(u"Greater than equal to")],
]

Note

You can use one of the provided class attributes, see above.

  • NUMBER_OPERATORS
  • SELECTION_OPERATORS
  • VALID_OPERATORS
  • STRING_OPERATORS
get_selectable_values(request)

Returns the selectable values as a list of dictionary, see below. This is only called when get_value_type returns SELECT or MULTIPLE_SELECT.

[
    {
        "id": 0,
        "name": "Name 0",
        "selected": False,
    },
    {
        "id": 1,
        "name": "Name 1",
        "selected": True,
    },
]
get_template(request)

Returns the template to render the criterion.

get_value_type()

Returns the type of the selectable values field. Must return one of:

  • self.INPUT
  • self.SELECT
  • self.MULTIPLE_SELECT
get_value()

Returns the current value of the criterion.

is_valid(request, product=None)

Returns True if the criterion is valid otherwise False.

render(request, position)

Renders the criterion as html in order to displayed it within the management form.

update(value)

Updates the value of the criterion.

Parameters:

value
The value the shop user has entered for the criterion.

OrderNumberGenerator

class lfs.plugins.OrderNumberGenerator

Base class from which all order number generators should inherit.

Attributes:

cart

The current cart of the customer.

customer

The customer of the order.

order

The order for which a new number is generated.

request

The current request

user

The user of the order.
get_form(**kwargs)

Returns the form which is used within the shop preferences management interface.

All parameters are passed to the form.

get_next(formatted=True)

Returns the next order number as string. Derived classes must implement this method.

Parameters:

formatted
If True the number will be returned within the stored format, which is based on Python default string formatting operators, e.g. %04d.
exclude_form_fields()

Returns a list of fields, which are excluded from the model form, see also get_form.

init(request, order)

Initializes the order number generator. This method is called automatically from LFS.

PaymentMethodProcessor

class lfs.plugins.PaymentMethodProcessor(request, cart=None, order=None)

Base class from which all 3rd-party payment method processors should inherit.

Attributes:

cart
The current cart. This is only set, when create order time is ACCEPTED.
order
The current order. This is only set, when create order time is IMMEDIATELY.
request
The current request.
get_create_order_time()

Returns the time when the order should be created. It is one of:

PM_ORDER_IMMEDIATELY
The order is created immediately before the payment is processed.
PM_ORDER_ACCEPTED
The order is created when the payment has been processed and accepted.

Returns a link to the payment service to pay the current order, which is displayed on the thank-you page and the order confirmation mail. In this way the customer can pay the order again if something has gone wrong.

process()

Implements the processing of the payment method. Returns a dictionary with several status codes, see below.

Return Values:

This values are returned within a dictionary.

accepted (mandatory)
Indicates whether the payment is accepted or not. if this is False the customer keeps on the checkout page and gets message (if given) below. If this is True the customer will be redirected to next_url (if given).
message (optional)
This message is displayed on the checkout page, when the order is not accepted.
message_location (optional)
The location, where the message is displayed.
next_url (optional)
The url to which the user is redirect after the payment has been processed. if this is not given the customer is redirected to the default thank-you page.
order_state (optional)
The state in which the order should be set. It’s just PAID. If it’s not given the state keeps in SUBMITTED.

PriceCalculator

class lfs.plugins.PriceCalculator(request, product, **kwargs)

This is the base class that pricing calculators must inherit from.

Attributes:

product
The product for which the price is calculated.
request
The current request.
get_base_price(with_properties=True)

Returns the base price of the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_base_price_net(with_properties=True)

Returns the net base price of the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_base_price_gross(with_properties=True)

Returns the gross base price of the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_base_packing_price(with_properties=True)

Returns the base packing price of the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_base_packing_price_net(with_properties=True)

Returns the base packing net price of the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_base_packing_price_gross(with_properties=True)

Returns the base packing gross price of the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_customer_tax(with_properties=True)

Returns the calculated tax for the current customer and product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the taxes of the default properties are added to the price.
get_customer_tax_rate()

Returns the tax rate for the current customer and product.

get_effective_price()

Effective price is used for sorting and filtering. Usually it is same as value from get_price but in some cases it might differ (eg. if we add eco tax to product price)

get_for_sale_price(with_properties=True)

Returns the sale price for the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_for_sale_price_net(with_properties=True)

Returns the sale net price for the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_for_sale_price_gross(with_properties=True)

Returns the sale net price for the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_price(with_properties=True)

Returns the stored price of the product without any tax calculations. It takes variants, properties and sale prices into account, though.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_price_net(with_properties=True)

Returns the net price of the product.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_price_gross(with_properties=True)

Returns the real gross price of the product. This is the base of all price and tax calculations.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_standard_price(with_properties=True)

Returns always the stored standard price for the product. Independent whether the product is for sale or not. If you want the real price of the product use get_price instead.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_standard_price_net(with_properties=True)

Returns always the standard net price for the product. Independent whether the product is for sale or not. If you want the real net price of the product use get_price_net instead.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_standard_price_gross(with_properties=True)

Returns always the gross standard price for the product. Independent whether the product is for sale or not. If you want the real gross price of the product use get_price_gross instead.

Parameters:

with_properties
If the instance is a configurable product and with_properties is True the prices of the default properties are added to the price.
get_product_tax(with_properties=True)

Returns the calculated tax for the current product independent of the customer.

get_product_tax_rate()

Returns the stored tax rate of the product. If the product is a variant it returns the parent’s tax rate.

price_includes_tax()

Returns True if stored price includes tax. False if not.

ShippingMethodPriceCalculator

class lfs.plugins.ShippingMethodPriceCalculator(request, shipping_method)

Base class from which all 3rd-party shipping method prices should inherit.

Attributes:

request
The current request.
shipping_method
The shipping method for which the price is calculated.
get_price()

Returns the stored price without any calculations.

get_price_gross()

Returns the gross price of the shipping method.

get_price_net()

Returns the net price of the shipping method.

get_tax()

Returns the total tax of the shipping method.

get_tax_rate()

Returns the tax rate of the shipping method.