> ## Documentation Index
> Fetch the complete documentation index at: https://docs.knowlix.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Purchase

Knowlix Purchase organizes the full procurement lifecycle from initial quotation requests through vendor billing. Track purchase agreements, manage recurring replenishment, compare vendor offers side by side, and monitor procurement spending with built-in analytical reports.

**Key features:**

* Request for quotation (RFQ) creation and vendor communication
* Blanket orders and purchase templates for recurring procurement
* Call for tenders with side-by-side vendor comparison
* Vendor pricelist management with bulk import support
* Automated and temporary reordering rules for stock replenishment
* Bill control policies with optional 3-way matching
* Purchase analysis, vendor cost tracking, and procurement expense reporting
* EDI exchange: export purchase orders as XML files for import into partner systems

***

## Requests for Quotation

A request for quotation is a document sent to a vendor asking for pricing confirmation before committing to a purchase. Once the vendor confirms the terms, the RFQ converts into a confirmed purchase order (PO).

### Product Configuration

Before products appear on RFQs automatically, configure them at **Purchase > Products > Products**.

On the product form, tick the **Purchase** checkbox below the product name. Under the **Inventory** tab, enable the **Buy** route to allow the product to be replenished through purchasing.

### Vendor Pricelist on a Product

Open the **Purchase** tab of the product form and click **Add a Line** to register a vendor and their price. When that product is added to any future RFQ, the unit price and delivery lead time auto-populate from this record.

Default columns on the vendor pricelist include Quantity, Unit Price, and Delivery Lead Time. Additional columns such as Vendor Product Code or Discount (%) can be shown or hidden using the column options icon at the right side of the header row.

Alternatively, vendor pricing records can be managed centrally at **Purchase > Configuration > Vendor Pricelists**.

### RFQ Dashboard

Navigate to **Purchase > Orders > Requests for Quotation** to view all active quotations and orders. The dashboard header displays summary counts for the company and for orders where you are the assigned buyer, broken down by status.

Status filters at the top of the page:

* **To Send** - RFQs not yet sent to the vendor
* **Waiting** - RFQs sent by email that are awaiting vendor response
* **Late** - RFQs or purchase orders where the order deadline has passed

\[Screenshot: Requests for Quotation dashboard with status filters]

### Creating an RFQ

Click **New** on the RFQ dashboard to open a blank quotation form.

**Form fields:**

* **Vendor** - the supplier receiving this request
* **Vendor Reference** - the vendor's own sales or delivery order number; useful for matching incoming shipments
* **Blanket Order** - links this RFQ to a long-term purchase agreement (visible when Purchase Agreements are enabled)
* **Order Deadline** - the date by which the vendor must confirm their willingness to supply. After this date, the order is marked late but can still proceed
* **Expected Arrival** - calculated automatically from the order deadline and vendor lead time. Tick **Ask Confirmation** to request that the vendor confirm the shipping date by email
* **Deliver To** - the warehouse receiving location. Set to **Dropship** if products ship directly to a customer

Under the **Products** tab, click **Add a Product** to select items from the drop-down. To add a product not yet in the system, type the name and choose **Create** or **Create and Edit** from the drop-down. The **Catalog** option opens the vendor's product catalog if configured.

### Sending the RFQ

Click **Send by Email** to open the email composition window. The message uses the built-in RFQ template and is addressed to the vendor's email on file. Edit the message as needed and click **Send**. The RFQ moves to the **RFQ Sent** stage.

Click **Print RFQ** to download a PDF copy instead.

### Confirming the Order

Click **Confirm Order** to convert the RFQ into a confirmed purchase order. The Order Deadline field is replaced by the Confirmation Date reflecting when the order was placed.

After confirmation, the system creates a warehouse receipt (when Inventory is installed) with product and arrival information pre-filled. Click **Receive Products** on the PO to record incoming goods.

All email exchanges and internal notes between your team and the vendor are tracked in the order's activity feed.

***

## Blanket Orders

A blanket order is a long-term purchasing agreement with a vendor that locks in product pricing across multiple deliveries over time. Rather than renegotiating on each order, the agreement defines the terms in advance, and individual quotations are generated from it whenever stock is needed.

Blanket orders are especially useful when purchasing the same items from the same supplier regularly but in varying quantities.

### Enabling Purchase Agreements

Navigate to **Purchase > Configuration > Settings** and tick the **Purchase Agreements** checkbox under the Orders section. Click **Save**.

### Creating a Blanket Order

Navigate to **Purchase > Orders > Purchase Agreements** and click **New**.

**Form fields:**

* **Vendor** - the supplier this agreement is with
* **Buyer** - the user responsible for this agreement (defaults to the creator)
* **Agreement Type** - select **Blanket Order**
* **Currency** - the negotiated currency for transactions under this agreement
* **Agreement Validity** - the start and end dates of the agreement. Leave blank if the agreement has no expiration
* **Reference** - optionally link to an existing purchase order
* **Operation Type** - the warehouse operation applied when goods are received
* **Company** - relevant in multi-company setups

Under the product lines, click **Add a Line** to add items. Set quantities and manually enter the agreed unit price for each product (prices do not auto-populate from the product form).

Click **Confirm** to move the agreement from Draft to Confirmed status.

\[Screenshot: Blanket order form showing product lines and agreement fields]

### Generating RFQs from a Blanket Order

Once confirmed, click **New Quotation** directly on the blanket order form. The new RFQ inherits the vendor, products, quantities, and pricing from the agreement.

From the RFQ form, click **Send by Email**, **Print RFQ**, or **Confirm Order** to proceed. Confirmed quotations are tracked under the **RFQs/Orders** smart button on the blanket order form.

The **Ordered** quantity field on the agreement updates as individual quotations are confirmed, giving a running total of how much has been purchased against the blanket terms.

### Replenishment Integration

When a blanket order is confirmed, a vendor entry is automatically added to the **Purchase** tab of each product included in the agreement. This entry includes the vendor, price, and reference to the agreement, allowing automated reordering rules to reference the blanket terms when generating replenishment orders.

***

## Call for Tenders

A call for tenders allows procurement teams to request pricing from several vendors for the same goods simultaneously. After collecting responses, the product lines can be compared side by side to select the best combination of price and lead time across vendors.

### Creating Alternative Quotations

Start by creating an RFQ as described above. Once it is ready, open the **Alternatives** tab on the RFQ form and click **Create Alternative**.

In the dialog, select the alternative vendor. The **Copy Products** checkbox is enabled by default, which pre-fills the alternative RFQ with the same products and quantities as the original. Uncheck it if the alternative vendor will supply different items.

Click **Create Alternative** to generate the linked RFQ.

Repeat this process for each additional vendor you want to compare.

\[Screenshot: Alternatives tab showing linked RFQs from multiple vendors]

To link a separately created quotation to an existing alternative group, open the RFQ, go to the **Alternatives** tab, and click **Link to Existing RFQ**. Select the relevant quotation from the list and click **Select**.

### Comparing Product Lines

From any of the linked RFQs, open the **Alternatives** tab and click **Compare Product Lines**. This opens the comparison view, which groups all product lines across all linked quotations by product.

For each product, all vendor offers appear in separate rows showing price, quantity, and reference. Products you do not want to order from a particular vendor can be removed by clicking **Clear** on that row.

When you identify the best offer for each product, click **Choose** on that row to select it.

\[Screenshot: Compare Order Lines view with vendor options per product]

### Confirming and Cancelling Alternatives

After choosing products from the comparison view, return to the winning RFQ and click **Confirm Order**. A dialog asks what to do with the remaining unfulfilled alternatives. Choose:

* **Cancel Alternatives** - automatically cancels the other linked RFQs
* **Keep Alternatives** - leaves them open for future ordering

Cancelled orders appear greyed out with a Cancelled status on the RFQ dashboard.

***

## Purchase Templates

Purchase templates are reusable agreement structures for recurring orders. Unlike blanket orders which tie to a single vendor, purchase templates can be applied to multiple vendors, allowing the same product list to be quickly quoted across different suppliers.

### Creating a Template

Navigate to **Purchase > Orders > Purchase Agreements** and click **New**.

To make the template vendor-neutral, leave the **Vendor** field blank. In the **Agreement Type** field, select **Purchase Template**.

Under the **Products** tab, click **Add a Line** to add recurring items. Set the expected quantity and unit price for each. Prices must be entered manually.

Click **Confirm** to finalize the template.

### Using a Template

From the confirmed template form, click **New Quotation**. The RFQ is pre-filled with the products from the template. Select a vendor if none was specified on the template, adjust quantities or prices as needed, then send or confirm the quotation normally.

Confirmed orders generated from the template are tracked in the **RFQs/Orders** smart button.

***

## Vendor Pricelists

### Adding Prices on the Product Form

Navigate to **Purchase > Products > Products**, open a product, and go to the **Purchase** tab. Click **Add a Line** to register a vendor and their pricing terms. This information auto-fills on any RFQ that includes the product.

### Importing Vendor Pricelists

To update vendor pricing for multiple products at once, use the bulk import feature.

**Exporting a template for import:**

Navigate to **Purchase > Configuration > Vendor Pricelists**. Tick the checkboxes for the records you want to export, then click the **Actions** button and select **Export**.

In the export dialog, choose the fields to include. Tick **I want to update data (import-compatible export)** if you intend to update existing records rather than create new ones. Select XLSX or CSV as the export format and click **Export**.

**External ID field:**

The External ID is a system identifier that tells the import which existing record to update. Without it, each imported row creates a new pricelist entry. If you are updating existing prices, make sure the External ID column is included and populated in your import file.

**Common import fields:**

| Field              | Purpose                                            | Technical Name    |
| ------------------ | -------------------------------------------------- | ----------------- |
| Vendor             | The supplier associated with this entry (required) | partner\_id       |
| Product Template   | The product this pricing applies to                | product\_tmpl\_id |
| Quantity           | Minimum quantity threshold to receive this price   | min\_qty          |
| Unit Price         | The purchase price from the vendor                 | price             |
| Delivery Lead Time | Days from order confirmation to receipt            | delay             |
| Sequence           | Order priority when multiple vendors exist         | sequence          |
| Company            | Limits the entry to a specific company             | company\_id       |
| External ID        | Unique identifier for updating existing records    | id                |

**Importing the file:**

Navigate to **Purchase > Configuration > Vendor Pricelists**, click the gear icon, and select **Import Records**. Click **Upload File**, select your prepared XLSX or CSV, confirm the field mappings, and click **Import**.

\[Screenshot: Import records dialog for vendor pricelists]

***

## Reordering Rules

Reordering rules automatically generate purchase orders when product stock falls below a defined minimum, ensuring critical items stay available without manual monitoring.

### Product Requirements

For reordering rules to work, the product must:

* Have the **Purchase** checkbox enabled on the product form
* Be set to product type **Goods** under the General Information tab
* Have **Track Inventory** enabled with a tracking option selected

### Setting Up a Reordering Rule

Open the product form and click the **Reordering Rules** smart button (visible once inventory tracking is enabled). Click **Create** on the reordering rules page.

Configure the rule:

* **Location** - where received stock should be stored
* **Min Quantity** - when stock drops below this level, a new order is triggered
* **Max Quantity** - the target stock level after replenishment. The order quantity is Max Quantity minus current stock on hand
* **Multiple Quantity** - restricts ordering to specific batch sizes. If a multiple is set, the ordered quantity may slightly exceed the Max Quantity to match the batch size
* **Unit** - the unit of measure for ordering (units, weight, volume, etc.)

**Example:** If Min Quantity is 5, Max Quantity is 25, and current stock is 4, a purchase order for 21 units is created.

### Triggering Rules Manually

Reordering rules run automatically on a daily schedule. To trigger them immediately, navigate to **Inventory > Operations > Procurement: Run Scheduler** and confirm the action.

### Managing Reordering Rules

View rules for a single product from the product form's **Reordering Rules** smart button.

To manage all reordering rules across all products, navigate to **Inventory > Operations > Replenishment**. From this view, rules can be filtered, grouped, archived, or exported in bulk.

***

## Temporary Reordering Rules

A temporary reordering rule is a one-time replenishment trigger created automatically when all of the following conditions are true:

1. The product's route is set to **Buy**
2. No standing reordering rule exists for the product
3. Stock on hand is 0
4. The product appears on a confirmed sales order

The rule disappears from the replenishment dashboard once the generated purchase order is confirmed.

### Configuration

Navigate to **Inventory > Products > Products** and open or create a product. Ensure:

* **Can be Sold** and **Can be Purchased** are both enabled
* Product type is **Storable Product**
* Under the **Purchase** tab, at least one vendor and price is set

A vendor must be configured for the temporary rule to generate a purchase order automatically.

### Workflow

1. Confirm a sales order for the product while stock on hand shows 0
2. Navigate to **Inventory > Operations > Replenishment** - the product appears with a negative forecast and a Buy route
3. Click **Order Once** on the product row to generate a one-time purchase order
4. Go to **Purchase**, open the generated PO, click **Confirm Order**, then **Receive Products**, then **Validate**
5. Deliver and invoice the original sales order

After the purchase order is confirmed and the sales order fulfilled, verify that the **Reordering Rules** smart button on the product form shows 0, confirming no permanent rule was created.

***

## Bill Control Policies

The bill control policy determines when vendor bills can be created relative to purchase order status.

Navigate to **Purchase > Configuration > Settings** and scroll to the **Invoicing** section.

**Policy options:**

* **Ordered Quantities** - a draft vendor bill is created immediately upon PO confirmation. The bill reflects the quantities ordered, not yet received
* **Received Quantities** - a bill can only be created after products have been received. Attempting to create a bill before receiving anything triggers an error

The setting applies as the default for all new products. Individual products can override the default by changing the **Control Policy** field in their **Purchase** tab.

### 3-Way Matching

3-way matching prevents payment of vendor bills until at least some of the ordered products have been received. Enable it at **Purchase > Configuration > Settings** under Invoicing.

When enabled, vendor bills display a **Should Be Paid** field on the **Other Info** tab with three possible states:

* **Yes** - products have been received and the bill is payable
* **No** - bill has been paid
* **Exception** - bill details were manually edited after generation; the system notes the discrepancy but does not block payment

3-way matching requires the bill control policy to be set to **Received Quantities**.

### Billing Status

After confirming a PO, check its billing status under **Other Information** tab:

| Billing Status  | Received Quantities Policy                 | Ordered Quantities Policy |
| --------------- | ------------------------------------------ | ------------------------- |
| Nothing to Bill | PO confirmed; no products received         | Not applicable            |
| Waiting Bills   | Some or all products received; no bill yet | PO confirmed              |
| Fully Billed    | Draft bill created after receipt           | Draft bill created        |

***

## Creating and Managing Vendor Bills

### From a Purchase Order (Ordered Quantities)

1. Navigate to **Purchase > Orders > Purchase Orders** and open or create a PO
2. Add a vendor and products, then click **Confirm Order**
3. Click **Create Bill** - a draft vendor bill opens
4. Set the **Bill Date** and click **Confirm** on the bill
5. Click **Register Payment**, confirm the journal and payment details, and click **Create Payment**

The bill displays a green **Paid** banner when complete.

### From a Purchase Order (Received Quantities)

1. Confirm the PO as above
2. Click the **Receipt** smart button and click **Validate** to record received quantities
3. Return to the PO and click **Create Bill**
4. Set the **Bill Date**, click **Confirm**, then **Register Payment** and **Create Payment**

### From Accounting

Vendor bills can also be created without a purchase order. Navigate to **Accounting > Vendors > Bills** and click **New**.

Add a vendor, add products under the **Invoice Lines** tab, set a bill date, and click **Confirm**. To link to an existing PO, click the **Auto-Complete** drop-down before confirming and select the relevant order.

After confirmation, the **Journal Items** tab shows the account postings based on the vendor and product configurations.

### Batch Billing

To process multiple bills at once, navigate to **Accounting > Vendors > Bills**, select multiple bills using the checkboxes, and click **Register Payment**. Set the journal, payment date, and method. The **Group Payments** option (if Batch Payments is enabled) creates a single payment across all selected bills.

***

## Purchase Analysis Report

Navigate to **Purchase > Reporting > Purchase** to access the Purchase Analysis report.

The report tracks procurement statistics across all purchase orders and RFQs, with configurable measures and grouping options.

### Available Measures

Click **Measures** to select the dataset displayed:

| Measure          | Description                                          |
| ---------------- | ---------------------------------------------------- |
| # of Lines       | Total number of order lines across all orders        |
| Average Cost     | Average cost per order                               |
| Days to Confirm  | Average days from creation to order confirmation     |
| Days to Receive  | Average days from order placement to product receipt |
| Gross Weight     | Total weight of purchased products                   |
| Qty Billed       | Quantity already invoiced to vendors                 |
| Qty Ordered      | Total quantity ordered                               |
| Qty Received     | Quantity received so far                             |
| Qty to Be Billed | Quantity received but not yet billed                 |
| Total            | Total amount spent including tax                     |
| Untaxed Total    | Total amount excluding tax (default measure)         |
| Volume           | Total volume for products measured by volume         |
| Count            | Total number of orders                               |

In graph view, one measure can be selected at a time. In pivot view, multiple measures and multiple group-by criteria can be combined.

### Example: Delivery Performance by Vendor

To compare how quickly each vendor delivers:

1. Open the report and switch to bar chart view
2. In the search filters, set a date range (e.g., Confirmation Date: current year)
3. Under **Group By**, select **Vendor**
4. Click **Measures** and choose **Days to Receive**

The resulting chart shows one bar per vendor representing average delivery time, making it straightforward to identify slow suppliers.

\[Screenshot: Purchase Analysis bar chart grouped by vendor, measuring days to receive]

### Example: Spending Comparison Between Periods

To compare spending with a specific vendor across two months:

1. Open the report and switch to pivot view
2. Search for the vendor name in the search bar
3. Under Filters, select the current month
4. Under Comparison, select **Previous Period**
5. Under Measures, keep Total and Untaxed Total
6. Click the row group button and select **Product**

The pivot table shows columns for each time period and a variation percentage, broken down by product.

***

## Procurement Expenses Report

The procurement expenses report summarizes spending by vendor and product category over a defined period, with optional period comparisons.

### Building the Report

1. Navigate to **Purchase > Reporting > Purchase**
2. Switch to **Pivot** view using the icon at the top right
3. Remove any default search filters
4. Under **Filters**, choose a date field (Order Date or Confirmation Date) and select a time range (month, quarter, or year)
5. Under **Group By**, select **Vendor**, then **Product Category**
6. Under **Comparison**, select **Previous Period** or **Previous Year**
7. Click **Measures** and add relevant metrics:
   * **Total** and **Untaxed Total** for spending overview
   * **Average Cost** to evaluate cost efficiency
   * **Days to Confirm** and **Days to Receive** for supplier performance
   * **Qty Ordered** and **Qty Received** for order fulfillment analysis
   * **Qty Billed** and **Qty to be Billed** for billing accuracy

Click **Insert in Spreadsheet** to export the pivot data to a spreadsheet document for further editing.

\[Screenshot: Procurement expenses report in pivot view with vendor and product category grouping]

***

## Vendor Costs Report

The vendor costs report tracks price changes from individual vendors over time, helping identify cost inflation and seasonal pricing patterns.

### Building the Report

1. Navigate to **Purchase > Reporting > Purchase**
2. Switch to **Pivot** view
3. Remove any default filters
4. Under **Filters**, select a date range by Order Date or Confirmation Date
5. Under **Group By**, select **Vendor** first, then **Product**
6. Under **Comparison**, select **Previous Period** or **Previous Year**
7. Click **Measures** and add **Average Cost** plus any additional metrics

The pivot table shows vendor spending with period comparisons, broken down by the products purchased from each vendor.

Pivot results can be exported to a spreadsheet document via **Insert in Spreadsheet**.

***

## EDI Purchase-to-Sales Order Exchange

Electronic Data Interchange (EDI) lets two companies using separate systems exchange structured order data without manual re-entry. In Knowlix, a confirmed purchase order can be exported as an XML file and imported directly as a sales order in the partner's system.

### Roles

**Buyer system** - creates and confirms purchase orders, then generates the XML export. The vendor should be set up as a portal user in the buyer's system.

**Seller system** - receives the XML file and imports it as a sales order with product lines, quantities, and prices already populated.

### Workflow

**Buyer side:**

1. Create an RFQ in **Purchase**, set the vendor as the seller's portal user account, and click **Confirm Order**
2. The confirmed PO becomes available in the seller's portal view

**Seller side:**

1. Log in to the buyer's system as a portal user
2. Go to the portal dashboard and click **Our Orders**
3. Open the relevant purchase order and click **Connect with Your Software**
4. In the dialog, copy the provided URL and paste it into a new browser tab to download the XML file
5. Log in to your own system, open the **Sales** module, and either click **Upload** or drag and drop the downloaded XML file onto the Quotations dashboard
6. The system generates a sales order pre-filled with the buyer's product lines, quantities, and prices

\[Screenshot: Portal view showing Connect with Your Software button and download dialog]

The XML follows the UBL schema standard for cross-system compatibility.

***

## Best Practices

Configure vendor pricelists before creating RFQs so unit prices auto-populate and reduce manual entry. Use blanket orders for suppliers you buy from regularly to lock in pricing across the year. Enable 3-way matching for high-value purchases to prevent payment before confirming receipt. Set reordering rules with minimum quantities based on realistic lead times so stock never falls below safety levels. Run the vendor costs report quarterly to identify cost increases early and renegotiate terms before they impact margins. Use the call for tenders process for significant one-time purchases to ensure you are selecting the best available offer.

**Your Knowlix:**
*"Show me all open purchase orders waiting on vendor confirmation"* or *"Which vendors have the longest average delivery times this quarter?"* or *"List all products with reordering rules but no vendor pricelist configured"* or *"Generate a procurement expenses summary for Q1 grouped by product category"* or *"Which purchase orders from last month are still not fully billed?"* or *"Show me all blanket orders expiring in the next 60 days"* or *"Create a new request for quotation for 50 units of the aluminum bracket from our primary supplier"* or *"Compare spending with our top three vendors over the past six months"*
