Tom Sailors
Brief · Anonymized case study

Shop Pay Installments: B2B and High-Value Order Control

I'd use a Payment Customization Function to enforce the rule at checkout, then layer in a disclosure badge so customers understand why installments aren't available. To keep the system clean, I'd add Shopify Flow to auto-tag incoming B2B customers, and finally expose a simple dashboard query so the merchant can audit their rules and catch edge cases.

A mid-market merchant offering both DTC and B2B channels needed to selectively disable Shop Pay Installments at checkout: for wholesale customers (tagged as B2B) and for orders exceeding $5,000. The challenge was implementing this control reliably across the payment stack without blocking legitimate transactions.
Four pieces
Checkout

Installments Block Function

Disables Shop Pay Installments at checkout if the customer is tagged B2B or if the cart total exceeds $5,000.

Shopify Function (Payment Customization)
Storefront

Checkout Disclosure Badge

Shows a small message at checkout if Shop Pay Installments is disabled, so B2B or high-value buyers understand why the option is unavailable.

Theme extension (Checkout UI)
theme/snippets/installment-disclosure.liquid liquid
{% if customer and customer.tags contains 'b2b' %}
  <div style="padding: 12px; margin: 12px 0; border-left: 3px solid #999; background: #f9f9f9; font-size: 13px; color: #666;">
    <strong>B2B Account:</strong> Installment payment options are not available for wholesale orders.
  </div>
{% elsif cart.total_price > 500000 %}
  <div style="padding: 12px; margin: 12px 0; border-left: 3px solid #999; background: #f9f9f9; font-size: 13px; color: #666;">
    <strong>Large Order:</strong> Installment payment options are not available for orders over $5,000.
  </div>
{% endif %}
Insert this into your checkout.liquid or payment methods section. Price is in cents (500000 = $5,000).
B2B / Wholesale

B2B Customer Tagger

Automatically tags new wholesale customers with 'b2b' when they create an account through your B2B portal or when manually marked by staff.

Shopify Flow
Shopify Flow editor: When → Then flow
Trigger: Customer created OR Customer updated (via B2B portal signup)
Condition: customer.note contains "wholesale" OR customer has metafield company_id (indicates B2B)
Action 1: Add tag "b2b" to customer
Action 2: Send confirmation email to merchant (optional: notify fulfillment that this is a wholesale order)
Adjust the condition to match how you identify B2B customers in your store (company ID, sales channel, note field, custom metafield).
Operations

Payment Rules Dashboard

A simple reference showing all customers tagged 'b2b' and flagging recent high-value orders, so you can spot rule mismatches or edge cases.

Admin dashboard (custom app or report export)
Admin GraphQL explorer graphql
# Admin GraphQL — fetch B2B customers and their order history
query B2BCustomerReport {
  customers(first: 50, query: "tag:b2b") {
    edges {
      node {
        id
        firstName
        lastName
        email
        tags
        orders(first: 3, sortKey: CREATED_AT, reverse: true) {
          edges {
            node {
              id
              name
              totalPriceSet {
                shopMoney {
                  amount
                }
              }
              createdAt
            }
          }
        }
      }
    }
  }
}
Run this to see all b2b-tagged customers and their last three orders; cross-check for any orders that should have been blocked.

Got a similar problem?

Sketch your build in 30 seconds — voice, type, or attach a screenshot.

Sketch the build →