Editing deal core details¶
This page covers editing a deal's core details: name and metadata, supplier
and supplier contacts, deal term and status, product range, keywords,
turnover streams, and deal participation. Deals are called agreements or
PSAs internally; a deal's numeric ID is psaID. Editing the deal's
content (sections, elements, rebates) is a separate page:
Editing deal content.
Requires: an authenticated platform login. The platform has no dotted
permission keys; viewing a deal requires the object-level view privilege
on the agreement (see
permissions matrix).
How saving works (applies to everything on this page)¶
Deal editing is autosave-driven and wholesale. The edit screen keeps
the entire deal in memory; any change marks it dirty, and a background
timer (every 2 seconds, plus on page close) posts the whole deal to
updateDeal, which persists every core field, the full deal content, and
participation in one psaService.save() call. There is no per-field save
button, and no explicit "save" step in the tasks below — changes persist
automatically within seconds. Saving is blocked while two content elements
share the same ID (the screen shows a duplicate-ID warning until resolved).
Name, reference, and metadata¶
Editable core fields, all saved on arrangement by the autosave:
| Field | Meaning |
|---|---|
| Internal reference | Numeric reference, unique per site; auto-incremented when a deal is cloned |
| Name | Deal name; also indexed as the deal's product range (see below) |
| Deal type | One of the site's deal types — default list: Solus, Preferred, Shared, Distribution, Offer, Approved, Exclusive, Negotiation, Strategic, Framework, Mandatory, Confidential (sites can override the visible subset) |
| Negotiator | Member-side contact responsible for negotiation |
| Administrator | Member-side administrative contact |
| Rating, Sign-off method, Calculation | Deal-level flags; Calculation (full/partial/none) gates whether rebate elements calculate |
| Price/promotion expectations | Expect prices, Expect promotions, frequencies, price period, price deferment and route, invoice terms, invoicing route, PIM price-change notice |
Supplier and supplier contacts¶
A deal belongs to one supplier company (companies of type supplier). Changing the supplier re-links all of the deal's turnover data to the new company.
Four supplier-side contact roles are stored on the deal, each picked from the selected supplier's contacts: Main contact, Finance contact, Figures contact, and Marketing contact. These are used for deal correspondence and appear on the deal PDF. The negotiator and administrator (above) are member-side, not supplier contacts.
Deal term and status¶
The deal term is the Period from / Period to date pair.
The deal status (PSA_Status) values confirmed in code:
| Status | Set by | Effect on visibility |
|---|---|---|
confirmed |
Editing the status field | The live/active status; deals count as active when confirmed and within their period, expired after Period to, pending before Period from or when not confirmed |
moderator |
Email negotiator action | Grants deal view permission to admin plus the administrator's and negotiator's email addresses |
negotiator |
Status change during save | Resets deal view permission to admin only |
supplier |
Email supplier action | Grants deal view permission to member and the supplier company name |
groupSign |
Supplier signs a digital sign-off | Awaiting the member countersignature; countersigning sets confirmed |
A rejected sign-off also resets the status to negotiator. The two email
actions additionally grant view permission directly (the negotiator email
grants the recipient's address; the supplier email grants member and
the supplier company name) — see
Emailing a deal to the supplier and
Signing off a deal.
Validation is separate from status: a deal has a checked flag with
values pending (validation requested — notifies the negotiator and
administrator) and true (validated) — see
Validating a deal.
Deal categories¶
Deals are categorized by picking from a checkbox tree in the categories dialog (opened from the category names on the full deal view). The tree is the site's group hierarchy under the group named "PSA Categories" — deal categories are groups. Saving replaces the deal's category set and re-indexes it. Categories drive the deal browser's category filter, seasonality generation (uncategorized deals never get a seasonality profile), and — on sites with category security — which users can see rebate elements.
Product range¶
Product range is not an independent field: when a deal is indexed for
search, productRange is set to the deal's Name and productKeywords
to its Keywords. To change a deal's product range, change its name.
Keywords¶
Keywords is a free-text field on the deal, saved by autosave and used for search. It is distinct from tags: tags are managed by a separate action (Change agreement tags) and attach shared tag records to the deal, while keywords are plain text on the deal row.
Turnover streams¶
A turnover stream (also figures entry or input stream) is a named input against which member turnover is recorded for the deal. Streams are the data feeds that rebate elements calculate from.
To add a stream, provide:
| Field | Values / meaning |
|---|---|
| Input name and Description | How the stream appears on figures-entry screens |
| Input type | Unit type from the site's list; type 1 is currency, other types are unit counts |
| Product lane (category) | Category group the stream reports under |
| Rebateable | Whether rebate elements may use this stream |
| Stock/direct | stock, direct, or both |
| NMBS | NMBS-sourced stream flag |
Adding and deleting are immediate (dedicated actions, not autosave); edits to existing stream fields save with the deal autosave. Deleting a stream removes it permanently.
If the deal is chained to other deals, the available turnover streams aggregate across the whole chain, so a rebate element can reference streams from chained deals.
Deal participation¶
Participation controls which member companies the deal applies to. With no participation set, the deal applies to all member companies on the site. Otherwise the include and exclude lists are applied — entries can be individual companies or groups (groups expand to their member companies, honoring each company's join/leave dates).
Participation edits save with the deal autosave (the stored participation is replaced wholesale on each save). This deal-level participation is distinct from per-rebate-element participation, which is covered in Editing deal content.
Related pages¶
- Editing deal content — sections, elements, element types, rebate details and security
- Permissions matrix — how deal view/edit permissions are evaluated