'This is basically a wrapper around purchased_callback that handles
modifying the OrderItem itself'

@transaction.atomic
def purchase_item(self):

    self.purchased_callback()
    self.status = 'purchased'
    self.fulfilled_time = datetime.now(pytz.utc)
    self.save()
