Help Center

Getting Started

WholesaleKit adds wholesale pricing, a branded buyer portal, and order management to your Shopify store. Here's how to get set up:

  1. Create a customer group — Go to Customer Groups → Create group. Give it a name (e.g. “Tier 1 Wholesale”), set an optional order minimum, and choose net terms if you're on the Professional plan or above.
  2. Add customers — From the group detail page, add existing Shopify customers or import them via CSV. Each customer receives an email invitation to set up their portal password.
  3. Set wholesale prices — Click Manage Price Rules on the group detail page. Set a wholesale price per variant, or use the discount percentage field to calculate it from the retail price. You can also import prices via CSV on the Professional plan.
  4. Share your portal link — Your buyer portal lives at wholesalekit.app/portal/your-store.myshopify.com/login. Find the exact URL on your Settings page. Share it with buyers or link to it from your website.

Customer Groups

Customer groups let you organize wholesale buyers into tiers with different pricing, order minimums, and payment terms.

  • Order minimum — The minimum dollar amount a buyer must meet before they can place an order. Leave blank for no minimum.
  • Net terms — Allow buyers to place orders now and pay later. Choose Net 15, Net 30, or Net 60. Available on the Professional plan and above.
  • Adding customers — You can add customers individually from your Shopify customer list, or import a CSV with columns for email, company name, and first/last name.
  • Removing customers — Removing a customer from a group revokes their portal access. Their Shopify customer record is not deleted.

Price Rules

Price rules define the wholesale price for each product variant within a customer group.

  • Setting prices — Enter a dollar amount in the Wholesale column, or type a discount percentage and the price is calculated automatically. Changes save when you leave the field.
  • Compare-at price — When you set a wholesale price, the retail price is stored as the compare-at price so buyers can see their savings in the portal.
  • CSV import — On the Professional plan, you can import price rules from a CSV file with columns: sku, price, and optionally compare_at_price. Use the dry-run option to preview changes before applying them.
  • Storefront display — On the Enterprise plan, wholesale prices sync to variant metafields and display on your Shopify storefront via the Wholesale Price Display theme block.

Buyer Portal

The buyer portal is a branded, password-protected storefront where your wholesale customers browse products, add items to their cart, and place orders.

  • Login — Buyers log in with the email and password they set up from their invitation email.
  • Catalog — Buyers only see products that have price rules for their group. Prices are resolved server-side so retail prices are never visible.
  • Cart & ordering — Buyers add items to their cart and must meet the group's order minimum to place an order. Orders are created with a “pending” status for you to review.
  • Branding — Customize your portal's logo and button colors on the Settings page.
  • Quick reorder — Buyers can view past orders and reorder with one click from their order history.

Orders & Net Terms

When a buyer places an order, it appears in your Orders & Payments tab with a “pending” status.

  • Approving orders — When you approve an order, a Shopify draft order is created automatically. You can then send an invoice or mark it as paid from the Shopify admin.
  • Rejecting orders — Rejected orders are marked as rejected and the buyer is notified by email.
  • Net terms tracking — For groups with net terms, WholesaleKit tracks due dates automatically. A payment reminder email is sent 3 days before the due date, and an overdue notice is sent when the payment is past due.
  • Email notifications — Control which emails are sent on the Settings page. Order confirmations are always sent to buyers.

Sales Reps

Sales reps can log in to a dedicated portal and place orders on behalf of your wholesale customers. Available on the Enterprise plan.

  • Adding a rep — Go to Sales Reps and add a rep with their name and email. They receive an invitation email to set up their password.
  • Assigning customers — Assign wholesale customers to a rep from the rep detail page. Reps can only see and place orders for their assigned customers.
  • Rep settings — On the Settings page, you can allow reps to create new customers and optionally auto-approve orders placed by reps.

Storefront Display

On the Enterprise plan, WholesaleKit can show wholesale prices directly on your Shopify storefront for logged-in wholesale customers. Retail visitors see no change.

Setup

  1. Open your theme editor (Online Store → Customize)
  2. Navigate to the product page template using the page selector at the top
  3. In the left sidebar under the product information section, click Add block and select Wholesale Price Display
  4. Drag the block to where you want the wholesale price to appear (typically just below the product title), then click Save

Block settings

  • Show compare-at price — When enabled, the retail price appears with a strikethrough next to the wholesale price so buyers can see their savings.
  • Show teaser for non-wholesale visitors — Display a message like “Wholesale pricing available” to retail visitors, with an optional link to your application form.
  • CSS selector to hide retail price — Hides the theme's built-in price element when wholesale pricing is shown. Defaults to Dawn's selector, which works with most free Shopify themes. If your theme uses a custom price element, right-click the price on your product page, choose “Inspect”, and enter a matching CSS selector. Leave blank to show both prices.

How it works

  • When you save a price rule, WholesaleKit writes the wholesale price to a metafield on each product variant.
  • When you add a customer to a group, their group ID is written to a metafield on their Shopify customer record.
  • On the storefront, the theme block reads both metafields. If the logged-in customer has a matching group, the wholesale price is displayed and the retail price is hidden.
  • Customers who are not logged in or not in a wholesale group see no change — the block is invisible to them.

Email Notifications

WholesaleKit sends transactional emails on your behalf from noreply@wholesalekit.app. You can toggle most of these on the Settings page.

Buyer Invitation

Sent when you add a customer to a group. Contains a password-setup link that expires in 7 days.

Subject: You’ve been invited to the wholesale portal

Welcome, [Company Name]! Click the button to set your password and start ordering.

Order Confirmation

Sent to the buyer when they place an order. Always enabled. Includes a line-item summary, total, and payment due date (if net terms apply).

Subject: Order [number] confirmed

Hi [Company Name], your wholesale order has been received. Includes a table of products, quantities, and prices.

Merchant New Order Alert

Sent to you when a buyer or sales rep places an order. Toggleable in Settings.

Subject: New wholesale order [number] from [Company]

Includes item count and total. Links to your dashboard to review and approve.

Order Rejection

Sent to the buyer when you reject an order. Enabled by default.

Subject: Order [number] was not approved

Notifies the buyer that their order was not approved. Includes the rejection reason if one was provided.

Payment Reminder

Sent to the buyer 3 days before their net-terms payment is due. Requires Professional plan. Toggleable in Settings.

Subject: Payment reminder for order [number]

Reminds the buyer of the due date and amount owed.

Overdue Notice

Sent to the buyer (and optionally to you) when payment is past due. Requires Professional plan. Toggleable in Settings.

Subject: Payment overdue for order [number]

Notifies the buyer that their payment was due on [date] and has not been received.

Sales Rep Invitation

Sent when you add a sales rep. Contains a password-setup link that expires in 7 days. Enterprise plan only.

Subject: You’ve been invited as a sales rep

Welcome, [Rep Name]! Click the button to set your password and start placing orders.

Frequently Asked Questions

Can my buyers see retail prices?
No. The buyer portal resolves prices server-side so buyers only see their wholesale price. Retail prices never appear in the portal UI or API responses.
What happens when I remove a customer from a group?
Their portal access is revoked immediately. They can no longer log in or place orders. Their Shopify customer record and any existing order history are not deleted.
How do I reset a buyer’s password?
Remove the customer from the group and re-add them. They will receive a new invitation email with a fresh password-setup link.
Can a customer belong to multiple groups?
No. Each customer belongs to one group at a time. If you need to move a customer to a different pricing tier, remove them from the current group and add them to the new one.
What happens when I approve an order?
A Shopify draft order is created automatically with the wholesale line items and totals. You can then send an invoice to the buyer or mark it as paid directly in the Shopify admin.
Do buyers need a Shopify account?
By default, no. Buyers log in to the WholesaleKit portal with their own email and password. On the Enterprise plan, you can optionally redirect buyers to your Shopify storefront instead, where they would use a Shopify customer account.
Can I customize the emails WholesaleKit sends?
You can toggle which emails are sent on the Settings page, but the email content is not customizable at this time. If you have specific needs, reach out to support.
How does the wholesale price display work on my storefront?
On the Enterprise plan, WholesaleKit syncs wholesale prices to variant metafields and provides a theme block to display them. See the Storefront Display section above for setup steps.
The retail price still shows alongside the wholesale price
The block includes a CSS selector setting that defaults to Dawn's price element. If your theme uses a different selector, inspect the price element on your product page (right-click the price, choose Inspect), find its ID or class, and enter a matching CSS selector in the block setting. Set it to blank to show both prices.

Need more help?

Email us at support@wholesalekit.app and we'll get back to you within one business day.