Brightpearl Standard Integration Run and Mappings
Overview
This article shows the different mappings used in Brightpearl integration for Warehouse Manager.
Run and Mappings
Contacts
VendorName |
contact.organisation.name ?? “contact.firstName + Contact.lastName” |
ContactFirstName |
contact.firstName |
ContactLastName |
contact.lastName |
Address |
addressLine1 += addressLine2 |
City |
addressLine3 |
StateOrProvince |
addressLine4 |
PostalCode |
postalCode |
Country |
countryIsoCode |
PhoneNumber |
contact.communication.telephones.PRI; or contact.communication.telephones.SEC; or contact.communication.telephones.MOB |
Products
Products in Brightpearl become Parts in WM (which are later defined as Items, Assets, or Lots)
Products sync on the following criteria:
- They have a productStatus of LIVE
- They are stockTracked
- They’ve been updated or created since the last start date
PartName |
Part.Identity.SKU |
PartDescription |
Part.BrightpearlSalesChannel.ProductName |
Custom5 |
BrandName |
Other Part Custom Fields (Not Generalized) |
Have been hard coded for several customers based on paid requests. |
ShippingWeight
|
Part.Stock.Weight.Magnitude
|
Cost
|
We use the Cost (see definition) code above to pull price lists from Brightpearl. We then use the productCost of this SKU as listed in the pricebook. |
Inventory
Compares WM On Hand + Allocated Inventory against BP’s ‘In stock’ inventory for each SKU. ie. BP’s other fields, allocated, on hand, and on order, are irrelevant to WM.
The customer can select which warehouses they choose to use in WM. All BP warehouses of type ‘warehouse’ are available within WM.
We use the ‘stock correction’ object in Brightpearl to adjust the inventory up or down. A little ‘i’ symbol will appear when the integration makes this adjustment stating: “TopShelf: Remove stock from warehouse” (or add stock to the warehouse)
Locations
Non-warehouse locations are upserted at the time of upserting the order.
As Sales Documents (GONs & TOs)
LocationName |
delivery.companyName, |
ContactName |
order.delivery.AddressFullName |
ContactPhone |
delivery.telephone |
Address1 |
delivery.addressLine1 |
Address2 |
delivery.addressLine2 |
City |
delivery.addressLine3 |
State |
delivery.addressLine4 |
Zip |
delivery.addressLine5 |
CountryCode |
delivery.country |
As Receiving Documents (POs & SCs)
LocationName |
customer.companyName, but if null delivery.addressFullName |
ContactName |
order.customer.AddressFullName |
ContactPhone |
customer.telephone |
Address1 |
customer.addressLine1 |
Address2 |
customer.addressLine2 |
City |
customer.addressLine3 |
State |
customer.addressLine4 |
Zip |
customer.addressLine5 |
CountryCode |
customer.country |
Purchase Orders & Sales Credits
Pulls POs on the following Criteria:
- orderTypeCode = “PO”
- order is not a ‘dropship’ order
- orderStatus is not “pending po” (any other status will drop)
- order has a party called “supplier”
Pulls Sales Credits (SCs) on the following Criteria:
- orderTypeCode = “SC”
- order has a party called “customer”
The integration checks for receiving order lines that have been deleted in Brightpearl and attempt to delete them in WM. If the line has already been received in WM, a message is sent to the bell in the unlimited console saying they need to unreceive to match their BP changes.
DocumentNumber |
license.POPrefix (or license.SCPrefix) + order.ID |
VendorName |
Attempts to grab the WM vendor associated with either the “supplier” contact party if a PO or the “customer” contact party if an SC. If the vendor related tois hard-coded the contact doesn’t exist in WM, we use the “Default” vendor in WM. |
FromLocationName |
POs: null SCs: companyName |
FromAccountNumber |
POs: null SCs: “BP-” + LicenseInfoID + “-” + contactID |
ToLocationName |
BP Warehouse Name |
ToAccountNumber |
license.CompanyAccountNumber |
CustomerPO |
null by default, some customers use hard coded custom fields here. |
Notes |
Null |
TransactionPrefix |
The chosen prefix entered at integrations.scoutsft.com |
IntegrationDoc |
Brightpearl orderId |
IntegrationSource |
license.integrationSource |
ShipDate |
Null |
MasterDocNumber |
null or order.reference via setting |
PartName |
product.Identity.sku |
QTY |
row.value.quantity.magnitude |
UnitPrice |
item.cost |
Sync Goods-Out-Notes
Searches BP for GONs based on whether or not the shipped Status has occurred on them.
We have hard-coded custom fields for several customers over the years, this requires extra requests and would require custom work for us to process them.
DocumentNumber |
license.OrderPrefix + orderID Prefixes are changeable at integrations.scoutsft.com |
ToLocationName |
order.delivery.companyName or deliver.addressFullName if the prior is null |
FromLocationName |
gon.Value.warehouseName |
FromAccountNumber |
license.CompanyAccountNumber |
CustomerPO |
order.reference |
Notes |
string.empty |
ShippingType |
gon.ShippingType.name |
TransactionPrefix |
Prefixes are changeable at integrations.scoutsft.com |
ShipDate |
null without custom work |
MasterDocNumber |
empty unless using setting bpUseReferenceAsMasterDoc |
ShippingPaid |
null unless using setting bpShippingPaidType |
Tax |
order.totalValue.taxAmount |
MarketplaceName |
Order.Channel.Name |
HoldForPick |
false by default, can have custom work to set via custom fields in bp |
HoldForPickDate |
null by default, can have custom work to set via custom fields in bp |
PartName |
product.Identity.sku |
QTY |
row.value.quantity.magnitude |
UnitPrice |
orderRow.rowValue.rowNet (see setting bpUseItemCostOrProductPriceForDDLine for other option) |
Custom1 |
Default: orderRow.productName For other options see Settings useDDcustomFieldsForKitParents |
Custom2 |
Null For other options see Settings useDDcustomFieldsForKitParents |
SyncPartialFulfillments (if allowPartialFulfillments)
If the Setting is enabled, we delete existing BP GONs and recreate them to match what they are able to ‘partially fulfill’.
In WM the order must be split to a backorder, this will delete the existing GON and recreate two GONs in BP, 1 for the lines fulfilled, and 1 that is to be fulfilled later or deleted.
Create Goods-In-Notes
Syncs received orders from WM to BP.
Orders can be received incomplete or complete, and can travel in multiple groups based on when an item is received.
A common error occurs when customers try to add a SKU to the PO or SC in WM. See Common Errors.
Sync Order Statuses
Updates BP’s Order-Level statuses to match those in integrations.scoutsft.com based on WM progress.
See Details.Statuses
Handle GON Statuses
Sync GON Statuses based on Shipping Direction
See Details.Statuses
Sync Tracking
If shipping direction is WM → BP
We sync tracking numbers and push the GON level statuses all the way to ship based on the order being ‘Shipped Complete’ in WM and having a carton with a tracking number.
Pull Shipped GONs from BP (if bpMarkAsShippedInBothSystems)
We pull shipment GONs and update the status in WM accordingly.
Sync Transfer Orders
The default workflow for Transfer Orders (TOs) creates two types of orders: a TO, and a TOR (Transfer Order Receiving). The workflow occurs like such.
Virtual Transfer workflow is less complicated as only one transaction is created. See BPAllowVirtualTransfers under Settings