XML Data Export and Integration
The app supports exporting your data in XML format (products.xml), allowing you to integrate registered products and batches with third-party ERPs, WMS systems, inventory management software, or custom automated scripts.
Access Requirements
PRO Subscription Required in Individual App
- Expiry Tracker (Individual App): Data export features (including XML and Excel) are exclusive to PRO subscribers. If you attempt to access the export screen on a free plan, you will be prompted to subscribe.
- Expiry Tracker for Teams (Collaborative App): This feature is accessible directly on the export screen based on the permissions assigned to your role within the Workspace.
How to Export the XML File
You can generate and export the XML file directly within both mobile apps:
- Open the app (Expiry Tracker or Expiry Tracker for Teams).
- Open the side navigation menu and select Import & Export (or Export).
- On the export screen, scroll down to the XML section.
- Tap the Export to XML button.
- The application will process your registered products, batches, brands, categories, and stores to generate the
products.xmlfile. - The native sharing sheet of your device (Android/iOS) will appear, allowing you to save the file locally, send it via email, WhatsApp, or upload it to cloud storage (Google Drive, iCloud, OneDrive, etc.).
Exported XML File Structure
The exported XML file follows a standardized hierarchical structure. Below is an example of the generated XML content:
<data>
<total>
<products>5</products>
<brands>2</brands>
<categories>3</categories>
<stores>2</stores>
</total>
<brands>
<brand>
<id>1</id>
<name>Brand A</name>
</brand>
<brand>
<id>2</id>
<name>Brand B</name>
</brand>
</brands>
<categories>
<category>
<id>1</id>
<name>Category X</name>
</category>
<category>
<id>2</id>
<name>Category Y</name>
</category>
<category>
<id>3</id>
<name>Category Z</name>
</category>
</categories>
<stores>
<store>
<id>1</id>
<name>Store 1</name>
</store>
<store>
<id>2</id>
<name>Store 2</name>
</store>
</stores>
<products>
<product>
<name>Product A</name>
<code>7891000100100</code>
<photo>product_a.jpg</photo>
<daysToBeNext>10</daysToBeNext>
<created_at>2024-12-01</created_at>
<updated_at>2025-01-01</updated_at>
<batches>
<batch>
<name>Batch 1</name>
<expDate>2025-06-30</expDate>
<amount>100</amount>
<price>10.50</price>
<price_tmp>9.50</price_tmp>
<status>checked</status>
<created_at>2024-12-01</created_at>
<updated_at>2024-12-15</updated_at>
</batch>
<batch>
<name>Batch 2</name>
<expDate>2025-08-31</expDate>
<amount>50</amount>
<price></price>
<price_tmp></price_tmp>
<status>unchecked</status>
<created_at>2024-12-10</created_at>
<updated_at>2024-12-20</updated_at>
</batch>
</batches>
<brand>
<id>1</id>
</brand>
<category>
<id>1</id>
</category>
<store>
<id>1</id>
<name>Store 1</name>
</store>
</product>
</products>
</data>
Field Mapping and Data Dictionary
| XML Tag | Description | Notes |
|---|---|---|
<total> | Overview counts of elements in the XML. | Contains counts for <products>, <brands>, <categories>, and <stores>. |
<brands> / <brand> | List of brands linked to products. | Contains <id> and <name>. |
<categories> / <category> | List of product categories. | Contains <id> and <name>. |
<stores> / <store> | List of store branches/locations. | Contains <id> and <name>. |
<product> | Main product item. | Contains item metadata and nested batch array. |
<name> (Product) | Product name. | Text field representing item description/name. |
<code> | Barcode, EAN, GTIN, or SKU. | Unique product identifier. |
<photo> | Product image file name/path. | Image reference saved locally or in cloud storage. |
<daysToBeNext> | Alert threshold in days. | Days prior to expiration to trigger pre-expiry alert. |
<batches> / <batch> | List of batches for the product. | Contains individual batch details. |
<expDate> / <exp_date> | Batch expiration date. | Format YYYY-MM-DD. |
<amount> | Quantity in stock. | Integer or decimal quantity value. |
<price> | Selling price. | Unit retail price for the batch. |
<price_tmp> | Temporary or promotional price. | Sale or promotional price. |
<status> | Batch verification status. | Returns checked (Handled/Verified) or unchecked (Pending). |
<brand> / <category> / <store> (inside <product>) | Product relational links. | References matching <id> defined in header sections. |
Step-by-Step Integration with External Systems
- Check System Compatibility: Verify that your destination ERP or database management software supports XML imports.
- Map XML Fields: Align exported XML tags with your target database schema (e.g., map product
<name>toproduct_name,<expDate>toexpiry_date). - Use or Create Import Scripts: If your system does not feature a native XML import tool, build a custom script (using Python, Node.js, PHP, C#, etc.) to parse the XML tree and write entries into your database or via REST API.
- Ensure Data Backup: Always perform a complete backup of your target system's database prior to running batch imports.
- Run Test Imports: Test the import pipeline using a small sample dataset first to verify that dates, prices, and quantities parse correctly.