Integrating uStore with an MIS Using JDF and Order XML
This article explains how to use uStore's built-in JDF output and Order Details XML to provide order and job information to a Management Information System (MIS) such as EFI PrintSmith, or to other production automation systems.
Note: There are a several uStore/MIS integrations that extend the beyond the default functionality available. These integrations have been developed and are supported by Professional Services team. This technical note includes only the generic information and methods for sending order information to an MIS system.
For information about these uStore/MIS integrations, please contact your XMPie regional representative or visit: https://www.xmpie.com/products/services/software-professional-services/
Overview
When a customer places an order in uStore, the system can automatically generate two types of structured XML output:
-
JDF (Job Definition Format) – An industry-standard file that describes the print job's production requirements (media, finishing, color, etc.). JDF files are created when an order is sent to a prepress workflow and are primarily intended for print production systems.
-
Order Details XML (or cXML) – A file containing the complete order information: pricing, customer details, shipping addresses, product quantities, personalization values, and payment data. This output is designed for business systems such as MIS, ERP, and CRM solutions.
Together, these two outputs give an MIS solution access to both the production specifications and the business details of every order processed through uStore.
This article covers what each output contains, how to configure them, and how an external system can consume them.
Order Details XML
What Is the Order Details XML
The Order Details XML action generates a structured file containing all business-level information about an order. This action, along with its corresponding message can be configured to trigger automatically based on several uStore events, such as Order State Transition, Order Submission in Customer Application, Order Approval and others. The message (generated from an XSL-based template) can be sent to a file system or a web service.
uStore supports two output formats:
|
Format |
Template Name |
Description |
|---|---|---|
|
Standard XML |
OrderDetailsXML |
A hierarchical XML structure using uStore's own schema. Suitable for most integrations where you control the receiving system. |
|
cXML |
Order Details in cXML |
Follows the Commerce eXtensible Markup Language (cXML) standard. Suitable for B2B and EDI integrations where the receiving system expects cXML-formatted purchase orders. |
What Does the Order XML Contain
The standard Order Details XML includes the following information:
|
Section |
Data Included |
|---|---|
|
Order |
Order ID, creation date, submission date |
|
Prices |
Subtotal, shipping price, mailing price, tax (with breakdown), coupon discount, total price, cost |
|
Store |
Store ID, external ID, landing domain, currency, pickup address |
|
Customer |
User ID, external ID, name, email, phone, mobile, fax, company, department, job title |
|
Billing Address |
Name, company, address lines, city, state/province, zip, country, phone, email, fax, and if included the EORI number, tax ID |
|
Deliveries |
Delivery method (shipping/mailing), provider, service, price, shipping tax, shipping address, delivery items with quantities and if included the EORI number and tax ID |
|
Order Products |
For each product: quantities (recipients, copies, total units), prices (per unit, subtotal, mailing, total, cost, tax), manufacturer details, delivery info, product name/ID/type/catalog number |
|
Dial Values |
Personalization parameters selected by the customer (name, value, display name) |
|
Property Values |
Product property selections (e.g., paper type, binding) |
|
Clearing |
Payment method and transaction result data |
The cXML format contains the same business data but structured according to the cXML standard, with elements like Header (From/To/Sender), Request > OrderRequest > OrderRequestHeader, and ItemOut elements for each product.
Where the Data Comes From
The Order Details XML is generated by SQL stored procedures that query the uStore database. The following table shows the primary database tables behind each section of the XML:
|
XML Section |
Primary Source Tables* |
Notes |
|---|---|---|
|
Order |
Orders |
OrderId, EncryptedOrderId, dates, tax, notes |
|
Prices |
Orders, OrderExtendedData |
Various amounts, tax from OrderExtendedData.TaxDetailsXML |
|
Store |
Store, Currency, Address |
Pickup address via Store.PickupAddressId |
|
Customer |
Users |
Linked via Orders.UserID |
|
Billing Address |
Orders (Bill_* columns) |
State/Country resolved via Province and Country tables |
|
Delivery & DeliveryItems |
DeliveryTentative, DeliveryItem, DeliveryProvider, DeliveryProviderService |
Ship_* columns for address; method from DeliveryMethod |
|
Order Products |
OrderProduct, Product, Product_Culture, PricingModelPrice, Manufacturer |
Generated by fn_Get_OrderProduct_DetailsXml function |
|
Dial (Customization /Property) Values |
OrderProductDialValue, Dial, Dial_Culture |
Properties distinguished by Dial.IsProperty flag |
|
Clearing |
Orders.ClearingResult, ClearingConfig |
Payment result stored as XML in Orders table |
* Each XML section SQL uses many tables, and most refer to culture table
The stored procedures that generate the XML are:
-
Order_DetailsXml – generates the standard XML format
-
Order_DetailscXml – generates the cXML format
Note: Direct database access is required to run these stored procedures or query the underlying tables. If you are in a hosted environment, you may not have this access. See the Important Considerations section for alternatives.
How to Configure Order Details XML Export
Configuration is done through the uStore Back Office trigger system. In brief:
-
Go to Presets > Trigger Setup and create a new rule.
-
Set the Event to Order Submission in Customer Application (or Order Approved if your store uses an approval workflow).
-
Set the Filter to Order Details Filter and the Action to Order Details XML.
-
Choose a delivery method:
-
Save to Disk – XML is written to a specified folder path.
-
Call a Web Service – XML is posted to a SOAP endpoint (.asmx/.svc) implementing void Execute(XmlDocument orderXml).
-
HTTP POST – XML is posted to a generic HTTP endpoint (e.g., .ashx handler).
-
-
Select a template: OrderDetailsXML or Order Details in cXML.
-
Click Save Rule.
For detailed step-by-step instructions, see Exporting Order Information as XML or cXML in uStore online help.
How an MIS Can Consume the Order XML
-
File polling: Configure uStore to save XML to a shared folder. Set up the MIS to monitor that folder and import new files as they arrive.
-
Web service: If your MIS exposes a SOAP or HTTP endpoint, configure uStore to call it directly. Order data is delivered in real time.
-
Custom middleware: Build a service that receives the XML from uStore and transforms it into the format your MIS expects.
JDF Output
What Is JDF
JDF (Job Definition Format) is an industry standard designed to simplify information exchange between different applications in the graphic arts industry. When a prepress workflow is assigned to a uStore product, uStore automatically creates a JDF file each time a job is sent to print.
uStore's JDF output is compatible with:
-
Xerox FreeFlow Core and FreeFlow Process Manager
-
Enfocus Switch
-
HP SmartStream
-
Any JDF-enabled print device or workflow system (via manual/hot folder setup)
What Does the JDF Contain
The JDF file describes the production requirements for the print job. Its contents are determined by two things:
-
The message template (XSL-based) that generates the base JDF structure: job identification, a link to the production PDF, a link to the Order Details XML, customer information (if configured), and a callback URL for status signals.
-
JDF Nodes – additional XML fragments injected into the JDF based on the product property selections made by the customer. For example, if a customer selects "Gloss" paper, the corresponding JDF node adds the media specification to the JDF file.
Important for MIS integration: The JDF file contains a URL reference to the full Order Details XML. An MIS that receives or monitors JDF files can follow this link to retrieve the complete order information.
How JDF Nodes Work
JDF nodes map uStore product properties (such as paper type or finishing options) to JDF-compliant XML attributes. Each node consists of:
-
Node XML: The XML snippet or attribute to insert (e.g., @DescriptiveName="Media Type Gloss")
-
Node Target XPath: The location in the JDF file where the snippet is inserted (e.g., //ns:ResourcePool/ns:Media)
When the @ prefix is used, the value is added as an XML attribute. Otherwise, it is added as a child element. Nodes are organized into JDF Node Sets, which are assigned to product property options.
Where the JDF Data Comes From
The JDF file is generated by an XSLT message template combined with programmatic node injection. The key database tables involved are:
|
JDF Content |
Primary Source Tables |
Notes |
|---|---|---|
|
Base JDF structure |
MessageTemplate, MessageTemplate_Culture |
XSL template generates the JDF skeleton |
|
Job identification |
OrderProduct, Orders |
OrderProductId, OrderId, encrypted order ID |
|
Production PDF link |
OrderProduct (OutputToken) |
URL constructed using output.pdf proxy handler |
|
Order Details XML link |
(URL generated at runtime) |
Points to the Order_DetailsXml stored procedure output |
|
Customer information |
Users |
Included if CreateCustomerInfoNode is enabled |
|
JDF Nodes (media, finishing) |
JDFNode, JDFNodeSet, FieldOption, OrderProductDialValue |
Injected based on customer's property selections |
|
Prepress workflow routing |
PrepressWorkflowProvider, PrepressWorkflow |
Determines gateway URL and workflow |
How to Configure JDF Output
Setting up JDF output involves configuring a prepress workflow provider, selecting workflows, and assigning them to products. Optionally, you can configure JDF nodes to pass media and finishing attributes.
The key steps are:
-
Set up a workflow provider (Presets > System Setup > Prepress Workflow Provider) – choose Xerox FreeFlow, Enfocus Switch, HP SmartStream, or Manual, and enter the gateway URL.
-
Set up workflows (Presets > System Setup > Prepress Workflow) – for integrated providers, uStore syncs available workflows; for Manual, define the output folder.
-
Assign workflows to products (Product Profile or product settings > Prepress Setup) – select the workflow(s) and optionally enable auto-run.
-
Configure JDF nodes (optional) – create JDF Node Sets and Nodes (Presets > System Setup), then assign them to product property options.
Supported workflow providers
|
Provider Type |
Gateway URL |
Notes |
|---|---|---|
|
Xerox FreeFlow |
http://[ServerName]:7751 |
HTTPS: port 7759 |
|
Enfocus Switch |
(per Switch configuration) |
See Enfocus Switch Integration Guide |
|
HP SmartStream |
http://[ServerName]:8080/dpp/jmf/dfe |
|
|
Manual |
(leave empty) |
For hot folder setups |
uStore saves all JDF files at \\[ServerName]\App\JDF.
For detailed configuration steps, see the following uStore online help topics:
For a Xerox-specific walk-through, see Using JDF to Pass Media and Finishing Options to Printers with uStore and FreeFlow Core.
Putting It Together for MIS Integration
Integration Approaches
Depending on your MIS and infrastructure, there are several ways to connect uStore's outputs to your system:
Approach 1: Order XML File Drop
Configure the Order Details XML trigger to save files to a shared folder. Set up the MIS to poll this folder and import new order files. This is the simplest approach and requires no custom development.
Approach 2: Order XML via Web Service
Configure the trigger to call your MIS's web service endpoint. Order data is delivered in real time. Requires your MIS to expose a compatible endpoint.
Approach 3: JDF + Order XML via Prepress Workflow
Assign a prepress workflow to your products. The JDF file contains a URL to the Order Details XML, so your MIS or workflow system can extract this URL and retrieve the full order details. Ideal when your MIS is already part of the prepress pipeline.
Approach 4: Custom XSLT Transformation
For advanced integrations, you can customize the message templates to modify the output format or include additional data. The key mechanism is the Message Template SQL system.
Querying the Database with Message Template SQL
Each message template can have one or more SQL queries that feed data into the XSL transformation. This is how both the Order XML and JDF templates get their data, and how you can extend them.
Each Message Template SQL entry has three fields:
-
Message Template Id: Links this query to a specific template.
-
SQL Text: The SQL query to execute. Can use event parameters such as @OrderId, @StoreId, @UserId, @OrderProductId, @CultureId.
-
Name: A unique node name (RecordSetName) that becomes the XML element wrapping this query's results.
uStore formats the SQL results into XML automatically:
<sqls>
<RecordSetName>
<Row>
<ColumnName>value</ColumnName>
</Row>
</RecordSetName>
</sqls>
Table Results vs. Individual Values
-
Individual values (single row): A query returning one row produces one <Row> element. Access in XSL with:
<xsl:value-of select="/sqls/NodeName/Row/FieldName"/> -
Table results (multiple rows): A query returning multiple rows creates multiple <Row> elements. Iterate in XSL with:
<xsl:for-each select="/sqls/NodeName/Row">
To add custom data to an existing template, add a new Message Template SQL entry (Presets > System Setup > Message Template SQL), then modify the template's XSL to reference your new data using XPath expressions.
Note: Customizing message templates requires XSLT knowledge and direct access to the uStore Back Office System Setup tables. This may not be available in all hosted environments. Always test changes in a non-production environment first.
Choosing Between XML and cXML
|
Consideration |
Standard XML |
cXML |
|---|---|---|
|
Your MIS has a specific import format |
Preferred – easier to transform with XSLT |
Use if your system requires cXML |
|
B2B / EDI integration |
Not designed for B2B |
Preferred – follows B2B procurement standards |
|
Custom integration |
Simpler structure, easier to parse |
More complex, but standardized |
|
Validation |
No formal DTD |
DTD-validatable (cXML 1.2.024) |
Important Considerations
-
Hosted environments and SQL access: If your uStore is hosted (e.g., by XMPie or a partner such as AlphaGraphics), you may not have direct access to the server file system, the uStore database, or the ability to run SQL queries. Network security policies (such as ZScaler or firewall rules) may further restrict database connectivity even for on-premises installations – in some environments, running SQL queries is only possible by remoting directly into the uStore server (e.g., via RDP). In these cases, the web service or HTTP POST delivery method for Order XML is strongly recommended, as it delivers order data without requiring server-level or database access.
-
Approval workflows: If your store requires order approval, set the Order Details XML trigger event to "Order Approved" instead of "Order Submission in Customer Application".
-
Template customization: The Order Details XML and JDF output are generated using XSLT message templates that can be customized (Presets > System Setup > Message Template). Requires XSLT knowledge.
-
Message Template SQL and Template customization: It is recommended (or in some cases, required) to duplicate the message template and its required SQL. The best place to do this is at the trigger setup. Then modify the newly duplicated SQL calls and template; keep the original templates and SQL calls as is.
-
JDF file location: JDF files are saved to \\[ServerName]\App\JDF. This folder can be accessed for debugging or for file-based monitoring by an MIS.
Further Reading
Created on April, 2026