Skip to content

Customer Catalog and Cart ​

Your customers don't have to wait for you to reorder something for them. Once they have portal access, they can browse your full catalog, build a cart, and place an order themselves — priced at their own rate, with the same checks your order screen already applies.

This builds directly on the Customer Portal — everything there about invitations, sign-in and what a customer can and can't see still applies. This article covers the Catalog tab specifically.


What shows up in the catalog ​

A product appears in a customer's catalog when it's both active and visible in the portal. Visibility is a checkbox on the product's edit screen — Visible in customer portal catalog — and it's set sensibly by default so you rarely have to touch it:

ProductVisible by default?
An active finished good, or a product marked "both"Yes
A raw ingredient or a supplyNo
An inactive product, of any kindNo

The reasoning: a raw ingredient is something you buy, not something a customer orders — it has no business showing up in their catalog even if it's technically sellable. Uncheck the box on any product you don't want a customer to be able to order, whatever its type.

Every customer sees the same catalog. There's no way yet to hide a product from one customer while showing it to another — see What's not here yet below.


Browsing ​

The Catalog page has a search box (name, SKU or brand), a category filter, and an "In stock only" checkbox. All three run against your full catalog on the server, so a customer searching page 3 of a thousand products gets the same results you'd get searching that many yourself — nothing is filtered on a page that's already been narrowed down.

Each product card shows:

  • Price, at that customer's own rate — the identical price list, tiers and volume breaks your order screen resolves against. See Wholesale Pricing, Groups and Discounts for how those are set up. If a customer has a negotiated price of their own, that's what they see — never a generic one.
  • Stock status — In stock, Low stock, or Out of stock. Never an exact count, the same rule the Products list itself follows.
  • A minimum order quantity, if the product has one.
  • A promotion badge, if a supplier-funded promotion currently applies — see Supplier-Funded Promotions.

An out-of-stock product can still be viewed, just not added to the cart.


The cart ​

The cart lives on your server, not in the customer's browser. Add an item on a phone at lunch, and it's still there that evening on a laptop — there's nothing to lose by switching devices or closing a tab.

Adding, changing a quantity, or removing a line all happen immediately — there's no separate "save" step, and no way for the cart on screen to disagree with what's actually stored.


Placing the order ​

A cart is not an order until checkout runs. While a customer is still adding things to it, nothing about it exists anywhere you'd see it — it doesn't show up as a draft, and it never appears on your "needs your attention" list. The moment they check out, it becomes a real draft sales order, exactly the way a reorder does today, and everything that already applies to a portal order applies here too:

  • Sales tax is worked out from your rate
  • They must have approved credit terms — without them, checkout is refused and the customer is offered a way to request terms instead
  • Their credit limit is checked, and checkout is refused if it would go over — shown to the customer right there, not discovered later
  • A line below a product's minimum order quantity is refused the same way
  • Nothing ships or is committed until you confirm the order

If checkout is refused, the cart is left exactly as it was — nothing is lost, and the customer can adjust quantities and try again.


Local delivery at checkout ​

If you have the Local Delivery add-on and deliver to the customer's address, the cart gets a Delivery section. What it offers depends on how you've set the customer portal on Delivery channels:

Portal settingWhat the customer sees
Customer decides (the default)A choice between Local delivery and Ship it, then a window or day to deliver in
All in-zone ordersNo choice — it's going on a route — just the window or day. If they don't pick one, the next open one is assigned
OffNothing. The cart looks exactly as it did before

The address is the one on the customer's contact record. An address outside all your delivery zones sees a short note saying the order will ship.

Windows or days ​

  • Retail customers pick a delivery window, such as "Thu, Oct 8 · 2:00 – 6:00 PM", shown in your time zone.
  • Wholesale customers pick a delivery day. If the account has standing delivery days, only those days are offered.

This follows the timing settings on Local delivery settings, the same ones your order screen uses. Customers never see how full a window is: that would tell them about other customers' orders.

The fee, free delivery and the minimum ​

The cart shows the delivery fee from your delivery fee rules — your default, the zone's, or the account's own — and adds it to the total.

  • Free delivery. When you've set a free-delivery amount, the cart says how far away it is: "Add $10.00 more for free delivery." Once the order gets there, the fee drops to free.
  • The minimum. Below your minimum order for delivery, Local delivery can't be picked and the cart says how much more is needed. Shipping is still available.

⚠️ The fee in the cart is the fee on the order. Iraca works it out from the cart priced exactly as checkout will price it, promotions included, and in the window the customer picked (a window can belong to a zone with its own fee). So a customer is never promised free delivery that then turns up as a charge.

When a window fills up ​

Someone else can take the last place in a window between the customer looking at it and pressing Place order. When that happens, checkout is refused and the cart is left as it was. The customer sees "That delivery window just filled up", with the next open window and a Choose it button. The windows list refreshes at the same time.

After the order ​

The customer's order page shows the delivery window or day. Once the route is dispatched, a Track delivery button opens the tracking page, where they can follow the van.


ASAP delivery ​

If the business offers it, the delivery section also shows ASAP: out today, with its own fee. Choosing it means there's no window or day to pick, and the business's drivers are asked to take your order as soon as it's confirmed. If ASAP stops being available while your cart is open (for example, the last driver goes off shift), checkout tells you and keeps your cart so you can pick a window instead. See ASAP delivery.

Suggested for you ​

Above the catalog grid, a customer with a clear buying pattern sees a short row of products picked out for them — usually something they order often, occasionally something other customers often buy alongside it. It's computed overnight from your own order history, costs nothing extra, and needs no setup on your part.

A new customer, or one who hasn't ordered enough yet, simply sees no rail at all — there's no "nothing to suggest yet" placeholder taking up space.


Installable, too ​

Like Fulfillment Mode, the customer catalog can be installed to a phone's home screen — but as its own icon, under your business name and logo, not Iraca's. A customer who orders from you regularly can tap straight into your catalog the same way they'd open any other app.


What's not here yet ​

  • No per-customer catalog. Every wholesale customer with portal access sees the identical set of visible products — there's no way to show an exclusive line to one customer only.
  • No "order N more to unlock a discount" nudge. The price shown is the one that applies right now; Iraca doesn't yet hint at a volume break one step away.
  • Promotions don't stack with each other. If more than one could apply to a product, the most specific one wins — see Supplier-Funded Promotions.

This guide covers the Iraca app and its add-ons. The Iraca Marketplace is documented separately.