---
title: "File Drop (S3, SFTP)"
canonical: "https://red-ant-documentation.refined.site/space/RDD/618364947/File%20Drop%20(S3%2C%20SFTP)"
format: markdown
---
> Macro (toc)

## Overview

RetailOS can import store data via SFTP and S3 either via our own dedicated service or via the the client’s own hosted SFTP/S3 locations. Outlined below are the setup steps to populating your RetailOS stores through both methods.

## Setup (RetailOS Hosted)

Red Ant will provide you (the retailer) with a CSV template. This ensures that the data is imported uniformly and avoids issues when displaying the store catalogue in the app. Once you have provided Red Ant the filled out CSV sample data then Red Ant will do a test import. If the importer has any issues we will report back to you with steps to remediate. Should you have need to revise the files, you should then return them to Red Ant to be imported to the SFTP (Secure File Transfer Protocol) location. When Red Ant has validated the integration is working as expected, we will provide you with the SFTP credentials   [http://files.com/](http://files.com/) to have access to the files.

## Setup (Client Hosted)

### Requirements

For us to import your data to the store, we will need the following information:

| **Info** | **Description** |
| --- | --- |
| Location Type | Which of our supported location types you’d like us to import from.<br>E.g: SFTP, S3 |
| Frequency | How often you’d like the importer to run<br>E.g: Once a week, Once a day |
| Connection Details (S3) | AWS API Key |
| AWS API Secret |
| S3 Bucket Name |
| S3 Bucket Region |
| Connection Details (SFTP) | Host |
| Port |
| Username |
| Password |

## Data Entities and File Naming  


> ℹ️ **Naming conventions**
> ℹ️ 
> ℹ️ The names of the files should be:
> ℹ️ 
> ℹ️ - Category_datetime.csv
> ℹ️ - Products_datetime.csv
> ℹ️ - Variants_datetime.csv
> ℹ️ - Stock_datetime.csv
> ℹ️ 
> ℹ️ The file names are case-sensitive so they must be created exactly as they are written above.

<details>
<summary>Data Entities</summary>

The product catalogue is defined using the following entities:

| **Data Type** | **Additional Info** |
| --- | --- |
| [Territory](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/33619969/Product+Catalogue#Territories) | Primarily used to define customer segregation |
| [Region](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/33619969/Product+Catalogue#Regions) | Defines a configuration for a set of stores |
| [Store](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/33619969/Product+Catalogue#Stores) | Allows the retailer to associate stores to a specific region |
| Catalogue | Defines a set of products that are sold in a store, this can include product-specific tax codes / VAT, product-specific pricing, and product-specific discounts |
| [Categories](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/33619969/Product+Catalogue#Categories) | Allows the retailer to define the product category structure within the catalogue |
| [Products](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/33619969/Product+Catalogue#Products) | Allows the retailer to associate products to categories within a specific catalogue |
| [Variants](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/33619969/Product+Catalogue#Variants) | Allows the retailer to associate variants to products within a specific catalogue |
| [Variant Store Stock](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/33619969/Product+Catalogue#Variant-Store-Stock) | Allows the retailer to associate variant stock levels within a specific store |
</details>

## Common Import Errors / Considerations

<details>
<summary>Categories</summary>

- The category `image` must be a publicly accessible URL. For optimal display, the category images should be at least 500x500. If you do not have your category images accessible via a public URL you can send the images to us as JPGs for us to manually add to S3
- You can define the order in which the categories are displayed within the catalogue - the order is defined using numerical values, starting with `0` being the highest priority order
- The `parentId` is used to tie a sub-category to its parent category. No value needs to be set for parent categories
</details>

<details>
<summary>Products</summary>

- If your product catalogue has parent and sub-categories, you should set the `category` to the specific sub-category that the product should reside in
- The product `image` must be a publically accessible URL. Multiple images can be added for each product - these should be provided inside quotation marks and comma-separated (the same for any `videoThumbnails` provided)

- Product videos must be publically accessible embed URL(s) provided as a comma-separated array
- The `description`, `summary`, `productSizeGuide` and `productCareInstructions` columns support markdown formatted text
- If you wish to have variant-level pricing then they can set the `price_value` to `0` within the products CSV
- The `discount_value` should be the amount the product is being discounted. For example, if the product is being discounted by £1.00 the discount value should be set to `1`
- The `region` is case-sensitive so must be entered exactly as it appears within the regions table
- The catalogue is case-sensitive so must be entered exactly as it appears in the associated variants CSV file
</details>

<details>
<summary>Variants</summary>

- If you wish to have variant-level pricing then you can set this in the `price_value` value column. They should make sure to set the `price_value` to `0` within the products CSV
- The `discount_value` should be the amount the product variant is being discounted. For example, if the variant is being discounted by £1.00 the discount value should be set to `1`
- The `ean` can only only contain numbers, and must be between 12 and 13 digits
- You can define the order in which the variants are displayed within the catalogue - the order is defined using numerical values, starting with `0` being the highest priority order
- You can define whether the variants has stock available online - `onlineStock` can be set to available, `unavailable` or `lowStock`
- The `catalogue` is case-sensitive so must be entered exactly as it appears in the associated product CSV file
</details>