In practice · B2B

A negotiated sale stays connected from first context to fulfillment.

Follow a fictional Northline opportunity through the records that matter. The story explains source-backed behavior; labeled frames reserve the actual software evidence for the dedicated demo phase.

Story 01 · intended outcome

A reviewed quote becomes an order without losing its identity.

One fictional reference company

Northline Workshop

Northline is a synthetic industrial business used consistently across every story. It buys a configured precision actuator through a negotiated account path and offers the same product through a separately configured consumer channel. Numeric IDs below match the integer types used by the application. Human-facing references are labeled separately. No record, result or screenshot on these pages comes from a customer environment.

Lead
Northline Workshop · Avery Chen · LeadID 1042
Account
Northline Workshop Account · AccountID 220
Product
NL-ACT-240 Precision Actuator · ProductID 240 · product code NL-ACT-240
Quote / order
BasketID 7841
Consumer basket
BasketID 9108
Conversation
Avery Chen · call reference NL-C-031 · note reference NL-N-118
Change request
Northline minimum-order rule · release identity pending Phase 2

A representative can begin with customer context, link the billing account, prepare an enabled product, review a negotiated quote, convert it, take payment and verify fulfillment. These are connected operations—not one magical submit button.

Continuity
BasketID 7841 remains the identifier when the quote is finalized as an order.
Money
Payment is recorded separately from quote conversion.
Delivery
Fulfillment is checked separately; a retry resumes fulfillment and does not issue another charge.

The record path

Seven deliberate checkpoints.

  1. Qualify the lead

    Search first, then create or update LeadID 1042 with company, contact, configured source and owner. Add the conversation as a note and set a FollowUpDate when another action is expected.

  2. Create the commerce account

    Use the lead’s Create Account action to create AccountID 220. Saving a lead alone does not create a billing account.

  3. Prepare the product

    Verify ProductID 240, identified to operators by product code NL-ACT-240, is enabled, has the intended product type and initial price, and that its fulfillment behavior is understood.

  4. Build the quote

    Select Northline Workshop Account, add the assembly, quantity and negotiated unit price, then record BasketID 7841.

  5. Review before conversion

    Check items, discounts, tax, shipping, total and separately saved notes. Conversion finalizes the same basket; it does not collect money.

  6. Collect payment

    Open checkout for BasketID 7841, confirm the configured processor or manual method and inspect the resulting payment record once.

  7. Verify fulfillment

    Read paid and fulfilled outcomes independently. If paid but unfinished, investigate the fulfillment error and use Retry Fulfillment rather than submitting another payment.

published proofNorthline lead detail showing Avery Chen, Jordan Lee and the linked commerce account.
Verified Northline lead context and linked commerce account.Synthetic Northline fixture evidence; no customer message or live record was used.Runtime evidence northline-launch-proof-2026-09-16 · northline-proof-checkpoint-2026-09-16
published proofNorthline quote showing the negotiated total and conversion to the same finalized BasketID.
Verified Northline quote before and after conversion to an unpaid order.Quote 12 became the same finalized basket with a $581.50 unpaid balance; conversion is not payment.Runtime evidence northline-launch-proof-2026-09-16 · northline-proof-checkpoint-2026-09-16
published proofNorthline basket showing amount paid, zero balance and a distinct fulfillment state.
Verified Northline payment ledger and separate fulfillment state.Local manual ledger proof only—not an external processor charge or physical shipment. A fulfillment retry must not submit another charge.Runtime evidence northline-launch-proof-2026-09-16 · northline-proof-checkpoint-2026-09-16

Exceptions are part of the workflow

What the operator does when the happy path stops.

Account absent from quote search

Verify it was created from the lead and is enabled; do not create an unlinked duplicate merely to proceed.

Product absent

Check Enabled, product type and configuration before adding another SKU.

Delayed payment response

Do not assume failure and resubmit. Reconcile payment history and the current basket balance.

Paid but unfinished

Preserve the paid state, inspect the fulfillment error and retry fulfillment without another charge.

Technical evaluator

A real commerce API contract, with its ownership boundaries.

Commerce checkout is an authenticated Feeding Frenzy business route.

The generated JsonWs client calls /api/feedingfrenzy.admin.business/commerce-basket-operations/checkout-with-opaque-data. It accepts the exact fields below and returns BasketCheckoutResult. Authentication and installation URL are deployment concerns; they are intentionally not invented here.

Source-derived proposed sample request

{
  "BasketID": 7841,
  "PaymentProcessorID": 12,
  "DataDescriptor": "opaqueDataDescriptor",
  "DataValue": "opaqueDataValue",
  "SavePaymentMethod": false,
  "IdempotencyKey": "northline-basket-7841-attempt-01",
  "BillingFirstName": "Avery",
  "BillingLastName": "Chen",
  "BillingZip": "00000"
}

Source-shaped success response

{
  "IsSuccessful": true,
  "BasketID": 7841,
  "Status": "Paid",
  "Total": 250.00,
  "TransactionID": "demo-transaction-id",
  "MaskedPaymentMethod": "****1111",
  "Code": null,
  "Message": null
}

Proposed, unrun sample: field names and result shape are source-derived; IDs, token values, amount, transaction and masked card are fictional Northline placeholders. This sample was not runtime-executed and is not evidence of a configured processor.

Error semantics

Invalid state fails explicitly: basket not found; voided, deleted or unfinalized basket; no billable total; missing idempotency key; or missing, disabled or wrong-provider processor. If payment succeeded but fulfillment failed, the typed result can be IsSuccessful: false, Status: "Paid", Code: "FULFILLMENT_PENDING", with the exception text in Message. Reconcile that paid basket and retry fulfillment; do not submit another charge.

IntegrationSystem of recordDirectionTriggerIdentity mappingRetry / error behaviorConfiguration owner
Checkout caller → Feeding FrenzyFeeding Frenzy basket and payment recordsInbound authenticated business requestExplicit checkout after quote finalizationBasketID, AccountID, PaymentProcessorID and IdempotencyKeyValidate state; reconcile the basket/payment attempt before retryInstallation delivery team; caller credentials owned by the integrating party
Feeding Frenzy → payment processorProvider transaction; Feeding Frenzy basket/payment recordOutbound charge/profile operationAccepted checkout requestTransaction/profile IDs mapped to basket and payment attemptIdempotency and paid-state checks prevent a blind second chargeInstallation owner and payment-provider account owner
Feeding Frenzy → fulfillment/subscription processorFeeding Frenzy basket; external subscription where configuredOutbound after successful paymentSuccessful payment completionBasketID, product renewal and external subscription/profile IDsFULFILLMENT_PENDING; Retry Fulfillment without rechargingInstallation delivery team and external-provider account owner

Source anchors: FeedingFrenzy.Admin.Business/CommerceBasketOperations.cs · generated CommerceBasketOperations.ashx.js and metadata JSON · FeedingFrenzy.Commerce/Services/BasketCheckoutService.cs.

Evidence boundary

What is proven now—and what is not.