Hi Ruby,
thanks for your question.
Short answer
Yes – in SAP S/4HANA Cloud, Public Edition, the recommended way to add a custom PO header or item text and make it visible in the Fiori PO apps is to use
key‑user extensibility via the “Custom Fields” app (Custom Fields & Logic). You work with the
Procurement: Purchasing Document and
Procurement: Purchasing Document Item business contexts and then enable the field on the relevant UIs and (optionally) APIs.
[help.sap.com],
[help.sap.com],
[help.sap.com],
[help.sap.com]Because your PO is not printed and is only stored for reference, you do not need to touch forms/output management – you can keep everything in the Fiori and API layer.
Recommended approach (header & item text visible in PO Fiori apps)
Below is a generic pattern that works for the standard PO apps in S/4HANA Cloud, Public Edition.
1. Create the custom field in the correct business context
- Log on to the SAP Fiori launchpad as an administrator / key user.
- Open the Custom Fields app (in the Extensibility group). [help.sap.com], [help.sap.com], [help.sap.com]
- Create a new custom field:
- Choose + (Add).
- For a header‑level PO text, use business context
- For an item‑level PO text, use business context
- Choose a suitable field type, for example:
- Text with appropriate length (for short notes), or
- Long Text / Text Area if you want a longer, free‑form comment field (depending on what’s offered in your release).
- Maintain the basic properties (label, tooltip, length, etc.) and save the draft.
The external documentation confirms that key users can extend the purchase order apps using exactly these business contexts for header and item level.
[help.sap.com]
2. Enable the custom field in the relevant PO UIs (Fiori apps)
After the field is created, you must explicitly enable it for the Fiori apps:
- In Custom Fields, open your newly created field again.
- Go to the UIs and Reports tab. [help.sap.com], [help.sap.com]
- Look for the PO‑related data sources, for example (names may vary slightly by release):
- Purchase Order GUI Application (header)
- Purchase Order Item GUI (item) [help.sap.com]
- Plus any specific Fiori apps you use such as:
- Tick the checkbox to enable your field for these UIs.
- Publish the custom field.
According to the PO extensibility documentation, once you have enabled the custom fields for the purchase‑order‑related data sources in the
UIs and Reports section, the fields appear in the
Custom Fields section of the PO header and/or item details.
[help.sap.com]After publishing, users will typically see your field:
- In the header details → “Custom Fields” or similar subsection.
- In the item details → “Custom Fields” tab/section at item level.
3. (Optional) Enable the custom field for APIs used to replicate the PO from the external system
Because your POs are coming from an external system and only stored in S/4HANA Cloud for reference, you likely also want this custom text field to be available in the integration layer.
- Stay in the same custom field in the Custom Fields app.
- Still under UIs and Reports, look for API / data source entries, for example:
- Purchase Order (OData V4) – this API explicitly supports extension fields added via the Custom Fields app. [help.sap.com]
- Enable the field for the relevant API and re‑publish.
The Purchase Order (OData V4) API documentation states that you can add extension fields to the API via the Custom Fields app and Custom Logic app (Key User Extensibility).
[help.sap.com]If you are using the asynchronous SOAP API
PurchaseOrderRequest_In to create or update POs from your external system, you can review that service as well and align the mapping so that your external field (from the source system) is mapped into the new custom field in S/4HANA Cloud.
[help.sap.com]
4. Use (optional) custom logic for defaults or validations
If you need additional behavior around the new text, you can use key‑user BAdIs via Custom Logic:
- Open the Custom Logic app. [help.sap.com]
- Search for PO‑related enhancement options (BAdIs) and create an implementation that:
- Sets a default value for your text based on other header or item data, or
- Performs checks/validations (e.g., require a comment if some condition is met).
The general extensibility guide explains that BAdIs can be implemented via Custom Logic to adapt app behavior, including additional checks or default values, and they work nicely in combination with custom fields.
[help.sap.com]
5. Governance / operations tip
From a project and operations perspective, it’s a good practice to document all extensibility objects (custom fields, logic, CDS views, etc.) so you understand their impact on future releases and upgrades. This is a general recommendation for S/4HANA Cloud Public Edition projects: every change to extensibility objects should be tracked and documented.
This is especially relevant in your scenario where POs are replicated from another system – it ensures everyone knows how the custom text is filled, mapped, and displayed.
Notes / constraints
- Edition & scope: The above is valid for SAP S/4HANA Cloud, Public Edition and its PO Fiori apps using the key‑user extensibility framework (Custom Fields app). [help.sap.com], [help.sap.com], [help.sap.com], [help.sap.com]
- No change to standard PO types needed: Adding such a field is done via extensibility. You should not need to change standard PO document type configuration to achieve this. (There is a general recommendation not to change standard PO/PR document type configuration, but to use copies if you need different behavior.)
- Output / printing: Since you explicitly said the PO will not be printed, there is no need to enable the field on forms or email templates. If in future you decide to print, you can also enable the custom field for form templates from the same Custom Fields app. [help.sap.com]
Sources
- Extensibility for Purchase Order Apps – business contexts and how custom fields appear in PO header/item custom fields sections [help.sap.com]
- Custom Fields app – overview & procedure – how to create and publish custom fields, enable them for UIs/APIs/templates [help.sap.com], [help.sap.com], [help.sap.com]
- Purchase Order (OData V4) API – support for adding extension fields via Custom Fields & Logic [help.sap.com]
- PurchaseOrderRequest_In (SOAP) – inbound purchase order service for external systems [help.sap.com]
- Adaptation of App Behavior / Custom Logic app – using BAdIs for additional checks, defaulting, mappings with custom fields [help.sap.com]
- Project recommendation: keep track of every change made to extensibility objects – general best practice for S/4HANA Cloud Public Edition projects
AI transparency note
If this helps, please mark the answer as accepted so others can benefit as well. Thank you.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.