Source code for shuup.core.order_creator._source_modifier

from shuup.apps.provides import load_module_instances


def get_order_source_modifier_modules():
    """
    Get a list of configured order source modifier module instances.

    :rtype: list[OrderSourceModifierModule]
    """
    return load_module_instances("SHUUP_ORDER_SOURCE_MODIFIER_MODULES", "order_source_modifier_module")


def is_code_usable(order_source, code):
    return any(module.can_use_code(order_source, code) for module in get_order_source_modifier_modules())


class OrderSourceModifierModule:
[docs] def get_new_lines(self, order_source, lines): """ Get new lines to be added to order source. :type order_source: shuup.core.order_creator.OrderSource :type lines: list[shuup.core.order_creator.SourceLine] :rtype: Iterable[shuup.core.order_creator.SourceLine] """ return []
[docs] def can_use_code(self, order_source, code): return False
[docs] def use_code(self, order, code): pass
[docs] def clear_codes(self, order): pass