> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://molsoft.crisp.help/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Place B2B orders at POS

**Where:** Shopify POS app → **B2B POS Orders** tile **Who:** Cashier / sales rep

This lets a cashier add a business customer to a POS cart and place an **on‑account order** that uses the company's payment terms — capturing a deposit up front when one is required, and leaving the rest to be paid later.

> 💳 **Credit limits at the register — OnAccount integration.** This tile **integrates with the OnAccount app**, leveraging the company **credit limits** you set there and applying them at the point of sale. When OnAccount is installed with limits set, the tile shows a credit summary and can require a deposit before an order is placed — see [Integrations](https://molsoft.crisp.help/en/article/integrations-dyprp1/). Without OnAccount, the tile still places orders; it just doesn't run a credit check.

---

## Before you start

* A plan is active. See [Getting started](https://molsoft.crisp.help/en/article/getting-started-molsoft-b2b-orders-for-pos-1b0jo6l/).
* Your store uses Shopify B2B with at least one company, location, and contact.
* The buyer's location has **payment terms** configured in Shopify B2B.
* *(Optional)* The **OnAccount** integration is connected if you want credit limits enforced — see [Integrations](https://molsoft.crisp.help/en/article/integrations-dyprp1/).

---

## Set it up

### Add the tile to your POS grid

1. In **Shopify admin**, go to **Point of Sale → settings → POS app** to open the **POS grid editor**. This is a one‑time, global setup — it applies to all your registers using this template.
2. Under **Page 1** (or another page), click **Add tile**.
3. Select **Embedded Apps**, then choose the **B2B POS Orders** extension.
4. Click **Save**.

![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_4jgvoq.png)
*The Point of Sale settings page, where you open the POS grid editor.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_huzipp.png)
*The POS grid editor: Add tile → Embedded Apps → B2B POS Orders.*
---

## How a cashier uses it

> 💲 **B2C vs B2B prices.** While you build the cart in the **standard POS cart**, line items show your regular **B2C prices** — the standard cart isn't B2B‑aware. The customer's **B2B prices** apply once you **open the tile**: its Summary shows the current cart priced in the **B2B customer's context**. Always confirm totals on the Summary, not the POS cart.

1. **Add a B2B customer to the cart** and add the products being ordered.
2. The **B2B POS Orders** tile updates to show what's possible:
* *No customer on the cart* → disabled.
* *Customer isn't a B2B contact* → disabled.
* *B2B customer, ready* → enabled.
* *Upgrade required* → disabled (no active plan).
3. **Tap the tile.** If the buyer belongs to more than one company or location, you'll pick the **location** first; otherwise it goes straight to the summary.
4. On the **Summary** screen, review:
* Company, location, and customer.
* Line items and totals (subtotal, discount, shipping, tax, total) — now priced for the **B2B customer**, which may differ from the standard POS cart.
* The **credit summary** (when the OnAccount integration is connected) — the limit, current balance, remaining credit, and any **required deposit**.
* Payment terms and, where applicable, the **due date** and **deposit due today**.
5. Adjust as needed:
* **Delivery method** — counter pickup, a live shipping rate, or a custom shipping line, with a shipping address.
* **Payment terms** — pick a terms template and optionally override the deposit percentage.
* **Location** — switch which location the order is for.
* **Auto‑fulfill** — for counter pickup, have the order automatically fulfilled to the POS location.
6. **Confirm.** If a deposit is required, you'll get a prompt naming the amount due today. The order is created with **no payment applied** — the balance sits on payment terms, and the deposit must be **captured manually** (see [Capturing the deposit](#2-capturing-the-deposit) below).
7. On the **Confirmation** screen, review the order name and totals, including the **deposit amount to capture**. Tap **View order** to open it, or close the modal.

![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_16mbvks.png)
*The B2B POS Orders tile on the POS home screen.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_8trs0r.png)
*Choosing a location when the buyer belongs to more than one company or location.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_164o9w6.png)
*The order Summary screen with line items, totals, and the credit summary.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_1pjqf73.png)
*The Summary screen when a deposit is required to stay within the credit limit.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_su1dck.png)
*The deposit confirmation prompt naming the amount due today.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_1nxsdod.png)
*The Confirmation screen after placing an order.*
---

## Capturing the deposit

The deposit is **not collected automatically**. When you confirm, the order is created with **no payment applied**, and the Confirmation screen shows the **amount to capture**. Collect it from the order itself:

1. On the **Confirmation** screen, tap **View order** to open the order.
2. On the order page, tap **Capture payment**.
3. Choose **Split payment**.
4. Enter the **deposit amount** shown on the Confirmation screen.
5. Take the payment.
6. Select **Mark as partially paid** — it may be hidden behind the **…** (more) button.

The remaining balance stays on the company's payment terms and is collected later, according to those terms.

![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_1as40vk.png)
*On the order, where to click to collect a payment.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_1sf8qyf.png)
*The native order page with the Capture payment action.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_h3vnao.png)
*Choosing Split payment.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_4w2z0s.png)
*Entering the deposit amount to capture.*
![](https://storage.crisp.chat/users/helpdesk/website/-/4/d/d/3/4dd3899948d8e000/image_mrcyi7.png)
*Selecting Mark as partially paid (it may be behind the … menu).*
---

## How deposits and credit work

* The order uses the location's **payment terms**: the financed balance is due later, and any **deposit** is the amount due today. The order is created with **no payment applied** — you capture the deposit manually afterward (see [Capturing the deposit](#2-capturing-the-deposit)).
* When the **OnAccount integration is connected** ([Integrations](https://molsoft.crisp.help/en/article/integrations-dyprp1/)), the Summary shows the limit, current balance, and remaining credit. If the order would go over the available credit, the tile calculates a **required deposit** — the amount that must be paid now to bring the financed balance back within the limit — and **Confirm stays blocked** until the deposit you collect covers it.
* Only the **financed** portion (total minus deposit) counts against a credit limit. A fully paid order isn't limited.
* If credit information can't be loaded, the sale **isn't blocked** — the order can still be placed, just without the credit check.

---

## Troubleshooting

| What you see | What it usually means |
| ---- |
| Tile says **"Upgrade required"** | No active plan. Subscribe on the **Plans** page. |
| Tile stays **disabled** with a B2B customer | The customer isn't recognized as a company contact, has no location, or the cart has no items. |
| Cart shows **retail (B2C) prices** | Expected — the standard POS cart isn't B2B‑aware. Open the tile; its Summary shows the cart priced for the B2B customer. |
| **"Load failed"** when opening the tile | The device may be offline or the app needs a moment. Check connectivity and try again. |
| **No credit summary / no credit check** | The OnAccount integration isn't connected (OnAccount not installed, or temporarily unreachable). See [Integrations](https://molsoft.crisp.help/en/article/integrations-dyprp1/) to enable enforcement. |
| Credit summary says **"No credit limit set"** | No limit applies for that company/location yet. Set one in OnAccount — see [Integrations](https://molsoft.crisp.help/en/article/integrations-dyprp1/). |
| **Shipping rates don't appear** | The address is missing a country/region, or no rates apply. Use counter pickup or a custom shipping line. |
| Order placed but **not fulfilled** | Auto‑fulfill was off, or the fulfillment step didn't complete. The order is still created — fulfill it manually. |