Supply Lens

Set up B2B Wave

Lesson 10 of 30 8 min read

Import B2B Wave wholesale orders, understand the delivery date, sales rep and discount information they carry, and send stock by warehouse.

B2B Wave is a wholesale ordering portal: trade customers log in, see their prices and place orders. That makes it different from a consumer shop. Every order belongs to a known account, often has a requested delivery date and a sales rep, and has the customer's trade discount already applied. The connector carries all of that through, mostly without configuration, so the skill is knowing what arrives and how to use it.

By the end of this lesson you'll be able to configure B2B Wave orders and stock, and wire its sales rep and discount tags into Unleashed.

Orders: the settings

useEmailAsPartyIdentifierInclude the customer's email as an identifier so the downstream system can match the trade account by email.
defaultCustomerIdThe Party to use when an order has no identifiable customer.
alwaysSetDefaultCustomerIdUse the default customer for every order, regardless of the source data.
defaultFulfillmentLocationIdThe ship-from Location for every imported order.
disableExpectedPayableTagSkip the total check at import.
lastImportDateThe import watermark: only orders modified after it are fetched. Managed by the system.

For a wholesale portal, you'll almost always want customers matched individually, so leave alwaysSetDefaultCustomerId off.

What an imported order carries without configuration

Three things arrive on every order with no settings at all. A target Integration may be looking for them.

InformationWhere it lands
Requested delivery dateThe Document's requested ship date. It's read in the time offset B2B Wave sent it in, not converted to UTC, so "the 2nd" stays the 2nd wherever the order was placed. No date on the order means the field is left empty.
Sales repThe rep's name as the Document's salesperson, and the rep's email on a b2b-wave:sales_person_email tag.
Customer discountTwo tags: b2b-wave:customer_discount_percentage (for example 20.0) and b2b-wave:customer_discount_rate (for example 0.2). Written even when the discount is zero.

Why the sales rep travels twice

A name has to match exactly at the far end, and it's free text in both systems. An email survives a rename or a spelling difference. When the target resolves a salesperson, prefer the email.

Why the discount travels twice

Some systems want a percentage, others a rate. Given only 1.0, you can't tell which it is. With both tags present, each target takes the one its field wants and nobody converts.

The discount is already applied

B2B Wave applies the discount to the order lines before Supply Lens sees them. The discount tags are not a discount still to be taken off. They exist so a target system can store the rate against its own customer record.

Wiring the tags into Unleashed

Unleashed's order Configuration doesn't read these tags until you point it at them:

"salesPersonEmailTagMap": {
  "items": [
    { "source": "b2b-wave", "key": "sales_person_email" }
  ]
}
"customerDiscountRateTagMap": {
  "items": [
    { "source": "b2b-wave", "key": "customer_discount_rate" }
  ]
}

Neither entry has data, so each passes the tag's own value through. Unleashed's discount field wants a rate between 0 and 1, which is why the map reads customer_discount_rate, not the percentage.

Inventory

useWarehousesWhen on, the stock file sent to B2B Wave breaks quantities down by warehouse. When off (the default), a single total across all Locations is sent.
Rendering diagram...

Hilltop Coffee's café accounts

Hilltop Coffee's café customers order beans through B2B Wave. Each café gets 10% or 15% off and has a named account manager.

  • Order: useEmailAsPartyIdentifier on; defaultCustomerId set to a "B2B Wave unmatched" Party as a safety net; the roastery as defaultFulfillmentLocationId.
  • Unleashed order: salesPersonEmailTagMap and customerDiscountRateTagMap added as above, so new customers created in Unleashed pick up their rep and their discount.
  • Inventory: a single roastery, so useWarehouses stays off.

A café orders for delivery on Friday the 6th. The Unleashed order shows Friday the 6th as the required date, the rep is matched by email, and the line prices already include the 15%.

Recap

  • B2B Wave orders carry a requested delivery date, a sales rep and the customer's discount with no configuration.
  • The rep travels as a name and an email tag; prefer the email.
  • The discount travels as a percentage tag and a rate tag; it's already applied to the lines.
  • Unleashed reads the tags only once salesPersonEmailTagMap and customerDiscountRateTagMap point at them.
  • useWarehouses sends stock per warehouse instead of one total.
Complete and take the quiz

Your progress is saved in this browser. Create a free account to keep it everywhere, take quizzes and earn certificates.