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:

  1. Go to Presets > Trigger Setup and create a new rule.

  2. Set the Event to Order Submission in Customer Application (or Order Approved if your store uses an approval workflow).

  3. Set the Filter to Order Details Filter and the Action to Order Details XML.

  4. 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).

  5. Select a template: OrderDetailsXML or Order Details in cXML.

  6. 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