Generated page. Written from IdaMilk/NetSuite_Custom_Forms at commit ef44688 on 2026-07-28. No README; inferred from the two files present.
NetSuite Custom Forms
What is it?
Two NetSuite Advanced PDF/HTML templates under source control — the Invoice and Purchase Order transaction forms.
| File | Size | Form |
|---|---|---|
Invoice.xml | 9 KB | Customer invoice |
Purchase_Order.xml | 15 KB | Purchase order |
Purpose
Advanced PDF templates control what a customer or supplier actually receives. They are edited in the NetSuite UI by default, which means no history, no review, and no way to tell what changed when a document suddenly renders wrong.
Keeping the XML in git gives those documents the same treatment as code.
How it Works
NetSuite's Advanced PDF templates are BFO (Big Faceless Report) XML with FreeMarker templating. The structure is:
- A
<head>declaring fonts, with locale-conditional blocks that swap in CJK and Thai font families forzh_CN,zh_TW,ja_JP,ko_KRandth_TH - A
<macrolist>definingnlheaderandnlfootermacros, which NetSuite calls on every rendered page - A
<body>laying out line items and totals as HTML-like tables
FreeMarker expressions pull from the record and from company settings — companyInformation.logoUrl, .locale, and the transaction's own fields.
Editing these
The round trip is manual in both directions:
- Customise the form in NetSuite (Customization → Forms → Advanced PDF/HTML Templates)
- Export the template XML
- Commit it here
Nothing enforces that the committed file matches what is deployed. As with SuiteScripts, this repository is a record, not the source of truth — a form edited in the UI and not re-exported leaves git silently stale. Suntado SDF is the managed alternative; custom forms can be deployed as SDF objects.
A note on the committed templates
Invoice.xml embeds the company logo as an absolute NetSuite File Cabinet URL containing the account id and a media access hash. That hash is a bearer token — anyone holding the URL can fetch the file without authenticating. It is only a logo, so the exposure is minor, but the pattern is worth knowing about before it is copied into a template referencing something more sensitive.
The URL is deliberately not reproduced on this page, per the wiki's redaction policy.
Repository
| Repository | IdaMilk/NetSuite_Custom_Forms |
| Primary language | XML (BFO / FreeMarker) |
| Files | 2 |
| Last activity | 2026-07-22 |
| Status | Active |
| README | None — a short note on the export/import round trip would prevent the "is this current?" question |
Only two of the many transaction forms in the account are captured here. Bill of Lading and Certificate of Analysis templates live with their Suitelets in SuiteScripts instead.