Creating an Invoice/Estimate Printable Template Layout
The Custom Invoice Builder lets you design how invoices, estimates, sales orders, notes, and refunds look when viewed and printed: the logo, your business and client details, the item columns, labels, colors and fonts, and custom fields. This guide explains the steps to create the layout, and everything you can add, hide, or rename in it, including showing the product code (SKU) in the items table, and hiding Paid and Balance Due from the invoice.
✦ Edit the layout with AI
Instead of doing the steps manually, you can click Edit with AI at the top of the layout screen, and type the change you want in Arabic or English, for example: “Make the items table header blue”, “Add the total quantity below the items table”, or “Add the stamp below the total”. The AI edits the layout and the preview updates immediately, then you click Save. You can go back to manual editing at any time from Continue Manually. This feature requires AI credit (AIC), and the chat doesn’t change the paper size, margins, default font, or layout name; these are edited from their panels.
🛈
Note: This requires the permission Edit General Settings.
Table of Contents
- Creating a new layout
- Template Details
- Layout builder sections
- Item Columns
- Showing the product code (SKU) in the items table
- Showing the total quantity in the invoice
- Adding custom fields to the layout
- Adding the branch name and details to the layout
- Labels
- Style
- Hiding Paid and Balance Due from the invoice
- What appears and disappears automatically
- Table: what can be added or hidden, and how
- Common problems and solutions
- FAQs
Creating a new layout
- From the main menu, click Templates then Printable Templates, and select Invoices & Estimates.
- Click New Layout, and select one of the ready layouts to start from. Or click Clone on an existing layout to edit a copy of it.
- Edit the sections from the side menu, and the changes appear in the preview immediately.
- Enter the layout name in Template Name, and set Template Details.
- Click Save.
From the layouts list, for each layout: Edit, Edit Html, Clone, Delete, Mark as Voucher. The Default for: label appears on the default layout with the document types it’s used for.
Template Details
| Option | What it does |
|---|---|
| Template Name | The layout name (required). |
| Template Language | The language of the currency name in documents printed with this layout: English or Arabic (required). It doesn’t follow your account’s system language. Read Setting the Printable Template Language. |
| Set this layout as default | Makes it the default layout. From more options, you set the documents it’s the default for: invoices, estimates, sales orders, time invoices, credit notes, refund receipts, and debit notes. |
| Don’t show the currency symbol in the items list | Hides the currency symbol from item prices. |
| Always show Paid and Balance Due | Shows the Paid and Balance Due rows in the invoice. Details. |
| Add Shipping Details (Secondary Address) to the invoice | Shows the shipping address. |
| Quantity & unit price options | Show unit price before quantity, or Show quantity before unit price, or Hide quantity and unit price. |
Layout builder sections
| Section | What you can do |
|---|---|
| Title | The title of each document type: Invoice Title, Estimate Title, Draft Invoice Title, Sales Order Title, Credit Note Title, Refund Receipt title, Sales Debit Note Title. (The section appears in layouts that support a variable title.) |
| Logo | Upload the logo (up to 1 MB, JPG, PNG, or GIF) and set its width and height. If there’s no logo, its place disappears. |
| Business info | Your business details (name, address, tax number…) using variables from PlaceHolders; add or delete what you want. |
| Client info | The client details that appear in the invoice using variables; add or delete what you want. |
| Shipping info | The shipping details. They appear when shipping details are enabled. |
| Item Columns | Choose and name the items table columns, including the product code (SKU). Details. |
| Custom Fields | Extra lines in the invoice header: Custom Field, or ready values such as the PO number, payment status, total, due date, paid, balance due, next payment, discount, order source, payment time, amount, and method, and loyalty points. The field doesn’t appear if its value is empty. |
| Labels | Rename all the invoice labels. Details. |
| Header / Footer | Content repeated at the top and bottom of each page, such as the stamp, terms, or page number {%page_no%}. |
| Style | Fonts, colors, paper size, margins, and CSS code. Details. |
| Notes | Text that appears at the bottom of the invoice. You can show each invoice’s notes with the variable {%invoice_notes%}. |
🛈
Note: To see all the variables available in the sections, open Full Variables Guide.
Item Columns
In Item Columns there are five column slots, and each has a Field and Label (the column name in the invoice). The available fields:
- Auto Serial, Product Image, Item, Description (with the primary or secondary name when a secondary language is enabled).
- Product Code (SKU), Barcode, Brand, Category.
- The name, percent, and value of the first and second tax.
- Warehouse, Subtotal, Sales Person, Account, Cost Center, and the product custom fields.
- The unit price, quantity, and subtotal columns are fixed, and you can hide the price and quantity from Quantity & unit price options.
- Show Unit Column with Unit Column Label: to show the unit of measure.
- To hide a column, leave its slot empty.
🛈
Note: In “Tax Invoice” layouts, it’s not recommended to change the columns other than the item and description, so the layout formatting doesn’t break.
Showing the product code (SKU) in the items table
The product code is the SKU (item number). To show it as a column in the items table, follow these steps:
- Open Invoices & Estimates, and click Edit on the layout you use.
- From the side menu, click Item Columns.
- In one of the empty rows (Select Field), select Product Code from the Field list. The column name appears in the Label slot, and you can edit it, for example: SKU.
- Click Save in the panel, then Save at the top of the page.
To hide the column later, leave its slot empty.
🛈
Note: This guide covers the layouts mentioned in its introduction. Purchase invoices and purchase refunds have a separate layout builder from Purchase Invoices.
Showing the total quantity in the invoice
The item columns don’t have an option for the total quantity, but you can show it with the variable {%invoice_item_qty%}, which shows the total quantities of all the invoice items. It appears in the placeholders list as Invoice quantity count. There’s also the variable {%invoice_item_count%} for the number of items (number of lines), named Invoice Item Count.
| Place | Where it appears | Invoices it appears in |
|---|---|---|
| Notes (best) | Below the items table and totals. | All invoices that use the layout, new and old. |
| Custom Fields → Custom Field | A line in the invoice header. | New invoices only. |
| Edit with AI | Where you ask, for example: “Add the total quantity below the items table”. | All invoices that use the layout. |
| Edit Html | Anywhere you choose in the layout code. | All invoices that use the layout. |
To show it below the items table from Notes:
- Open Invoices & Estimates, and click Edit on the layout you use.
- From the side menu, select Notes.
- Type the label then the variable, for example: Total Quantity:
{%invoice_item_qty%}. You can select the variable from the placeholders list. - Click Save. The total quantities appear under the items table in every invoice.
To show it in the invoice header: From Custom Fields, click Add More Fields then Custom Field, type the label Total Quantity and the value {%invoice_item_qty%}, then save.
🛈
Note: The total is calculated in the product’s base unit; if you sell 2 cartons and a carton has 12 pieces, it counts as 24. It adds up the quantities of all items, including services.
Adding custom fields to the layout
You can add data that isn’t in the layout by default, such as the bank account number, IBAN, commercial registration number, or any data specific to your business. There are three methods, so choose the right one based on the data type:
| Method | Suitable for | Where it appears |
|---|---|---|
| Fixed text in Business info or Notes or Footer | Fixed data that doesn’t change, such as the bank account and bank name. | In all invoices that use the layout, new and old. |
| Custom Field from the Custom Fields | A line with a label and a value in the invoice header, and its value can be edited in each invoice. | In new invoices created after adding it. |
| Custom field variable from the invoice fields | A value that differs from one invoice to another and is entered in the invoice form. | In every invoice that has a value in this field. |
Method 1: Fixed text in Business info, Notes, or Footer
- Open Invoices & Estimates, and click Edit on the layout you use.
- From the side menu, select Business info to show the data next to your business details, or Notes to show it at the bottom of the invoice, or Header / Footer to show it on every page.
- Type the data as text, for example: Bank: Example Bank — Account number: 1234567890 — IBAN: SA0000000000001234567890.
- Click Save.
The data appears immediately in all invoices that use this layout, including old invoices.
Method 2: Custom field from the Custom Fields section
- Open the layout from Invoices & Estimates and click Edit.
- From the side menu, select Custom Fields.
- Click Add More Fields then Custom Field.
- Type the Label, such as the bank account number, and the Value, such as the account number or IBAN.
- Sort the field with the arrows if you want, then click Save.
- The field appears in the invoice header with the label and value.
- The field is copied automatically to every new invoice that uses this layout, and you can edit its value or delete it from inside the invoice.
- The field isn’t added to invoices created before adding it. To add it to an old invoice, edit it and add the field manually from Custom Field.
- From the same list, you can add ready values instead of the custom field, such as the PO number, payment status, due date, and payment method.
Method 3: Custom field variable from the invoice fields
If the data differs from one invoice to another, such as the project number or contract number, create it as an invoice custom field, then add its variable in the layout:
- Create the field from Sales Settings → Invoice Custom Fields.
- Open the layout, and select the section you want to show the field in, such as Client info or Notes.
- Add the field variable from the PlaceHolders list. It appears with the field name, for example
{%field_15%}, then save.
The field value is entered in each invoice form, and it appears in the print in place of the variable.
🛈
Example: To show the bank account in all invoices, add it with method 1 in Notes. If you have more than one bank account and want to choose the account for each invoice, create an invoice custom field of the dropdown type with the account numbers, and add its variable in the layout with method 3.
Adding the branch name and details to the layout
When the Branches app is enabled, you can show the name and details of the branch the invoice was issued from in the layout, using the branch variables. They are filled automatically with the invoice branch details, so one layout is enough for all branches.
- Open Invoices & Estimates, and click Edit on the layout you use.
- From the side menu, select the section you want to show the branch in, such as Business info (next to your business details) or Header or Footer.
- Type the label you want, then add the variable, for example: Branch:
{%invoice_branch_name%}. You can select the variable from the PlaceHolders. - Click Save.
| Data | Variable |
|---|---|
| Branch name | {%invoice_branch_name%} |
| Branch code | {%invoice_branch_code%} |
| Branch phone | {%invoice_branch_phone1%} / {%invoice_branch_phone2%} |
| Branch address | {%invoice_branch_address1%} / {%invoice_branch_address2%} |
| City / State / Country | {%invoice_branch_city%} / {%invoice_branch_state%} / {%invoice_branch_country%} |
| Branch location on the map (image) | {%invoice_branch_map_location%} |
- The same variables work in estimates, sales orders, notes, and refunds that use the layout.
- The branch details (name, phone, and address) are edited from the branch page in Branches; they appear updated in all invoices.
- If the branch details are empty, nothing appears in place of the variable.
🛈
Note: If you want the branch name to appear instead of your business name, delete the business name variable from Business info and put in its place {%invoice_branch_name%}. In e-invoices, make sure the required business name and tax number still appear.
Labels
From Labels Select the section, and change any label that appears in the invoice:
| Section | Labels |
|---|---|
| General | Item, description, unit price, quantity, subtotal, total, Paid, Balance Due, payment status, due after, due date, next payment, from/to date, discount, ship to, shipping fees, PO number, to, order source, and payment method. |
| Invoice | Invoice number and invoice date. |
| Estimates | Estimate number and estimate date. |
| Sales Order / Refund Receipt / Credit Note / Debit Note | The number and date for each, and Refunded label. |
🛈
Note: Emptying a label hides the text only, but its value appears without a title. To hide a whole row, use the methods in Hiding Paid and Balance Due and Table of what can be added or hidden.
Style
| Option | Description |
|---|---|
| Default Font | Family (System Fonts or Google Fonts) and Size. |
| Items Table Style | Border Color, Header Background Color, Header Text Color, Odd Background Color, Even Background Color. |
| Paper Size | A3, A4, or A5, or Other with the width and height in centimeters. |
| Paper Margin | Top, bottom, left, and right in centimeters. |
| CSS Code | CSS code for advanced changes, such as hiding specific rows or adding a watermark. |
Hiding Paid and Balance Due from the invoice
Method 1: From Template Details
- Open Invoices & Estimates, and click Edit on the layout you use.
- In Template Details, clear Always show Paid and Balance Due.
- Click Save.
In most layouts, the Paid and Balance Due rows disappear from all invoices. In some old layouts, they disappear only when the invoice is unpaid or fully paid, and they appear in the invoice that is partially paid.
Method 2: Always hide them with CSS code
If they appear after method 1, open Style → CSS Code and paste:
.row-paid-amount,
.row-unpaid-amount {
display: none;
}
Method 3: From Edit Html
In old layouts, you can delete the paid and balance due part from the layout code from Edit Html, which is the part between <!-- PaidAmount --> and <!-- /PaidAmount -->. Try this on a copy of the layout first, and for more details see the guide Custom Changes to the Invoice Layout: Watermark, Two-Page Invoice and More.
🛈
Note: Paid and balance due don’t appear at all in estimates, credit notes, and refunds. If you want to show them in the invoice header instead of the bottom, add them from Custom Fields.
What appears and disappears automatically
- Discount column: appears automatically only if one of the items has a discount.
- Description column: disappears automatically if no item has a description.
- Subtotal row: disappears if it equals the total.
- Discount, tax, shipping fees, and refund rows: appear only if they have a value.
- Unit column: appears only if one of the items has a unit of measure.
- QR code: added automatically in e-invoicing layouts (Saudi Arabia and Jordan).
- Logo: its place disappears if no logo is uploaded.
- In the free plan, the system footer appears automatically.
Table: what can be added or hidden, and how
| Element | Method |
|---|---|
| Paid and balance due | Clear Always show Paid and Balance Due, or CSS code. |
| Currency symbol in item prices | Don’t show the currency symbol in the items list. |
| Unit price and quantity | Quantity & unit price options. |
| Any column in the items table | Item Columns (leave the slot empty or select another field). |
| Product code (SKU) in the items table | Item Columns → select Product Code from the Field. Details. |
| Unit column | Show Unit Column. |
| Any change in the design or content | Ask for it from Edit with AI at the top of the layout screen. |
| Total quantity or number of items | Variable {%invoice_item_qty%} or {%invoice_item_count%} in Notes. Details. |
| Shipping address | Add Shipping Details (Secondary Address) to the invoice. |
| Your business or client details (such as the tax number or mobile) | Delete or add the variable from Business info or Client info. |
| Client balance | Add or delete the variable {%invoice_advanced_client_balance%}. |
| Logo | Upload or delete it from Logo. |
| Stamp or signature | Add an image from Footer or Notes. |
| Bank account number, IBAN, or any fixed data | Text in Business info or Notes, or Custom Field From Custom Fields. Details. |
| Branch name, address, and phone | The variables {%invoice_branch_name%} and others in Business info or Header. Details. |
| Due date, payment status, payment method… | Add them from Custom Fields. |
| Page number | Variable {%page_no%} in Header or Footer. |
| Any label | Labels. |
| Discount, tax, shipping, and refund rows | They appear based on their value; to always hide them, use the following CSS code. |
| QR code | From Edit Html only (not recommended in e-invoices). |
Code to hide other rows (paste only what you need in CSS Code):
/* Discount */ .row-summary-discount { display: none; }
/* Taxes */ .row-tax-summary { display: none; }
/* Shipping */ .row-shipping-amount { display: none; }
/* Refund */ .row-summary-refund { display: none; }
!
Warning: The tax invoice in some countries requires specific data (such as tax, QR code, and tax number), so don’t hide it unless you don’t need it.
Common problems and solutions
| Problem | Cause | Solution |
|---|---|---|
| I edited the layout, but the invoice look didn’t change. | The invoice uses another layout. | Make sure the layout is the default layout for this document type, or that it’s the one selected in the invoice. |
| I added a custom field, and it doesn’t appear in old invoices. | The custom field from Custom Fields is copied to new invoices only. | Type the data in Notes or Business info to appear in all invoices, or edit the old invoice and add the field manually. |
| I deleted the Paid label, but the amount still appears. | Emptying the label hides the title only. | Clear Always show Paid and Balance Due, or use CSS code. Details. |
| Paid and balance due still appear after clearing the option. | Some old layouts show them in the partially paid invoice. | Use the CSS code in Method 2. |
| I added the product code in the item columns, and its value doesn’t appear in the invoice. | The product has no code saved in its details. | Open the product from Products & Services and enter the Product Code, then print the invoice again. |
FAQs
How do I show the product code (SKU) in the invoice?
The product code is the SKU. Edit the layout, and click Item Columns, and select Product Code from the Field list in one of the empty rows, then save; the code column appears in the items table. Details in Showing the product code (SKU) in the items table.
How do I add the bank account number to the invoice?
Open Invoices & Estimates and edit the layout, and type the bank account and IBAN details in Notes or Business info then save, and they appear in all invoices. Or add them as a Custom Field From Custom Fields to appear in the header of new invoices. Details in Adding custom fields to the layout.
Can I ask AI to make the change instead of doing it manually?
Yes, click Edit with AI at the top of the layout screen and type what you want to change, such as colors, columns, labels, or adding a field, and it’s applied in the preview immediately, then save. It needs AI credit (AIC).
How do I show the total quantity in the invoice?
Edit the layout, and type in Notes: Total Quantity: {%invoice_item_qty%} then save; the total item quantities appear below the items table. Details.
How do I add the branch name to the invoice template?
Edit the layout, and add the variable {%invoice_branch_name%} In Business info or Header then save; the branch name of each invoice appears automatically. Details.
Do I need a separate layout for each branch?
No, the branch variables take the invoice branch details automatically, so one layout is enough.
How do I remove the Paid word and the balance due from the invoice?
Clear Always show Paid and Balance Due from Template Details and save. If they still appear, use the CSS code in Hiding Paid and Balance Due.
Does the change affect old invoices?
Yes, the change appears in all invoices that use the layout when you open or print them, except the custom fields added from the Custom Fields, which are copied to new invoices only.