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
| useEmailAsPartyIdentifier | Include the customer's email as an identifier so the downstream system can match the trade account by email. |
|---|---|
| defaultCustomerId | The Party to use when an order has no identifiable customer. |
| alwaysSetDefaultCustomerId | Use the default customer for every order, regardless of the source data. |
| defaultFulfillmentLocationId | The ship-from Location for every imported order. |
| disableExpectedPayableTag | Skip the total check at import. |
| lastImportDate | The 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.
| Information | Where it lands |
|---|---|
| Requested delivery date | The 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 rep | The rep's name as the Document's salesperson, and the rep's email on a b2b-wave:sales_person_email tag. |
| Customer discount | Two 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
| useWarehouses | When 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. |
|---|
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:
useEmailAsPartyIdentifieron;defaultCustomerIdset to a "B2B Wave unmatched" Party as a safety net; the roastery asdefaultFulfillmentLocationId. - Unleashed order:
salesPersonEmailTagMapandcustomerDiscountRateTagMapadded as above, so new customers created in Unleashed pick up their rep and their discount. - Inventory: a single roastery, so
useWarehousesstays 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
salesPersonEmailTagMapandcustomerDiscountRateTagMappoint at them. useWarehousessends stock per warehouse instead of one total.
Quick guides for this topic
Your progress is saved in this browser. Create a free account to keep it everywhere, take quizzes and earn certificates.