Deliver Guide
Products, services, customers, and sales transactions
How to sell products in Ardent Seller
Build a catalog of products (with variants and pricing tiers) and services, add customers, then record a sale by selecting customer, items, quantities, and method — Ardent Seller decrements inventory at weighted-average cost and posts the COGS automatically, and you can generate a PDF invoice on demand. You can also capture sales by photo with Snap a Sale or import them automatically from a connected Etsy shop.
Products
Navigate to Deliver → Products to manage items you sell to customers.
Core Fields
Name
The product name as displayed to customers and in your catalog.
SKU
Unique stock keeping unit identifier. Auto-generate or enter your own.
Description
Product description, up to 2,048 characters.
Product Type
Food or Other. It decides whether the cottage food label, the allergen declaration, the pre-print allergen check, and the nutrition panel apply. You choose it when you create the product (in the create sheet or on the Basics step of New Product Setup); nothing is preselected. A product imported without a type shows Not set until a recipe or production run with ingredients is saved for it, which sets it to Food if the recipe uses a Food-tagged ingredient and Other otherwise. Setting it to Food tags every ingredient or material in its recipe (including those inside subassemblies) Food automatically, with a notice. Packaging, labor, and subassemblies themselves are not tagged, and neither are maintenance, repair, and operations (MRO) supplies. Changing the type never removes tags on its own; going from Food to Other offers to remove Food from ingredients no other Food product uses.
State
Draft, Active, or Archived. Only active products appear in sale item selection.
Retail Price
The base selling price. Can be overridden per variant or by pricing tiers.
Tracking Unit
The unit used to track inventory (e.g., pieces, kg, dozen).
Photos
Up to 20 product photos. Thumbnails display in the list view.
Bin Location
Physical storage location identifier.
Replenish Point
Stock level that triggers a low stock alert.
Replenish Quantity
Standard quantity to replenish.
Variants
Products can have multiple variants representing different sizes, colors, flavors, or configurations. Each variant has its own SKU, optional price override (if different from the base product price), and can carry custom attributes defined in Settings → Attributes. Variants appear as expandable sub-rows in the product list. Each variant tracks its own quantity and cost independently.
Made to Order
A product or service you make after each order (custom apparel, personalized gifts) can be marked Made to order: each completed sale then makes it from its recipe and records the real cost of goods. See the Made to Order guide.
Custom Attributes
Attributes are custom fields you define in Settings → Attributes (e.g., "Size", "Color", "Scent"). Once defined, you can assign attribute values to both the base product and to individual variants. This helps organize and filter your catalog.
AI Listing Copy
A product's detail sheet includes a Listing Copy panel with a Generate Listing Copy button that drafts a marketplace-ready title, description, and tags from the product's own details — you review and edit before saving anything. See the AI Listing Copywriter guide for how it works and what it costs.
Product Type
Products and finished goods carry a product type: Food or Other. You choose it when you create the item or set it up in New Product Setup — nothing is preselected. Ardent Seller no longer guesses whether something is food from its ingredients, so an oat-and-honey soap set to Other is never offered a cottage food label. Creating products from marketplace listings first asks whether they're food ("Is this product food?", or "Are these products food?" for several), and a new product line in an AI invoice import needs a type before you can save. A product brought in without a type (for example, a CSV import with no ProductType) shows Not set until a recipe or production run with ingredients is saved for it; it then becomes Food if its recipe uses a Food-tagged ingredient and Other otherwise. The inventory list has a product type column and filter. Products that existed before product types were added became Food if their recipe used a food item and Other otherwise — that guess can be wrong, so check your product types. In the item's history, a type set that way shows as set by an Ardent Seller update. The Check your product types notice on the inventory lists stays until you change each guessed type or choose Done reviewing.
Changing the type on a saved product shows what the save will do. Going from Other to Food names the recipe's ingredients that aren't tagged Food yet, for example "Saving will tag Flour, Sugar and Butter as Food. Open each one to set its allergens if they aren't set yet." Going from Food to Other shows "This product will no longer get allergen checks or a cottage food label."
To fix many at once, select the products and finished goods in the list and choose Product type → Set to Food or Set to Other. Each item's change is recorded in its history. Setting products to Food tags the ingredients in their recipes Food, as it does for a single product. When a product goes from Food to Other, Ardent Seller offers to remove Food from the ingredients that no other Food product uses; an ingredient that still goes into a Food product keeps its tag.
Food Product Allergens
A product whose product type is Food takes its allergens from its recipe's ingredients. Its detail sheet lists them under From ingredients and warns when any ingredient in the recipe has allergens not set (see Allergen Status in the Source guide).
The sheet also names any packaging, labor, equipment, MRO or service item in the recipe that carries an allergen or has a recipe of its own, since those allergens never print. When such an allergen is not declared anywhere else on the product, the note opens with a sentence naming the allergen that won't print on labels or recipe PDFs: remove the allergen from that item if it was typed by mistake, or change the item's category if it is really food.
Allergens typed on the product itself are kept and shown separately under Added by you. They still print on the cottage food label together with the ingredients' allergens, so use Remove on any that don't apply. If an item that was confirmed as containing none of the major allergens later becomes the target of a recipe, the confirmation is cleared and its status goes back to Not set.
A Food product you buy in and resell, with no recipe, has its own editable Allergens field and allergen status.
Cottage Food Labels
For a product or finished good whose product type is Food, the row's ⋯ menu and the item's detail view offer Cottage Food Label. The label pulls your operator details from Settings → Cottage Food and the ingredients, allergens, net weight, and lot code from the product and its recipe. State-by-state disclosure rules are on the cottage food hub.
Before the label can be downloaded or printed, Ardent Seller checks every ingredient in the recipe — including those inside subassemblies — and lists any whose allergens are not set. Each one links to the item, and the list suggests likely allergens from the ingredient names, for example "their names suggest Milk, Tree Nuts (Pecans), Wheat". Download PDF and Print stay locked until you tick I've checked these — print anyway; that confirmation is recorded in the audit trail. When every ingredient has its allergens set and the recipe is small enough to check completely, there is no check to pass.
No suggestion does not mean an ingredient is allergen-free. Suggestions only read the ingredient's name, so an item named "Chocolate Chips" can still contain milk or soy. The reliable fix is to open each listed ingredient and set its allergens from the package's "Contains" line, or confirm it contains none. The same check runs before a recipe PDF is printed for an item whose product type is Food (see Recipes).
The label's Contains line lists the allergens set anywhere in the recipe — on its direct ingredients, on subassemblies, and on the ingredients inside each subassembly's own recipe — plus any you set on the product itself.
Allergens on packaging, labor, equipment, MRO or service lines are never dropped silently. Those lines are left out at every level, just as they are left out of the ingredient list, so an allergen set on a bag or a box never prints. Instead the label dialog shows a warning that names the item and the allergen, linked to the item, so you can remove the allergen if it was typed by mistake, or change the item's category if it is really food. The same warning appears when such an item has a recipe of its own, since nothing inside that recipe is checked.
Packaging, labor, equipment, MRO or service lines can also hold up printing. If an allergen set only on one of those lines is not declared anywhere else on a Food product, printing needs the confirmation too, and the item is named in the check above Download PDF and Print, in place of the warning. When some ingredients have allergens not set as well, the confirmation reads I've checked these ingredients and the skipped allergens — print anyway.
With a lot selected, the recipe's direct ingredients come from that production run, but ingredients inside a subassembly follow the subassembly's current recipe. If a subassembly's recipe changed after that lot was made, or a recipe is too large to check every sub-recipe, the label dialog warns you before you print; check the Allergen statement against what that batch used. When the recipe is too large, the check also says Check the allergens of the deeper sub-recipes by hand before printing. A recipe that is too large needs the confirmation even when no ingredient is missing its allergens; the box then reads I've checked the allergens — print anyway.
Barcodes & QR Codes
Products (and all inventory items) can generate barcodes and QR codes from their SKU. The barcode format is set in Settings → Preferences and can be: Code 39, Code 93, Code 128, UPC-A, EAN-8, EAN-13, or ITF-14. A QR code is always generated alongside it. Both codes contain the SKU itself rather than a link, so a USB or Bluetooth scanner in keyboard mode can scan a label into the inventory search box to find the item. Barcodes are displayed in the detail sheet and can be printed for labeling.
Pricing Tiers
Pricing tiers are formula-based pricing configurations defined in Settings → Pricing Tiers. There are two types:
- Markup over Cost — calculates selling price as a percentage or fixed markup on the item's cost (e.g., "Cost + 50%")
- Adjustment from Retail — adjusts the base retail price by a fixed or percentage amount (e.g., "Retail - $5" for wholesale)
Assign a default pricing tier to a customer in their entity record. When you create a sale for that customer, their tier pricing is automatically applied to all items. You can also override the pricing tier on individual sales. In the sale detail, each line item shows a pricing panel with the item's average cost and retail price; when a tier applies, the tier name and formula appear with the calculated price, and a manually overridden price is flagged as Manually adjusted.
Price Lists (exact per-product prices)
Tiers apply one formula to every product. When a customer's prices are negotiated product by product — "Product A is $5, Product B is $12" — create a price list in Settings → Price Lists instead. A price list is a named set of fixed per-product prices; because lists are named, the same tool covers any arrangement — a separate list per wholesale account, plus "Family", "VIP", and so on. Assign a list to a customer in their entity record (Sales Settings → Price List, next to Default Pricing Tier), or to a whole customer group in the group editor — members without their own list inherit the group's list, and a customer's own list always wins over the group's. On a new sale to a covered customer, each line's price auto-fills from the list and the pricing panel shows the list name as the source ("(price list)" for the customer's own list, "(group price list)" when inherited). The price stays fully editable per line, and since invoices reflect the recorded line prices, the list price appears on the customer's invoice automatically. Precedence: customer's price list → group's price list → pricing tier → retail price — products not in the list fall back to the tier (if any) or the retail price. Deleting a list simply unassigns it from every customer and group; recorded sales are never changed. To fill a list quickly, use Add all products (prefills retail prices) or Import CSV in the list editor — two columns are enough (a product SKU or exact name, and a price); rows for products already on the list update their price, and unmatched rows are reported, never silently dropped.
Services
Navigate to Deliver → Services to manage non-physical services you offer.
Fields
Name
The service name (e.g., "Custom Decoration", "Gift Wrapping", "Design Consultation").
SKU
Unique identifier for this service.
Description
Description of what this service includes.
State
Draft, Active, or Archived.
Price
Rate per unit of time (e.g., per hour, per session).
Unit
Time-based unit (hours, minutes, or days), or Unit for per-credit or per-session pricing.
Services are offerings charged by time or by unit that are not physically inventoried. Choose Unit for per-credit or per-session pricing, with one unit representing one credit or session. They can be sold to customers and included in sales transactions but cannot be used as recipe ingredients or purchased from vendors.
Customers
Navigate to Deliver → Customers to manage your customer relationships.
Fields
Name
Customer or business name.
State
Draft, Active, or Archived.
First Name / Last Name
Contact person name.
Customer email for invoices and communication.
Phone
Customer phone number.
Website
Customer website URL.
Address
Full mailing address (street, city, state/province, postal code, country). Used as ship-to address on invoices.
Default Pricing Tier
Assign a pricing tier to automatically apply custom pricing when creating sales for this customer.
Price List
Assign a named price list of fixed per-product prices (wholesale, family, VIP). New sale lines auto-fill from the list — a list price wins over the pricing tier and stays editable per line.
Tax Exempt
Mark wholesale, resale, or non-profit customers as tax-exempt. New sales to them default the Tax amount to 0 (still editable per sale).
Exemption Certificate Number
Optional resale or exemption certificate number, stored for your records only. Shown when Tax Exempt is on.
Referral Source
How the customer found you. Sources are defined in Settings and power acquisition reporting.
Groups
Customer group memberships for segmentation and filtering.
Customers are linked to sales transactions. The Top Customers dashboard widget ranks customers by spend. A customer's address is used as the ship-to address when generating sale invoices as PDF.
Groups & Referral Sources
Customers can be organized into customer groups (managed under Settings) for segmentation — the customer list has a Groups column with badges and a group filter, and you can assign groups in bulk. A group can carry a default pricing tier, an order discount, and a price list that members inherit on new sales when they have no list of their own. Each customer can also carry a referral source ("How did they find you?") so you can see which channels bring in business, including the Acquisition by Source dashboard widget and the Customers by Source report. The Groups and Source column filters each accept up to 25 selections at a time — the header says so when you reach it, and clearing one frees a slot.
Tax-Exempt Customers
Selling wholesale or to resellers and non-profits who hold a resale or exemption certificate? Open the customer, click Edit, and turn on Tax exempt in the Sales Settings section. You can optionally record their exemption certificate number for your own records — Ardent Seller never validates it or files anything. When you select a tax-exempt customer on a new sale, the Tax amount defaults to 0 automatically; the field stays fully editable, so you can still enter tax on any individual sale that happens to be taxable.
Customer Insights
The Insights action on a customer row opens a dedicated customer page with a KPI strip (lifetime revenue, and — once you have cost data recorded — lifetime profit and margin percentage), their top products, and a paginated purchase history of every sale linked to that customer.
Sales
Navigate to Deliver → Sales to record sales to customers.
Transaction Fields
Invoice Number
Reference number for this sale. Can be auto-generated or manually entered.
Customer
Select the customer for this sale. Their default pricing tier is automatically applied.
Status
Initiated, In Progress, Completed, Canceled, or Returned.
Initiation Date
The date the sale was made. Defaults to today.
Completion Date
The date the sale was fulfilled or shipped.
Pricing Tier Override
Override the customer's default pricing tier for this specific sale.
Tax Category
IRS Schedule C income category for tax reporting.
Payment Methods
Select one or more payment methods. Fees are auto-calculated.
Surcharge
Additional charge (fixed amount) added to the total.
Discount
Discount amount subtracted from the total.
Tax
Sales tax amount. Defaults to 0 when the selected customer is marked tax-exempt (always editable).
Shipping
Shipping or delivery charge.
Line Items
Each sale contains one or more line items. For each item, select the product (or enter a free-form description), choose a variant if applicable, specify quantity and unit, and set the price. The product list shows your active products and services in alphabetical order — raw materials, ingredients, and packaging can't be added to a sale, so sell them through the product you make from them. A sale you recorded before this rule keeps any such line it already has, so you can still edit or remove it. If the customer has a price list assigned (their own, or inherited from their customer group), each line's price auto-fills with the product's exact list price (the panel names the list as the source); otherwise, if the customer has a default pricing tier, tier pricing is auto-applied. Products not in the list fall back to the tier or retail price, and every auto-filled price stays editable. When you choose a variant that has its own price, that price is the line's retail price (and the base an Adjustment from Retail tier adjusts; a Markup over Cost tier uses the variant's own cost when it has one). A variant without its own price uses the product's retail price. Changing the variant, like changing the product, resets the line's price, including one you typed. Each line item shows the unit price, line total, and a pricing panel with the item's cost, retail price, and the price-list, tier, or manual-override pricing that was applied.
Other Ways to Record Sales
You don't have to type every sale in by hand. The Snap a sale button on the sales page lets you photograph a paper sales record — a market-day tally sheet or handwritten order form — and AI turns it into a draft sale for your review; see the Snap a Sale guide. And if you sell on Etsy, connect your shop and completed orders import automatically as sale transactions — see the Etsy integration guide.
Amounts & Totals
The sale total includes: item subtotal + surcharge - discount + tax + shipping + fees + payment method fees. Payment method fees are auto-calculated from your configured transaction methods. If the selected customer is marked tax exempt on their customer record, the Tax field defaults to 0 on new sales and a hint appears next to it — you can still type a tax amount for that sale if needed, and editing an older sale never changes its saved tax.
Invoice Generation
You can generate a PDF invoice for any sale transaction. The invoice includes your company name, customer name and address, invoice number, date, an itemized list of products with quantities and prices, and all totals. Generate an invoice from the row actions menu in the sales list, or from the Generate Invoice button in the sale detail view. If you upload a company logo in Settings > Account Preferences, it appears in the invoice header next to your company name.
Transaction Status
Sales use the same status workflow as purchases: Initiated, In Progress, Completed, Canceled, or Returned. Only Completed sales deduct inventory quantities and appear in revenue reports.
Unsaved Changes
A product, service, customer or sale sheet asks before you close it or leave the page with unsaved changes, including rows you've added, removed or reordered: choose Keep editing to go back to them or Discard changes to go on without saving.