Before Create Order Scripts
The "Before Create Order" script type executes just before an order is created. This script allows you to transform the order options, address, and items or reject the order entirely.
See "Scripting Basics" to become more familiar with scripting in ShipStream in general.
How to Create a Before Create Order Script
- Navigate to System > Scripts.
- Click Create New Script at the top right.
- Select the Merchant to which the script will be applicable or "--All Merchants--" to have the script apply to all merchants.
- Enter a brief description for the script so you can easily identify it. This description will also appear in the order's History tab if the script has an error or prints any output.
- Select Before Create Order as the Type.
- Change the Is Active field to Yes if you wish to use the script after it is saved, or leave it as No to disable it for now.
- Set a Sort Order if using multiple scripts to control the order in which the scripts are applied. Lower numbers will run before script with higher numbers.
- Click Save.
If the script contains a
print() statement, then the Order History tab will display the script ID that applied to the order next to the Order Status. In the example below, the print statement
print("Shipping Method Updated");was added to the script and appears below the Description.
Clicking the script ID next to the status will re-direct users to that script in the editor.
If any errors occur during the execution of the script and are not captured and handled within the script they will cause the order submission to fail with an error describing the script which threw the error, the line number and the error message. These will be logged and visible at the bottom of the Edit Script page. Once the script is saved these errors will be cleared so that you can easily determine if new errors are still occurring.
The editor is able to detect basic syntactical errors, but it is still possible to introduce runtime errors. For example, a common issue is setting or referencing a property of an "undefined" expression: