# Design

The Commission Module introduces and extends the following concepts:

## Agent

An Agent links a party to a Plan <model-commission.plan>. An Agent can be either an agent or a principal of the Company <company:model-company.company>.

See also

Agents are found by opening the main menu item:

> Commission ‣ Agents

## Agent Selection

The Agent Selection contains a sets of rules to assign automatically an Agent <model-commission.agent> to sales based on criteria.

## Plan

A Plan defines how the Commission <model-commission> of an Agent <model-commission.agent> is computed using a list of formula with criteria.

See also

Plans are found by opening the main menu item:

> Commission -> Configuration ‣ Plans

## Commission

The Commission concept is used to register the amount that is due to an agent or to receive from a principal.

An Invoice <account_invoice:model-account.invoice> can be generated using the Invoice button. The commissions invoiced together are grouped by Agent <model-commission.agent>.

See also

Commissions are found by opening the main menu item:

> Commission ‣ Commissions

### Wizards

#### Create Commission Invoice

The Create Commission Invoice wizard helps the user to invoice all the pending Commission <model-commission> based on search criteria like the date period or the Agent <model-commission.agent>.

## Commission Reporting Agent

The Commission Reporting Agent sums the commission amounts per Agent <model-commission.agent> for the selected period from the `Context`.

## Product

The Product concept is extended to store the principals who pay a commission when the product is sold.

See also

The Product <product:concept-product> concept is introduced by the Product Module.

## Party

The Party is extended to store its Agent Selection <model-commission.agent.selection>.

See also

The Party <party:model-party.party> concept is introduced by the Party Module.

## Sale

The Sale is extended to store an Agent <model-commission.agent> on the header and Principal <model-commission.agent> on the lines. Those values are copied to the generated Invoice <account_invoice:model-account.invoice>.

When a Product <product:concept-product> is selected, its principal is copied on the line. When the Sale is quoted and if there is no Agent filled, one is computed using the Agent Selection <model-commission.agent.selection>.

See also

The Sale <sale:model-sale.sale> concept is introduced by the Sale Module.

## Invoice

The Invoice concept is extended to store an Agent <model-commission.agent> on the header and Principal <model-commission.agent> on the lines.

When the Invoice is posted the corresponding Commissions <model-commission> are created. Its due date is set later depending on the commission method.

See also

The Invoice <account_invoice:model-account.invoice> concept is introduced by the Account Invoice Module.