Horizon ERP API Sync

ECI Horizon ERP now has direct integration with EvolutionX using our new App Store Sync. This replaces EvoLink and adds new features.

Andy Flint avatar
Written by Andy Flint
Updated today

Switching from EvoLink to Horizon ERP API Sync is now possible with EvolutionX App Store and the Horizon API. This method allows the end user to view all orders (including those placed on ERP), invoices and account balances. You can also use quote prices to override general live pricing.

⚠️ Note — This integration is now available.

  • A migration from EvoLink may be required and you should work with Horizon and EvolutionX to cary this out. Details of the migration steps are below.

  • Customers who run more than one EvolutionX store should consult with Horizon Support before using this integration method.

Features and Notes about the Horizon API Sync with EvolutionX

Scheduled and On Demand Sync of Records

The customers updated in Horizon will be sync'd to EvolutionX at the set time, or as requested by a Horizon users. Discuss the schedule and options with Horizon Software support. We would recommend setting this to continuous sync.

Customer Sync can also be performed on demand by clicking the run customers now button in Horizon. We would recommend setting this

Customer Accounts & Horizon Traders

  • Horizon → EvolutionX — The sync is one way which creates customers in EvolutionX but any customers created in EvolutionX do not become Traders in Horizon.

  • Horizon Trader RecordS and D type records are added and updated from Horizon. You can choose which are available for use on the website by choosing allow delivery and / or invoice options.

  • EvolutionX Parent Child Accounts — consult with your EvolutionX Customer Success team if you are already using EvolutionX and considering this change.

  • Horizon Account Manager — One Primary Account Manager is now updated on the customer Trader record in Horizon. Note that you must already have your Account Managers loaded in EvolutionX Settings . The name set in EvolutionX must match the Horizon account manager name.

  • Horizon Trader Trading Status — Setting the Horizon trader status to On Stop will require the customer to use Credit Cards in the EvolutionX Checkout.

  • Horizon Departments → EvolutionX Cost Centres — The Horizon feature for Department maps to the EvolutionX cost centres. Note that cost centre restrictions is supported by the Horizon sync to EvolutionX.

Customer Users & Horizon Contacts

  • Horizon Contacts → EvolutionX (users) — The sync is one way and users created in EvolutionX do not become Horizon Contacts. Each contact should have: Allow web access selected, and a unique email address.

  • Creating Users from Horizon Contacts — All Horizon Contacts which are Web Enabled will be created and updated as users in EvolutionX. ** If the web enabled setting is disabled, the user will be set as a disabled user in EvolutionX and will not be able to use the website.***

    • The Horizon Contact Email is the Email used for the user in EvolutionX. Note that this must be a unique and valid email address. The EvolutionX username is not a supported field in the sync and can only be managed in the EvolutionX Admin.

  • Horizon Contact Names — Horizon has several name fields for each contact but the "Display Name" field is the only one that is used for the Name of the EvolutionX user.

  • Password — A password does not need to be set in Horizon

  • Order Roles for Users — Due to the support for Live Order History, which shows the full Order History from Horizon for the customer account, User Role settings for orders include these effects:

    • View Orders — This shows order history for the current user who is accessing on the storefront. It will only include orders from that user, using the user "Seller Reference" field.

    • View All Orders — This shows order history for the current customer account, it will include all orders from any storefront user or telephone order for that acc

Customer Addresses and Horizon Trader Addresses

  • Horizon → EvolutionX — The sync is one way so addresses created in EvolutionX do not become addresses in a Horizon Trader.

  • Active Addresses — Horizon addresses with S and D type records are added and updated from Horizon. You can choose which are available for use on the website by choosing allow delivery and / or invoice options. If an address is made unavailable in Horizon it will be disabled in EvolutionX.

  • New Addresses on Orders are not stored against the trade in Horizon.

    • Orders will have an Ad-Hoc address if the address doesn't match one stored in Horizon.

Contract Prices and Live Prices

  • Contract Pricing are sent as Price rules to EvolutionX daily or on request with a sync of 'item / product' deals 'Run Now' button. If customer prices are no longer being sync'd they will auto delete after the price rule expiration.

  • Live Pricing can be enabled on EvolutionX to check pricing for all items that appear on a storefront page, are added to cart, or used in the Admin quotes screen.

Web Order Processing

Credit Card Payments

  • CC payment methods can be used in EvolutionX. Horizon does not integrate with them but does note that the order is paid by CC as it processes the order. In EvolutionX set these payment methods as either:

  • Pre-auth and Charge Now — this setting fully charges the card during checkout and requires no manual steps unless a refund or additional charge is required.

  • Pre-auth and Capture on Dispatch — this setting requires manual steps staff must take to capture the payment otherwise the order may be shipped without payment.

  • Order Status Updates — Order status in EvolutionX is not shown to the customer since we use Live Lookup to Horizon to show the Horizon order status. EvolutionX does get limited update about order status of web orders so that loyalty/reward points can be allocated correctly. The EvolutionX Admin order statuses supported in the integration are as follows:

    • New Order — order is not yet sent to Horizon

    • On Hold — order was sent to Horizon but an error was returned, this should be reviewed by staff and either changed to "New Order", which triggers processing of the order to Horizon, changed to "In Progress" if the order did go into Horizon and is valid, or changed to "Cancelled" if the order is a duplicate or is not going to be processed.

    • In Progress — this is the status that EvolutionX sets the order to once it's been sent to Horizon.

    • Completed — once any shipment is made on an order it is set to Completed in EvolutionX by Horizon so that loyalty/rewards points can be allocated to the account. Any changes to the points balance because of cancelled items must be made manually by staff.

    • Cancelled — if the Horizon order has been marked as cancelled (not items shipped) then the EvolutionX order is marked as cancelled and the loyalty/rewards points are discarded.

Live Frequently Purchased Items

Frequently Purchased Items module is replaced with the live version. This provides full control on the items display, read more here.

Setup Of Horizon API Sync

This process will setup and start the Horizon API Sync to EvolutionX as described above. Contact Horizon and EvolutionX for support on the following steps.

Prepare for Go Live Steps

These steps should be done ahead of the golive call.

  • Ask Horizon staff to start the process of preparing Horizon for the API Sync.

    • They will run through some checks with you for data stored in Horizon

  • Evaluate your data for compatibility with the API Sync by discussing these with EvolutionX Customer Success Staff:

    • They will run through some check with you for data stored in EvolutionX

  1. EvolutionX Store Customers who are migrating from another ERP to Horizon should ask to have their data checked for compatibility with the sync. It would be common to require that existing data is exported from the EvolutionX store and matched with Horizon references. After migration of customer data to the Horizon ERP check the following (if any are missing, use EvolutionX exports from EvolutionX and sent them to Horizon so the EvolutionX Store can be updates):

    Important!

    1. Existing EvolutionX Accounts must have the Horizon Account Codes — Use Accounts Only Export to fix. Check that the account codes are unique and not duplicated across multiple accounts.

    2. Existing EvolutionX Account Addresses must have the Horizon Address Code — Use Accounts Addresses Export to fix. Check address code unique and not duplicated across multiple addresses.

  2. Customers who run more than one EvolutionX store should consult with Horizon Software before using this integration method.

  • Account Managers

  • In EvolutionX, run a report "Users with settings all accounts" (no parameters needed)

  • Set or Find the Guest Account Number (Horizon ID) to allow orders for 'non-account customers'.

  • Request the API URL, Username and Password from Horizon for the Horizon App

  • Request the API URL, Username and Password from Horizon for live pricing

  • Set or Find "Discount Product SKU, Discount Product Name and Shipping Fee SKU". If unsure on these field, speak to a member of the EvolutionX team.

  • Choose the email address for notifications sent on any errors EvolutionX receives when sending an order to Horizon.

Go Live Steps

The go-live will comprise of two steps. First, Horizon will run a sync to recognise and back fill data points from Horizon into EvolutionX. These new data points will be used to synchronise the records going forward.

  • In EvolutionX, take an Export of the following:

    • Customer Accounts:

      • Accounts Only,

      • Addresses,

      • Cost Centres,

      • Users into Existing Accounts

  • Prepare the EvolutionX store data. Stores running EvoLink Sync, for example, will follows these steps.

    1. Customer Accounts — Clear all Seller References values

    2. Customer Addresses — Clear all Seller Reference values.

    3. Customer Users — Clear all Seller Reference values

    4. Cost Center — Check for duplicates.

  • Confirm that Account codes and address codes are in place and unique.

Step 1: Horizon Initial Sync

  1. Create an EvolutionX API Key and name it "Horizon API Sync" or similar. Use it in the this step and do not use it for anything else. This key is a secret and should not be stored.

  2. Use this key to set up Horizon exports and run the initial sync up. During this period orders and live pricing will continue to function.

  3. When sync is complete, work with the Horizon and EvolutionX team to run some checks on accounts, users, addresses and cost centres.

  4. Validate new price (contract) lists have been created and the items within these are correct. Work with the EvolutionX team to remove unwanted price lists.

Step 2: Set EvolutionX to use new pricing and order features

  • Set Horizon System Keys using the notes below.

    Find the old API Key used by EvoLink and disable it in the EvolutionX Admin. This will ensure that EvoLink can't be accidentally enabled again. Skip this step if you do not have a legacy sync using EvoLink.

  • Set Live Pricing in EvolutionX (if used).

  • Install the Horizon ERP App Store in EvolutionX — This enables the Checkout Integration, New Order processing, and Live Order History and Live invoice History features

    • Install and configure the "Horizon ERP" app in the EvolutionX App Store (if not enabled for your store, ask our customer success team to enable it).

    • Set Guest Account Number (Horizon ID) for orders of non Horizon customers

    • Request the API URL, Username and DB Password from Horizon

    • Set "Discount Product SKU, Discount Product Name and Shipping Fee SKU". If unsure on these field, speak to a member of the EvolutionX team.

    • Set the email address for notifications sent on any errors EvolutionX receives when sending an order to Horizon.

    • Horizon customers can enable the option of using quote prices on products on the storefront, when one is available.

Live Pricing Setting

  • Tests and Checks

    1. Test a single customer sync using the Horizon "Run Customers Now" button. with a trader filter applied. Review the record created in EvolutionX.

    2. Check the trouble shooting guide if the customer record is not correctly created.

    3. Update roles to enable Account Balances and Invoice History for users who should see these new screens from the Horizon Integration and check an example user to see if there are any issues reading:

      • Live Order history

      • Live A/R Customer Balances

      • Live Invoice History

    4. Live pricing — if enabled during the setup, check that it is working as expected

    5. Check example orders processed to see that they are arriving as expected.

  • Update roles to enable Account Balances and Invoice History for users who should see these new screens from the Horizon Integration.

⚠️ Note when updating these settings: Consult with your Horizon and EvolutionX support before making any change.

Enable API Integration

  • Customer sync will be enabled and sync using EvoLink is disabled.

Default Country

  • Set as "US" for USA based stores,

  • Set as "GB" for UK based stores

  • Set as "IE" for Irish stores

  • Set as "CA" for Canadian stores.

This is used if no country code is set on a Customer Address record. Set this to the Default ISO country code to be used where country field in addresses are empty. ISO Alpha-2 code must be used.

  • Set as "N" if you are starting a new store so that addresses will be checked for mistakes and not sent to the store unless they pass the validation checks.

  • Set as "Y" if you are migrating from Evolink, it sends Addresses to EvolutionX without validating the State and Zip Code fields.

    This uses the EvolutionX API query parameter "asd=true" (else false) when sending customer addresses.

EvolutionX API URL

UK/EU EvolutionX Store set as:

US/CA EvolutionX Store set as

Fully qualified domain for the EvolutionX API endpoint.

EvolutionX API Key

EvolutionX API key.

To create one, refer to the EvolutionX API Key documentatio

Did this answer your question?