code: def from_array(array):
          
          if array is None or not array:
              return None
          # end if
          assert_type_or_raise(array, dict, parameter_name="array")
          from pytgbot.api_types.receivable.payments import ShippingAddress
          
  
          data = {}
          data['name'] = u(array.get('name')) if array.get('name') is not None else None
          data['phone_number'] = u(array.get('phone_number')) if array.get('phone_number') is not None else None
          data['email'] = u(array.get('email')) if array.get('email') is not None else None
          data['shipping_address'] = ShippingAddress.from_array(array.get('shipping_address')) if array.get('shipping_address') is not None else None
          data['_raw'] = array
          return OrderInfo(**data)
docs: Deserialize a new OrderInfo from a given dictionary.
  
          :return: new OrderInfo instance.
          :rtype: OrderInfo