'Restores a previously serialized checkout session.
`storage_data` is the value previously returned by
`Checkout.for_storage()`.'

@classmethod
def from_storage(cls, storage_data, cart, user, tracking_code):

    checkout = cls(cart, user, tracking_code)
    checkout.storage = storage_data
    try:
        version = checkout.storage[u'version']
    except (TypeError, KeyError):
        version = None
    if (version != cls.VERSION):
        checkout.storage = {u'version': cls.VERSION}
    return checkout
