Overview
Zulu uses a flexible, multi-layered pricing system that supports:
- Multiple price tiers (retail, wholesale, bulk) (default)
- Cost tracking with weighted average calculations
- Quantity-based discounts (Price Breaks)
- Client-specific pricing (custom price books)
- Automatic markup calculations (CostPlus mode)
- Full audit trail of all price changes
Base Price Fields
Every product has the following price fields:
Selling Prices (User-Editable)
| Field | Label | Description |
|---|---|---|
price | Retail Price | The primary selling price displayed to customers. This is the default price used on invoices, quotes, and the shop. |
price_special | Special Price | Promotional or sale price. When set (> 0), this takes precedence over the retail price. Used for time-limited offers, only for non account-pricing users. |
Cost Prices (System-Managed)
These fields are automatically updated by the system and cannot be directly edited:
| Field | Label | Description |
|---|---|---|
price_purchase | Purchase Price | The cost price from your supplier. Updated when you receive goods via Purchase Orders or Product Deliveries. For forex suppliers, this price represents the purchase price in that foreign currency. |
price_average | Average Cost | Weighted average cost of all stock on hand. Used for inventory valuation and COGS calculations. See Average Cost Calculation below. |
price_latest_landed | Latest Landed Cost | The most recent fully-landed cost per unit (including freight, customs, etc.). Updated when completing Product Deliveries with landed costs. |
Wholesale Price Tiers (User-Editable)
| Field | Default Label | Description |
|---|---|---|
price_ws1 | Wholesale | Primary wholesale tier |
price_ws2 | Wholesale 2 | Secondary wholesale tier |
price_ws3 | Wholesale 3 | Third tier |
price_ws4 | Wholesale 4 | Fourth tier |
price_ws5 | Wholesale 5 | Fifth tier |
price_ws6 | Wholesale 6 | Sixth tier |
price_ws7 | Wholesale 7 | Seventh tier |
Note: Wholesale tier labels can be customized in Settings > Products > Manage Pricing Tiers. You can rename tiers to match your business (e.g., "Trade", "Distributor", "VIP").
Decimal Precision
| Type | Precision | Example |
|---|---|---|
| Selling prices | 2 decimals | $99.95 |
| Cost prices | 4 decimals | $45.7825 |
Cost prices use higher precision to maintain accuracy during currency conversions and weighted average calculations.
Zulu will in due course adopt likely 4-decimal precision across all pricing.
Average Cost Calculation
The price_average field uses the weighted average cost method for inventory valuation.
Formula
When new stock is received:
New Average = (Existing Stock × Current Average) + (New Quantity × New Unit Cost)
─────────────────────────────────────────────────────────────────────
Existing Stock + New QuantityExample
| Event | Qty | Unit Cost | Stock After | Average Cost |
|---|---|---|---|---|
| Opening | 0 | - | 0 | NULL |
| Receive 100 units | 100 | $10.00 | 100 | $10.00 |
| Receive 50 units | 50 | $12.00 | 150 | $10.67 |
| Sell 30 units | -30 | - | 120 | $10.67 |
| Receive 80 units | 80 | $11.00 | 200 | $10.80 |
Special Behavior
- When stock is first received and average price is NULL, it inherits the purchase price value
- Only NULL triggers inheritance (a value of 0 is treated as valid)
- Average cost is only recalculated when adding stock, not when selling
Price Breaks (Quantity-Based Pricing)
Price Breaks allow you to offer tiered pricing based on quantity purchased.
How It Works
Define quantity ranges with corresponding prices:
| Quantity Range | Price |
|---|---|
| 1 - 9 | $100.00 |
| 10 - 49 | $90.00 |
| 50 - 99 | $80.00 |
| 100+ | $70.00 |
When a customer orders 35 units, the system matches to the "10-49" tier and applies $90.00 per unit.
Configuration
- Navigate to Products > Edit Product
- Click the Price Breaks button
- Add quantity tiers with min/max ranges
- Set the price for each tier
- Optionally add a
Special Pricefor promotional break pricing
Price Break Fields
| Field | Description |
|---|---|
Qty. Min | Minimum quantity for this tier |
Qty. Max | Maximum quantity (0 = unlimited) |
Price | Standard price for this tier |
Special Price | Optional promotional price for this tier |
Inheritance
- Parent products can define breaks that apply to all variants
- Child products can override or disable parent breaks
- Use the
Price Break Disabletoggle to disable breaks for specific products
Price Selection Logic
When calculating price, the system: 1. Finds the matching quantity tier 2. Compares break price vs base product price 3. Uses the lower of the two prices 4. If Special Price exists on break and is lower, uses that instead
Cost Based Pricing Model
Cost Plus is an automatic markup system that calculates selling prices based on your cost price.
How It Works
- Set the cost price (
purchaseprice) - Define markup percentages for each price tier
- Selling prices are automatically calculated
Formula
Sell Price = Cost Price + (Cost Price × Markup%)Example
| Tier | Markup % | Cost Price | Calculated Sell Price |
|---|---|---|---|
| Retail | 100% | $50.00 | $100.00 |
| Wholesale 1 | 60% | $50.00 | $80.00 |
| Wholesale 2 | 40% | $50.00 | $70.00 |
Configuration
- Navigate to Settings > Product tab
- Set Pricing Model to "Cost Based Pricing"
- Configure markup percentages for each price tier in the Manage Pricing Tiers popup window
CostPlus vs Flexible
| Model: | Cost Based | Flexible |
|---|---|---|
| Price calculation | Automatic from cost | Manual entry |
| When to use | Consistent margins | Variable pricing |
| Markup control | Percentage-based | Direct price entry |
Tip: You can switch between models at any time. Existing prices are preserved. Please note though that when switching from cost based / cost-plus back to flexible the pricing will remain at what it was last saved as.
Client-Specific Pricing (Price Book)
Create custom pricing rules for individual clients at the product or category level.
Pricing Hierarchy
When determining a client's price, Zulu checks in this order:
1. Product-Level Rule (direct price override)
↓
2. Product-Level Rule (price group + margin)
↓
3. Category-Level Rule (applies to all products in category)
↓
4. Client Default Settings (price group + margin on client record)
↓
5. Base Product Price (fallback)Rule Types
Fixed Price Override
Set a specific price for a client: - Price Sell: Direct price (e.g., $85.00)
Price Group + Margin
Use a base price tier with an optional markup/discount: - Price Group: Which price tier to use (e.g., "Wholesale 1") - Margin %: Adjustment percentage (positive = markup, negative = discount)
Margin Calculation
Final Price = Base Price + (Base Price × Margin%)Example
Product: Widget - price = $100.00 (retail) - price_ws1 = $80.00 (wholesale)
Client Rule for "Acme Corp": - Price Group: price_ws1 (Wholesale) - Margin: 10%
Calculation: $80.00 + ($80.00 × 0.10) = $88.00
Acme Corp pays $88.00 per Widget.
Setting Up Client Pricing
Per-Client Default
- Navigate to CRM > Clients > Edit Client
- Set Price Group (which tier they use by default)
- Set Margin % (adjustment to apply)
Category / Product-Specific Rules
- Navigate to CRM > Clients > Edit Client
- Click Price Book button
- Add a rule for specific product or category
- Choose between fixed price or group + margin
Price Logging & Audit Trail
All price changes are automatically logged for audit purposes. These are accessible on the product page to view pricing history.
What's Logged
| Change Type | Details Recorded |
|---|---|
| Product price changes | Old value, new value, which field, who changed it |
| Price rule changes | Client ID, product ID, price change |
| Price break changes | Break ID, quantity tier, price change |
| Timestamp | Logged timestamp of the change |
Viewing Price History
Price history is available on the product edit screen and via API queries.
Quick Reference
Price Field Summary
| Field | Editable | Updated By | Purpose |
|---|---|---|---|
Price | Yes | User | Retail selling price |
Special Price | Yes | User | Promotional price |
Purchase Price | No | Deliveries/POs | Supplier cost |
Average Price | No | Stock receipts | Weighted average cost |
Latest Landed Cost | No | Deliveries | Latest landed cost |
Wholesale 1 thru 7 | Yes | User | Wholesale price tiers |
Pricing Priority (Highest to Lowest)
- Client-specific product rule (fixed price)
- Client-specific product rule (group + margin)
- Client-specific category rule
- Client default price group + margin
- Price breaks (if applicable quantity)
- Product
price_special(if set) - Product
price(base retail)
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article