shop.modules.discount

Attributes

logger

lock_current_automatically_discounts

Lock to make the current_automatically_discounts cache thread-safe

Classes

Discount

Abstract Class for all viur-shop sub/nested modules.

Module Contents

shop.modules.discount.logger
shop.modules.discount.lock_current_automatically_discounts

Lock to make the current_automatically_discounts cache thread-safe

class shop.modules.discount.Discount(moduleName=None, modulePath=None, shop=None, *args, **kwargs)

Bases: shop.modules.abstract.ShopModuleAbstract, viur.core.prototypes.List

Abstract Class for all viur-shop sub/nested modules.

The implementations should set moduleName as class variable, so the final module name for routing it not affected by the name of custom classes.

Parameters:
  • moduleName (str)

  • modulePath (str)

  • shop (viur.shop.Shop)

moduleName = 'discount'
kindName = '{{viur_shop_modulename}}_discount'
adminInfo()
Return type:

dict

search(code=None, discount_key=None)
Parameters:
  • code (str | None)

  • discount_key (viur.core.db.Key | None)

Return type:

list[viur.core.skeleton.SkeletonInstance]

apply(code=None, discount_key=None)
Parameters:
  • code (str | None)

  • discount_key (viur.core.db.Key | None)

Return type:

viur.shop.types.t.Any

can_apply(skel, *, cart_key=None, article_skel=None, code=None, context=DiscountValidationContext.NORMAL)
Parameters:
  • skel (viur.shop.types.SkeletonInstance_T[shop.skeletons.DiscountSkel])

  • cart_key (viur.core.db.Key | None)

  • article_skel (viur.core.skeleton.SkeletonInstance | None)

  • code (str | None)

  • context (viur.shop.types.DiscountValidationContext)

Return type:

tuple[bool, shop.types.dc_scope.DiscountValidator | None]

property current_automatically_discounts: list[viur.shop.types.SkeletonInstance_T[shop.skeletons.DiscountSkel]]
Return type:

list[viur.shop.types.SkeletonInstance_T[shop.skeletons.DiscountSkel]]

remove(discount_key)
Parameters:

discount_key (viur.core.db.Key)

Return type:

viur.shop.types.t.Any