Advanced hotfolder input for PrintAutoMate - JSON
Question
Is it possible to process jobs based upon a structured file. This can be for instance the case when you would have an e-commerce system in place.
Pre-Request
- An active Roland DG Connect PrintAutoMate account
- An installation of Roland DG Connect PrintAutoMate InputManager
Solution
PrintAutoMate allows for advanced inputs trough its hotfolders. For this, we require you have a working PrintAutoMate environment with a working hotfolder setup.
The advanced functions allow to ad additional information into the orders.
Usage
The smart hotfolder functionalities work via a JSON file containing all relevant parameters and data. For this to work, we need to have the actual image file to be stored locally, but on a different folder then the hotfolder.
The JSON file is then copied into the hotfolder and processed.
The filename of the JSON file will not be processed. All relevant parameters should be included into the JSON file.
In case that the hotfolder is configured with fixed values, these will be used only when the parameters are not included inside the JSON file. This means, the JSON parameters will overrule the fix hotfolders parameters.
Example 1: JSON Value overrides parameter
Fixed hotfolder value | JSON value | Used value in PAM | ||
---|---|---|---|---|
Customer: "Roland DG" | -> | Customer: "John Doe" | -> | Customer: "John Doe" |
Example 2: Fixed hotfolder value is used
Fixed hotfolder value | JSON value | Used value in PAM | ||
---|---|---|---|---|
Customer: "Roland DG" | -> | <none> | -> | Customer: "Roland DG" |
Example of a JSON file
The structure of the JSON file is self-explanatory. We have the master parameters which contain global parameters for the whole order. A Job parameter that contains the information.
Information is grouped into several information blocks. mediaInfo, colorInfo, sizeInfo, customerInfo, dealerInfo, paymentInfo,...
{ "source": "MyJob", "orderId": "1111", "dealerOrderId": "BigDealerOrder154987", "jobs": [{ "jobId": "Test Job from Json", "copies": 3, "mediaInfo": { "mediaId": "Media Identifier", "sku": "Product SKU", "mediaName": "Media Name", "mediaColor": "Media Color", "mediaSize": "Media Size" }, "colorInfo": { "background": "Background Color" }, "sizeInfo": { "presetSize": "Preset Size", "widthMM": 10, "heightMM": 20, "thickness": 0.5 }, "customerInfo": { "firstName": "My First Name", "lastName": "My Last Name", "companyName": "My Company Name", "address": "My address", "email": "My@email.com", "phoneNumber": "My phone number" }, "dealerInfo": { "firstName": "My Dealer First Name", "lastName": "My Dealer Last Name", "companyName": "My Dealer Company Name", "address": "My dealer address", "email": "dealer@email.com", "phoneNumber": "My dealer phone number" }, "paymentInfo": { "name": "My payment Name", "instructions": "My instructions", "paymentStatus": "My payment status" }, "additionalParams": [{ "key": "Finishing", "value": "CustomParam Finishing" }, { "key": "Quality", "value": "Custom Param Quality" }, { "key": "Location", "value": "Custom Param Location" } ], "frames": [{ "presetSize": "A4", "imageFile": "C:\\Users\\ExampleUser\\OneDrive\\Documents\\example.pdf", "fileType": "pdf", "fileSize": 345678 } ] } ] }
Additional parameters
As PrintAutoMate allows to add you own "Custom Parameters", they can also be included inside the JSON file. The example above already includes these. To add it you will need to provide the exact name of the custom parameter and the value.
"additionalParams": [{ "key": "Finishing", "value": "CustomParam Finishing" }, { "key": "Quality", "value": "Custom Param Quality" }, { "key": "Location", "value": "Custom Param Location" } ],