Using a Script & Trigger to Add Parcel Accessories to Orders
Using a Script & Trigger to Add Parcel Accessories to Orders
This article describes how Infoplus users can use a script and trigger combination to automatically add parcel accessories for orders.
If you want to add parcel accessories to orders shipping out of Infoplus, you can use a script and trigger combination to add it to the order automatically.
You can add accessories like:
- Adult Signature required
- Signature required
- No Signature required
- Hold For Pickup
In this particular example, we will explore adding Signature Required.
You may want to utilize the Infoplus API reference page to get the field names in question. (make sure you are using the beta (our edge) version of the API) Infoplus API Reference
Infoplus Support can help with general questions about how scripting works. For help with a specific script or its outputs, you will need to submit a Pro Services request for paid support. Pro Service request form can be found here.
Step 1: Navigate to the Script table and select the Create New button.
Step 2: Enter a name for the script, select Record as Script Type, Order as Record Type and again make sure you are using the Beta API Version.
Step 3: The code to make this happen is very simple.
// Script to add Signature Required parcel accessory to an Order
accessory="SIGRQ";
varamount=null;
varsigConf=infoplusApi.constructModel("reqParcelAccessoryData");
sigConf.accessory=accessory;
order.addToRequestedParcelAccessories(sigConf);
utils.log("Updating order");
infoplusApi.update("order",order);
Step 4: Now that we have the script created, we can setup a Trigger to automatically run it on the orders we want. In this example, we will update all orders that enter the system. To accomplish this we will navigate to the order table and create a smart filter for any order in the 'Pending' status (orders are briefly in a pending status when they first enter the system). By creating a filter on this pending status we will be able to update all of the orders before they are in an 'On Order' status.
Note: you can apply additional filters if you want to specify what kind of orders this script should be applied to, e.g., certain lines of business, carriers, ship to states etc. etc.
Step 5: Now that you have the script and a pending smart filter created, it is time to create the trigger that will automatically run the script. Navigate to the Trigger table and select Create New.
Step 6: Give the trigger an appropriate name and description. Next, select the pending smart filter that was created and make sure the trigger is active. Since we want to run this script on any new orders entering the system, we will choose the Insert event option. (The update option would run the script anytime an order is updated to meet the smart filter criteria.)
Step 7: Now that the trigger is created, we will want to give it an 'action' to take. Select the actions icon bubble to see the full menu of available actions. In this scenario, we will want to select 'run script' and choose the Parcel Reference Mapper script. (note that you can stack actions on top of each other for a single trigger)
Once you hit save, the trigger is in place and the next order that enters the system should get updated. You can check your script by looking at your Script Log table once some orders have dropped in.
Additional Information
Here are the Parcel Accessories you can specify for Orders:
| Accessory Identifier | Accessory |
|---|---|
| ADSIG | Adult Signature Required |
| HLDPK | Hold For Pickup |
| SHREL | No Signature Required |
| SIGRQ | Signature Required |
| INSUR | Insurance for the Order. Note: You will also need to set the 'amount' variable in the script to reflect the amount of required insurance. See example below. |
Example Script to Add Insurance
// Script to add $200.00 of insurance to an Order
varaccessory="INSUR";
varamount=200.00;
varinsurAccessory=infoplusApi.constructModel("reqParcelAccessoryData");
insurAccessory.accessory=accessory;
insurAccessory.amount=amount;
order.addToRequestedParcelAccessories(insurAccessory);
utils.log("Updating order");
infoplusApi.update("order",order);