Storage of custom reservation documents extension for Planyo

The extension Storage of custom reservation documents allows your customers to upload custom documents (such as scans or signed contracts / rental agreements) connected to their reservation.

Once uploaded, the documents can be accessed by the admins but you can also attach links to them in emails or in other templates.
User Guide
Viewing uploaded documents
Uploading documents by the customer
Verifying document upload by the customer
Template tags
Automated actions triggered when document is uploaded
Viewing uploaded documents
You can view all documents uploaded for your reservations on the Uploaded documents page.
The documents uploaded for a given reservation are listed on the Reservation details page. Go to your Planyo Dashboard, open a reservation you want to check (for example, by choosing one from the Reservations / Latest reservation entered list) and scroll down to the Uploaded documents section.
This includes documents uploaded by an administrator and those uploaded by the customer when they have such a possibility (see the section below).
In this section you can also upload documents that you want to attach to the reservation as an administrator.
Uploading documents by the customer
You can allow the customer to upload a document by adding the $(user_document_upload) tag in, depending on your reservation process, the Reservation completed, Reservation details or Reservation payment template. This way, once the customer gets to one of this views in the reservation process, this tag will show a widget where the customer can select and upload a document associated with the reservation. Adding more than one tag of this kind allows the customer to upload e.g. two documents.
If you want to make a document upload obligatory, you can use the $(user_document_upload_required:optional-label) tag.
When you place this tag in the Reservation payment template (shown when the reservation needs to be confirmed by making an online payment), the payment section (the default <div id='payment_code'> element) will be shown only after the file is uploaded. Consequently, the customer will be able to move on with the reservation process and make a payment only after uploading the required document. Note that we don't verify content of the file but only the fact of uploading it.
In case of the Reservation completed and Reservation details templates, the file upload requirement is 'soft'. This means that the customer actually gets to the end of the reservation process when this view is shown and the appropriate reservation status is already set (according to your reservation process settings). On the other hand, the final information section (<div id='completed_code'> and <div id='details_code'> respectively) is shown only after the required document is uploaded.
You can use only one required tag in a template.
If you want the customer to be able to upload their document later in the process (e.g. a signed contract), you should place a link to the reservation details page in an email notification sent to your customer (see the tag $(details_url) in Q204). Once the customer arrives on the reservation details page, they'll see the upload document button if the reservation details template includes the tag $(user_document_upload). This scenario is explained in part 3 of this tutorial.
Verifying document upload by the customer
Sometimes you may need to verify whether the customer has already uploaded a document for their reservation or not yet. This can be both when the document upload is voluntary (the $(user_document_upload) tag) or obligatory (with the $(user_document_upload_required:optional-label) tag).
Sending a reminder message
One option you have is setting up a message that will be sent to the customer on a certain time, e.g. 3 days before the arrival (reservation start). Note that you can also choose the sending time as e.g. N hours or days after making the reservation. Please see FAQ211 and Messages sent before or after arrival to learn more about this.
In the message, you can use the $(uploaded_document_count) tag to tell if the reservation already has any document. If not, you can send the client a reminder message with a link to the $(details_url) page where they can go and do the upload. Note that in this case the Reservation details template should already contain one of the tags that allow the upload (see Uploading documents by the customer above).
A sample message template can be as follows. Note that messages with empty body are not sent. This way, the message will be sent only when the reservation doesn't have any documents yet.
            $(if) $(uploaded_document_count) less than 1 $(then)
            Hello,
            I see you haven't upload a photo with your plate numbers yet. Please go to $(details_url) to do that.
            $(endif)
          
Automatic cancellation of the reservation
If you want to verify upload of reservation documents in the hard way, you can set up an automatic cancellation of reservations that don't have any documents. You can set it up in the Resource / Reservation process view. In the Automatically cancel reservations field choose If reservation doesn't have any uploaded document. In the field below, you can choose the time when a reservation will be tested (and possible cancelled), e.g. 2 days before arrival or 1 day after making the reservation.
Template tags
In addition to being able to download the documents manually on the Reservation details page, you can use the following tags in any of your reservation templates or email notifications:
$(uploaded_document_count) - number of documents uploaded for given reservation, $(uploaded_document_url:N) - URL of Nth document, e.g. $(uploaded_document_url:1) gives the URL of the first document, $(uploaded_document_name:N) - file name of Nth document, $(uploaded_document:XXX) - gives the URL of the document whose file name is XXX
Sample template code. To get a list of all uploaded documents with links, add the following code in your template:
          $(foreach:$(uploaded_document_count))
          <a href='$(uploaded_document_url:$(it))'>$(uploaded_document_name:$(it))</a> <br/>
          $(endfor)
        
If you need to access all previously uploaded documents from given customer, use the following tags: $(all_uploaded_document_count), $(all_uploaded_document_name:N), $(all_uploaded_document_url:N), $(all_uploaded_document_reservation_id)
Automated actions triggered when document is uploaded
When a document is uploaded, an email notification is sent to the recipient defined on extension's configuration page, it can be one of: main administrator of the site, main moderator, resource admin or no notification.

Additionally, the reservation color can be changed automatically if a trigger of type 'new document uploaded by user' is configured in Color manager. If you need to send an email notification to the customer once they upload their document, you'll need to use this color-based mechanism together with a notification based on the color change (more about this in this tutorial).