| 12345678910111213141516171819202122232425 | from oscar.apps.offer import models
class ChangesOwnerName(models.Benefit):
    class Meta:
        proxy = True
        app_label = 'sandbox'
    def apply(self, basket, condition, offer=None):
        condition.consume_items(offer, basket, ())
        return models.PostOrderAction(
            "You will have your name changed to Barry!")
    def apply_deferred(self, basket, order, application):
        if basket.owner:
            basket.owner.first_name = "Barry"
            basket.owner.save()
        return "Your name has been changed to Barry!"
    @property
    def description(self):
        return "Changes owners name"
    name = description
 |