Generate quotes using the template engine
Overview
Smartcat lets you generate quotes in PDF format. You can use the standard template or create your own templates with the Smartcat Template Engine. You can build a single template for all clients or an individual template for each client.
Data model
The following data model is used to generate quotes in PDF format. You can use these objects and their fields to build custom templates with the Smartcat Template Engine.
Company
Information about the company that issued the quote.
| Field name | Data type | Description |
|---|---|---|
| Name | string | Company name as in profile |
| LegalName | string | Legal name |
The standard template uses the company's legal name if available. Otherwise, the name from the company's profile is used:
<<if [Company.LegalName != null]>>
<<[Company.LegalName]>><<else>><<[Company.Name]>><</if>>
Client
Client details taken from the client card.
| Field name | Data type | Description |
|---|---|---|
| Name | string | Name |
| LegalName | string | Legal company name |
| Vat | string | VAT number or other tax ID |
| Kpp | string | KPP (only for Russian legal entities) |
| MainContact | ClientContact | Primary contact's name |
| AdditionalContacts | ClientContact[] | Other contacts' names |
| Country | string | 3-letter country code |
| Address | string | Client's legal address |
| VendorManager | Manager | Your manager who works with a client |
| Industry | string | Client's industry |
| Website | string | Client's website |
| Language | string | Language for communication |
| Comment | string | Comment taken from a client card |
ClientContact
| Field name | Data type | Description |
|---|---|---|
| FullName | string | Contact's full name |
| string | Contact's email address | |
| Phone | string | Contact's phone number |
| Position | string | Contact's position |
| Comment | string | Comment left for a contact in a client card |
Manager
| Field name | Data type | Description |
|---|---|---|
| FullName | string | Your manager's full name |
| string | Your manager's email address | |
| PhoneNumber | string | Your manager's phone number |
Below is an example of how to use the Client object:
<<[Client.Name]>>
VAT: <<[Client.Vat]>>
<<if [Client.MainContact != null]>>Main contact: <<[Client.MainContact.FullName]>><</if>>
<<if [Client.AdditionalContacts.Any()]>>Additional contacts:
<<foreach [a in Client.AdditionalContacts]>>
<<[a.FullName]>> <<link ["mailto:" + a.Email] [a.Email]>>
<<if [a.PhoneNumber != null]>> <<link ["tel:" + a.PhoneNumber] [a.PhoneNumber]>>
<</if>>
<</foreach>>
<</if>>
Project
Project details.
| Field name | Data type | Description |
|---|---|---|
| Name | string | Name |
| Number | string | Project number |
| Filenames | string[] | File names in a project, including extensions |
| SourceLanguage | string | Source language |
| TargetLanguages | string | Target languages |
| WorkflowStages | string | Workflow stages |
| Managers | Manager[] | List of project managers |
Manager
| Field name | Data type | Description |
|---|---|---|
| FullName | string | Project manager's full name |
| string | Email address | |
| PhoneNumber | string | Phone number |
Below is an example of how to use the Project object. This displays the details of the first two managers if they are included in the list of managers:
<<if [Project.Managers.Any()]>>
<<foreach [m in Project.Managers.Take(2)]>><<[m.FullName]>>,
<<[m.Email]>>
<<next>><<if [m.FullName != null]>><<[m.FullName]>>,
<<[m.Email]>><</if>><</foreach>>
<</if>>
Quote
Quote details.
| Field name | Data type | Description |
|---|---|---|
| Number | string | Quote number |
| TotalCost | decimal | Total project cost |
| Currency | string | Alphabetic currency code |
| CurrencySymbol | string | Currency sign |
| DueDate | DateTime | Quote validity |
| ClientContactName | string | Contact person name used in a quote |
| ClientContactEmail | string | Contact email address used in a quote |
| Services | Service[] | List of services |
Service
| Field name | Data type | Description |
|---|---|---|
| Name | string | Service name |
| SourceLanguage | string | Source language |
| TargetLanguage | string | Target language |
| UnitCount | decimal | Number of service units |
| Rate | decimal | Rate per unit |
| TotalCost | decimal | Total service cost |
| UnitType | string | Type of units payable |
| DetalizationRows | DetalizationRow[] | List of elements included in the service breakdown |
DetalizationRow
| Field name | Data type | Description |
|---|---|---|
| Name | string | Unit category name, for example: 102% matches, repetitions |
| UnitCount | decimal | Number of units within a breakdown element |
| Rate | decimal | Discounted rate per payable unit |
| FullRate | decimal | Full rate per payable unit |
| TotalCost | decimal | Total cost of a breakdown element |
| UnitType | string | Type of units payable |
Below is an example of how to use the Quote object. This displays the list of services, specifying the source and target languages:
<<foreach [s in Quote.Services]>><<[s.Name]>>
<<if [s.TargetLanguage != null]>><<[s.SourceLanguage]>> - <<[s.TargetLanguage]>><</if>>
<</foreach>>
Still need help?
Our support team responds within one business day.