Resources · CSV and feeds

Feed delivery: SFTP or URL, schedules and safeguards

How to get your CSV to us: via SFTP or via URL, at what times it is processed and what happens if one day the file arrives empty or broken.

The items CSV is the source of truth for your catalogue: what is in the file gets published, what changes gets updated and what disappears is removed from the portals. This page explains how to deliver it and what Portal Hero does so that a bad day for the file does not turn into a bad day for sales. The column format is in the full specification.

Two ways to deliver it

Via SFTP. We give you a username and a password for sftp.portalhero.pro and you write the file to the upload folder with the name item_feed.csv. Access is restricted by network: we need the IP or the IPs from which you will upload the file so we can add them to the access list. If you change server or provider, let us know beforehand; it is the most common cause of "I uploaded the file and it is not updating".

Via URL. You publish the file at a URL and Portal Hero downloads it on each run. If the URL needs authentication, you tell us the headers we must send with the request. It is the most convenient option when your ERP or your shop already generates a feed.

In both cases the file is overwritten: there is no need to send incrementals or notify us of the changes.

When it is processed

Synchronisation runs several times a day, at the times you choose during onboarding. The usual approach is to schedule it just after your system generates the file and, if your stock turns over quickly, to repeat it at midday and in the afternoon. Each run compares the file with what is published and only touches what has changed, so a large catalogue does not take longer just because it synchronises more often.

What happens if the file arrives faulty

An empty feed, one cut off halfway through, or one with the columns misaligned should not delete your catalogue. Before applying any change, each run checks three things:

  1. That the file is valid: expected header, correct encoding and separator.
  2. That the volume is consistent: if the number of items suddenly drops compared with the previous run, synchronisation stops and we notify you instead of removing listings.
  3. That each row is publishable: rows with errors are discarded one by one, with their reason, without blocking the rest.

When a run stops, your listings stay as they were until the next correct file arrives.

Where to see the result

In the dashboard you have the result of each run: items created, updated and removed per portal, and the detail of the discarded rows. If something does not add up, write to us with the time of the run and we will look into it with you.