shuup.front.checkout package

Submodules

shuup.front.checkout.addresses module

class shuup.front.checkout.addresses.CompanyForm(**kwargs)[source]

Bases: TaxNumberCleanMixin, ModelForm

class Meta[source]

Bases: object

model

alias of CompanyContact

fields = ('name', 'tax_number')
__init__(**kwargs)[source]
clean()[source]

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

base_fields = {'name': <django.forms.fields.CharField object>, 'tax_number': <django.forms.fields.CharField object>}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class shuup.front.checkout.addresses.SavedAddressForm(owner, kind, **kwargs)[source]

Bases: Form

kind_to_role_map = {'billing': SavedAddressRole.BILLING, 'shipping': SavedAddressRole.SHIPPING}
__init__(owner, kind, **kwargs)[source]
base_fields = {'addresses': <django.forms.fields.ChoiceField object>}
declared_fields = {'addresses': <django.forms.fields.ChoiceField object>}
property media

Return all media required to render the widgets on this form.

class shuup.front.checkout.addresses.AddressesPhase(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Bases: CheckoutPhaseViewMixin, FormView

Initialize a checkout phase view.

Parameters:
identifier = 'addresses'
title = 'Addresses'
template_name = 'shuup/front/checkout/addresses.jinja'
address_form_classes = {}
company_form_class

alias of CompanyForm

saved_address_form_class

alias of SavedAddressForm

property address_kinds
get_form(form_class=None)[source]

Return an instance of the form to be used in this view.

get_initial()[source]

Return the initial data to use for forms on this view.

is_valid()[source]
form_valid(form)[source]

If the form is valid, redirect to the supplied URL.

process()[source]
get_context_data(**kwargs)[source]

Insert the form into the context dict.

shuup.front.checkout.checkout_method module

class shuup.front.checkout.checkout_method.CheckoutMethodChoices(value)[source]

Bases: Enum

CHECKOUT_AS_GUEST = 0
REGISTER = 1
class shuup.front.checkout.checkout_method.ChooseToRegisterForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]

Bases: Form

base_fields = {'register': <django.forms.fields.ChoiceField object>}
declared_fields = {'register': <django.forms.fields.ChoiceField object>}
property media

Return all media required to render the widgets on this form.

class shuup.front.checkout.checkout_method.CheckoutMethodPhase(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Bases: CheckoutPhaseViewMixin, LoginView

Initialize a checkout phase view.

Parameters:
identifier = 'checkout_method'
title = 'Checkout Method Choice'
template_name = 'shuup/front/checkout/checkout_method.jinja'
login_form_key = 'login'
checkout_method_choice_key = 'checkout_method_choice'
get_form(form_class=None)[source]

Return an instance of the form to be used in this view.

is_visible_for_user()[source]
should_skip()[source]
is_valid()[source]
form_valid(form)[source]

If the form is valid, redirect to the supplied URL.

process()[source]
get_initial_form_group_kwargs()[source]

Returns the keyword arguments for instantiating the form group.

class shuup.front.checkout.checkout_method.RegisterPhase(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Bases: CheckoutPhaseViewMixin, RegistrationNoActivationView

Initialize a checkout phase view.

Parameters:
identifier = 'register'
title = 'Register'
template_name = 'shuup/front/checkout/register.jinja'
is_visible_for_user()[source]
should_skip()[source]
is_valid()[source]
process()[source]

shuup.front.checkout.confirm module

class shuup.front.checkout.confirm.ConfirmForm(*args, **kwargs)[source]

Bases: Form

__init__(*args, **kwargs)[source]
clean()[source]

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

base_fields = {'accept_terms': <django.forms.fields.BooleanField object>, 'comment': <django.forms.fields.CharField object>, 'marketing': <django.forms.fields.BooleanField object>, 'product_ids': <django.forms.fields.CharField object>}
declared_fields = {'accept_terms': <django.forms.fields.BooleanField object>, 'comment': <django.forms.fields.CharField object>, 'marketing': <django.forms.fields.BooleanField object>, 'product_ids': <django.forms.fields.CharField object>}
property media

Return all media required to render the widgets on this form.

class shuup.front.checkout.confirm.ConfirmPhase(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Bases: CheckoutPhaseViewMixin, FormView

Initialize a checkout phase view.

Parameters:
identifier = 'confirm'
title = 'Confirmation'
template_name = 'shuup/front/checkout/confirm.jinja'
form_class

alias of ConfirmForm

process()[source]
is_valid()[source]
get_form_kwargs()[source]

Return the keyword arguments for instantiating the form.

get_context_data(**kwargs)[source]

Insert the form into the context dict.

form_valid(form)[source]

If the form is valid, redirect to the supplied URL.

create_order()[source]

shuup.front.checkout.empty module

class shuup.front.checkout.empty.EmptyPhase(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Bases: CheckoutPhaseViewMixin, TemplateView

Initialize a checkout phase view.

Parameters:
identifier = 'empty'
title = 'Empty Basket'
template_name = 'shuup/front/checkout/empty.jinja'
process()[source]
post(request, *args, **kwargs)[source]

shuup.front.checkout.methods module

class shuup.front.checkout.methods.MethodWidget(attrs=None, choices=())[source]

Bases: Widget

__init__(attrs=None, choices=())[source]
render(name, value, attrs=None, renderer=None)[source]

Render the widget as an HTML string.

property media
class shuup.front.checkout.methods.MethodChoiceIterator(field)[source]

Bases: ModelChoiceIterator

choice(obj)[source]
class shuup.front.checkout.methods.MethodsForm(*args, **kwargs)[source]

Bases: Form

__init__(*args, **kwargs)[source]
limit_method_fields()[source]
base_fields = {}
declared_fields = {}
property media

Return all media required to render the widgets on this form.

class shuup.front.checkout.methods.MethodsPhase(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Bases: CheckoutPhaseViewMixin, FormView

Initialize a checkout phase view.

Parameters:
identifier = 'methods'
title = 'Shipping & Payment'
template_name = 'shuup/front/checkout/methods.jinja'
form_class

alias of MethodsForm

is_valid()[source]
process()[source]
get_form_kwargs()[source]

Return the keyword arguments for instantiating the form.

form_valid(form)[source]

If the form is valid, redirect to the supplied URL.

get_initial()[source]

Return the initial data to use for forms on this view.

get_context_data(**kwargs)[source]

Insert the form into the context dict.

class shuup.front.checkout.methods.ShippingMethodPhase(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Bases: _MethodDependentCheckoutPhase, View

Initialize a checkout phase view.

Parameters:
identifier = 'shipping'
get_method()[source]
Return type:

shuup.core.models.Service

class shuup.front.checkout.methods.PaymentMethodPhase(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Bases: _MethodDependentCheckoutPhase, View

Initialize a checkout phase view.

Parameters:
identifier = 'payment'
get_method()[source]
Return type:

shuup.core.models.Service

Module contents

class shuup.front.checkout.BasicServiceCheckoutPhaseProvider

Bases: ServiceCheckoutPhaseProvider

Helper for implementing basic ServiceCheckoutPhaseProvider.

This helper should be useful for most cases, where one only has to provide a checkout phase for certain service provider type just by initializing some predefined class.

get_checkout_phase(checkout_process, service)[source]

Get checkout phase for given service.

Return type:

shuup.front.checkout.CheckoutPhaseViewMixin|None

phase_class = None
service_provider_class = None
class shuup.front.checkout.CheckoutPhaseViewMixin(checkout_process=None, horizontal_template=True, *args, **kwargs)

Bases: object

Initialize a checkout phase view.

Parameters:
__init__(checkout_process=None, horizontal_template=True, *args, **kwargs)[source]

Initialize a checkout phase view.

Parameters:
property basket

The basket used in this checkout phase.

Return type:

shuup.front.basket.objects.BaseBasket

property checkout_process

Get the checkout process of this phase.

Return type:

shuup.front.checkout.CheckoutProcess

final = False
get_context_data(**kwargs)[source]
get_success_url(*args, **kwargs)[source]
get_url()[source]
identifier = None
is_valid()[source]
is_visible_for_user()[source]
next_phase = None
phases = ()
previous_phase = None
process()[source]
request = None
reset()[source]
should_skip()[source]
classmethod spawn_phases(checkout_process)[source]

Returns an iterator of new phases generated by this phase for the given checkout process

Parameters:

checkout_process (shuup.front.checkout.CheckoutProcess) – The checkout process to check for new phases.

property storage
title = None
class shuup.front.checkout.CheckoutProcess(phase_specs, phase_kwargs, view=None)

Bases: object

Initialize this checkout process.

__init__(phase_specs, phase_kwargs, view=None)[source]

Initialize this checkout process.

add_phase_attributes(target_phase, current_phase=None)[source]

Add phase instance attributes (previous, next, etc) to the given target phase, using the optional current_phase as the current phase for previous and next.

This is exposed as a public API for the benefit of phases that need to do sub-phase initialization and dispatching, such as method phases.

property basket

The basket used in this checkout process.

Return type:

shuup.front.basket.objects.BaseBasket

complete()[source]

To be called from a phase (self.checkout_process.complete()) when the checkout process is complete.

get_current_phase(requested_phase_identifier)[source]
get_next_phase(current_phase, target_phase)[source]
get_phase_url(phase)[source]
get_previous_phase(current_phase, target_phase)[source]
horizontal_template = True
instantiate_phase_class(phase_class, **extra_kwargs)[source]
property phases

Iterable[CheckoutPhaseViewMixin]

Type:

rtype

prepare_current_phase(phase_identifier)[source]
reset()[source]
class shuup.front.checkout.ServiceCheckoutPhaseProvider

Bases: object

Interface for providing checkout phase for a service.

Items specified in front_service_checkout_phase_provider provide category should implement this interface.

abstractmethod get_checkout_phase(checkout_process, service)[source]

Get checkout phase for given service.

If this provider is for another service, then the return value will be None.

Return type:

shuup.front.checkout.CheckoutPhaseViewMixin|None

class shuup.front.checkout.VerticalCheckoutProcess(phase_specs, phase_kwargs, view=None)

Bases: CheckoutProcess

Initialize this checkout process.

horizontal_template = False