Shipping Rules Plugins

ShipBridge plugins can be used to apply shipping rules or customized invoices when shipping orders in ShipBridge.

ShipBridge plugins are typically developed by SellerCloud and incur customization charges. Developers can use the instructions below to aid in development.


Add Plugins in ShipBridge

  1. Obtain your customized plugin from SellerCloud Support.
  2. Save it to the PC where ShipBridge is installed.
  3. In ShipBridge, open the menu and select Plugins.
  4. Click Install Plugin to open a File Explorer window to search for the plugin on your PC.
  5. Select the plugin and save.
  6. Check the box next to the plugin to enable it.

ShipBridge will call all enabled plugins to retrieve a shipping rule for each order. The plugins will be called whenever a new order is loaded to, or refreshed in the grid, or scanned in Scan & Ship.


Writing Plugins

The ShipBridge Extensibility Framework provides the IExtensibility interface–a proxy between plugins and ShipBridge.  IExtensibility allows quick access to such features as the “grids” and other shared instances.  Plugins are essentially .NET 2.0 assemblies. See attached sample VB.NET plugin below, ShipBridge.Plugin.Sample, which you can customize.

The most important reference is ShipBridge.Extensibility, and the ShipBridge.Extensibility.dll is found in the ShipBridge application folder

  • It exposes the IPlugin interface which all plugins should implement
  • It provides access to ShipperHelper and PluginHelper which have easy-to-use properties and methods for checking orders

IPlugin and SamplePlugin

  • ID Each plugin should have a unique identifier (GUID). You can generate one from here
  • DisplayName and Version keep the Plugins window updated with relevant information
  • Handlers
    • OnConnected is called every time ShipBridge initializes the plugin. You can call any initialization code here.
    • OnOrderBeforeAddedToGrid is called immediately after a new order is received, but before any processing is made by ShipBridge itself. This is useful if a shipping method has to be selected before ShipBridge processes the order.
    • OnOrderAfterAddedToGrid is the most frequently used handler. It’s called after ShipBridge has finished processing the order and allows plugins to select a proper shipping method.
    • OnCellBeginEdit is called when the user starts making a change to a grid cell. This handler is rarely used.
    • OnCellEndEdit is called after the user makes a change to a grid cell. This handler allows you to handle any address or weight changes so that the proper shipping method is selected.

PluginHelper
provides quick access to frequently used order operations (getting or
checking the state against another value, calculating its subtotal, weight, or
checking if the order is “international,” to a military/US territory address
and so on).

Instantiating a PluginHelper is
done with a simple call by referencing the OrderData:

Dim helper As New
PluginHelper(data)

The actual change of shipping service can be
made by changing the helper.ShippingService
to a ServiceInfo instance using ServiceInfo.GetByName. You can find a
full ServiceInfo listing below. Of course, you can use any shipping rules based
on destination, order subtotal, weight, etc. Example:

‘ si keeps the original shipping service, siNew
will be the shipping

‘ rule-selected service. This is used to track
shipping service changes.

Dim si As ServiceInfo = helper.ShippingService

Dim siNew As
ServiceInfo = si

‘ If order address is POBox AND weight > 16 oz, use USPS Priority

If
helper.IsPOBox AndAlso
helper.ShippingWeightInOz > 16 Then

RuleColor = GetColor(2)

siNew =
ServiceInfo.GetByName(“USPS Priority”)

End If

‘ … process any
other shipping rules if necessary.

‘ Check if si is
different than siNew, and if so, update helper.ShippingService

‘ and return TRUE,
i.e. “service changed”

If si Is siNew Then

‘ Nothing has changed

Else

helper.ShippingService
= siNew

Return True

End
If

Notes

It’s important to skip fully shipped or “ready for pickup”
orders so that their shipping service is not altered. This can be done using the
following code as used in the sample plugin:

' Skip
FullyShipped and ReadyForPickup orders

If
helper.ShippingStatus = OrderShippingStatus.FullyShipped OrElse elper.ShippingStatus =
OrderShippingStatus.ReadyForPickup Then

Return False

End If

You can optionally skip rush or other orders by checking with the helper or another OrderData property.

‘ Leave this
uncommented if rush orders should be skipped

If
helper.RushOrder Then

Return False

End If

ServiceInfo

You can get a ServiceInfo instance of any shipping service
by calling the ServiceInfo.GetByName method
(case-insensitive). Below is a list of all names:

 

USPS
First Class

USPS
Priority

USPS
Media Mail

USPS
Parcel Post

USPS
Express

USPS
Bound Printed Matter

USPS
Library

USPS
Critical Mail

USPS
Intl Express

USPS
Intl Priority

USPS
Intl First Class

Customer
Pickup

UPS
Next Day

UPS
Next Day Early AM

UPS
Next Day Saver

UPS
2nd Day

UPS
2nd Day AM

UPS
3 Day

UPS
Ground

UPS
Freight LTL Standard

UPS
Freight LTL – Guaranteed

UPS
Worldwide Express Plus

UPS Worldwide
Express

UPS
Worldwide Express Saver

UPS
Worldwide Expedited

UPS
International Economy

UPS
International Standard

UPS
Expedited to Canada

UPS
Express Saver to Canada

UPS
Express to Canada

UPS
Express Plus to Canada

UPS
Standard to Canada

UPS
3 Day to Canada

UPS
Expedited Mail Innovations

UPS
Economy Mail Innovations

FedEx
First Overnight

FedEx
Priority Overnight

FedEx
Standard Overnight

FedEx
2Day

FedEx
2Day A.M.

FedEx
Express Saver

FedEx
1Day Freight

FedEx
2Day Freight

FedEx
3Day Freight

FedEx
Ground

FedEx
Home Delivery

FedEx
Intl Priority

FedEx
Intl Economy

FedEx
Intl Priority Freight

FedEx
Intl Economy Freight

FedEx
Intl Ground to Canada

FedEx
SmartPost Standard Mail

FedEx
SmartPost Bound Printed Matter

FedEx
SmartPost Media Mail

FedEx
SmartPost Parcel Post

 

UPS Expedited Mail Innovations is the only MI method
available to domestic (US) destinations. Similarly, UPS Economy
Mail Innovations
is only available to international destinations.

Attachments:

ShipBridge Plugin Sample.docx

Was this article helpful?

Related Articles