---
title: "Shopify Product Export"
canonical: "https://kb.myframeworks.com.au/space/FRAM/28409242/Shopify%20Product%20Export"
format: markdown
---
# Overview

The **Shopify Product Export **scheduled task extract of a CSV format file which can also be sent via SFTP to a defined FTP server. This .CSV file can then be uploaded into the 3rd Party App [Matrixify ](https://matrixify.app/)(formally Excelify) and uploaded to Shopify to refresh the product details and prices that you sell on Shopify.

> ⚠️ **Important:** To perform this process, you must have completed the [Shopify Product Export - Setup and Configuration](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28391422)s.
> ⚠️ 
> ⚠️ **This export does NOT upload directly to the 3rd party application. **It is designed to be sent to your eCommerce site provider for them to import into the 3rd Party application.

# How to Export Products into Shopify

To create a product export from Frameworks and upload it directly into Shopify, perform the following. 

1. Click **Frameworks **then navigate to **Inventory > Utilities & Schedule Tasks > Shopify Product Export **from the navigation tree.
2. On the **Scheduled FTP Settings** tab, the following information is displayed:
  - **Script Path: **Displays the location of the Shopify scripts path on your Frameworks server. The script path is defined by the System Setting - General code **ShopifyScript**
  - **File Path: **Displays the file path, on the Frameworks server, of where the CSV file is stored before being uploaded to your eCommerce site providers SFTP site.
  - **Host Directory: **Enter the directory path on your eCommerce site provider's SFTP site.
    
3. Go to the **Schedule** tab to schedule the task as required and then click **Submit **to run the task.

<details>
<summary>For scheduling consideration, click here.</summary>

When setting up the Shopify Product Export task, it's important to make sure this export process finishes before initiating the Matrixify task for importing product data. To ensure a smooth process, take the following factors into account:

1. **Defining Export Task Timing**: Determine when the export task should be scheduled. Choose a time that aligns with your business operations and when the system is least likely to experience heavy usage.
2. **Export Task Duration**: Estimate how long the export task will take to complete. This will help you allocate an appropriate time window for the process.
3. **Variability in Export Duration**: Consider whether the time taken for the export task can vary. Factors like data volume and system load can impact the duration. Allow for a potential range of completion times.
4. **Initiating Import Task**: Decide when to start the Matrixify import task. This should follow the completion of the export task to ensure the imported data is current.
5. **Import Task Duration**: Estimate the time required for the import task to finish. This will help you plan the subsequent steps accurately.
6. **Allowing Margin**: Factor in enough time for the considerations mentioned above. Give some margin to account for unexpected delays or variations in task durations.
7. **Cycle Start Time**: Based on the previous considerations, determine when the entire cycle of export, import, and any other related tasks should begin again. This will help maintain a consistent and well-coordinated data update process.

> ℹ️ **For example**, let's say your business operates from 9:00 AM to 6:00 PM. You could schedule the export task to start at 6:00 AM, allowing ample time for completion before business hours. If the export task takes around 1-2 hours, you could aim to start the Matrixify import task at 8:00 AM. Considering potential variations, you might plan for the import task to take up to 3 hours. This way, the entire cycle could start again at 11:00 AM, ensuring your product data remains current without disrupting daily operations.

By carefully considering these aspects and planning the timing of tasks, you can maintain a well-coordinated and efficient data update cycle between Frameworks, Shopify, and Matrixify.
</details>

4. If you run the task immediately, the **Output **tab displays the results of the completed task, and you can click on the reports generated. If run later, the [Task Scheduler Queue](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28405088/Scheduler+Administration#%5BinlineExtension%5DTask-Scheduler-Queue) contains the output.

---

# Understanding the CSV file

The following table explain what each of the header columns are in the generated csv file from the **Shopify Product Export **scheduled task.

| **Shopify Header Row** | **Frameworks Field Source** | **What's Maintained in Shopify** | **Example Values** |
| --- | --- | --- | --- |
| Handle | This is the Frameworks **Product Id ** | This is what your store visitors will see in the Products URL address.<br>Whatever you will put in the Handle column, the app will convert it to the required Handle format, which is acceptable by Shopify.<br>When updating Handle the app by default will also create a Redirect from old Handle to the new one. You can turn this off in the Import options with importing a file.<br>In Shopify, all Handles have a limitation of 255 characters, so any Handle longer than that will be truncated to 255 characters. | 19346106 |
| Command | When importing a Product row this field tell the Matrixify app, what to do with it. This will default to **MERGE** which will try to find existing Product and update it with data from the row. If such product will not be found, then it will create new.<br>Other available options are:<br>- **NEW**: will try to create a new Product with the provided details. If such Product will already exist (with the same ID or same Handle), then the result will be Failed.
- **UPDATE**: the app will search for an existing Product and update it. If an item cannot be found then that item will fail to import.
- **REPLACE**: at first, if such Product with provided ID or Handle exists, then the app will delete it. After that, it will create a new one. If an existing Product will not be found, then still the app will create a new one. The difference from UPDATE is that it will not keep any of columns, which were not included in the import file since the Product will be deleted and re-created.
- **DELETE**: the app will delete the existing Product, which is found by ID or Handle. If such Product will not be found, then the result will be Failed. This DELETE command is very handy for deleting Products in bulk.
- **IGNORE**: the app will ignore this Product and will skip it.<br>If no Command is specified, then the app will assume the MERGE command.<br>> ℹ️ **Note**: To use a value other than MERGE you'll need to manually update the CSV file before it is imported. |  | MERGE |
| Title | This is the Frameworks **Product Description**. | Title of the Product. When creating a new product, this is the only mandatory field for the Product. | SCREW WOOD SLT BRS CS 5GX16 PK100 |
| Type | This is the new Product Attributes, **Shopify Type**, defined during the [Shopify Product Export - Setup and Configuration](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28391422) process. The attribute value can be maintained under the **Attributes **section within [Product Maintenance](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28378114). | Shopify Product Custom Type – allows you to define a certain kind for each Product. Any text can be entered into this field. | Hardware |
| Status | This is the new Product Attributes, **Publish Status**, defined during the [Shopify Product Export - Setup and Configuration](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28391422) process. The attribute value can be maintained under the **Attributes **section within [Product Maintenance](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28378114)<br>When importing a Product row this field tell the Matrixify app what status to give the product.<br>- **Active:** Defines in Shopify that the Product is ready to sell and is available to customers on the online store, sales channels, and apps.
  - The **Published Attribute** must also be **TRUE **for the product to be visible in the online store.
- **Archived:** Retains product History on Shopify as the product is no longer being sold and isn’t available to customers on sales channels and apps.
- **Draft:** Hides product on Shopify as it isn’t ready to sell and is unavailable to customers on sales channels and apps. By default, duplicated and unarchived products are set to draft. | Status of the Product in Shopify. | Active |
| Published | This is the new Product Attributes, **Published**, defined during the [Shopify Product Export - Setup and Configuration](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28391422) process. The attribute value can be maintained under the **Attributes **section within [Product Maintenance](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28378114)<br>When importing a Product row this field tell the Matrixify app whether this Product should be Published or not.<br>- **TRUE**: The Product will be published to your online store sales channel
- **FALSE**: The Product will NOT be published.<br>> ⚠️ Regardless of the products Publish Status, the product details will be extracted to Shopify. If a product is no longer required to be output, then the **Published** product attribute needs to be removed from the product. 
> ⚠️ 
> ⚠️ If you leave this empty, then it will be assumed as FALSE - not to publish the product. | Tells, whether this Product should be Published on any of your Channels. | TRUE |
| Variant SKU | This is the Frameworks **Product Id ** | Updates the SKU (Stock Keeping Unit) under the inventory information on the product. | 19346106 |
| Variant Price | This is the **ShopCust** best price (inc GST).<br>The **ShopCust **customer is defined during the [Shopify Product Export - Setup and Configuration](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28391422) process. This allows for your [Pricing Hierarchy](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28377236) to apply the best price for the **ShopCust **customer. | Updates the product **Price** under the pricing information on the product. | 7.17 |
| Variant Compare At Price | This is the **ShopDiscGrp **Unit Price (inc GST).<br>The **ShopDiscGrp **discount group is defined during the [Shopify Product Export - Setup and Configuration](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28391422) process. | Updates the product **Compare-at price **under the pricing information on the product. | 9 |
| Variant Requires Shipping | This defaults to **TRUE **to ensure that all customers are asked for a shipping address. | Products can be shippable or not. Non-shippable products would be a digital good, which you sell.<br>- If you set it to **TRUE**, then Shopify will ask Customer for Shipping address.
- If this is **FALSE**, then Shopify will not ask for Shipping address.<br>If you leave this empty, then it will be assumed as FALSE – that it doesn’t require shipping. | TRUE |
| Variant Taxable | This defaults to **TRUE **to ensure the product is marked as taxable. | Enables the **Charge tax on this product** checkbox under the pricing information on the product. | TRUE |
| Variant Barcode | This is the Frameworks products master** Barcode**. | Shopify officially supports UPC or ISBN barcode types, but you can put here any other barcode format. | 9310086532526 |
| Variant Fulfillment Service | This defaults to **MANUAL.** | This marks that when the product is added to an order it is to manually be fulfilled and to not use any connected fulfillment services. | MANUAL |

> ✅ Refer to the Matrixify documentation for more information about the Columns available for export: [Shopify Products import / export template & guide - Matrixify](https://matrixify.app/documentation/products/#ColumnsAvailableForExportAndImport-InventoryVariants)

---

# Additional Information

> ✅ Refer to the [Shopify Product Export - Setup and Configuration](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28391422) for additional information.
> ✅ 
> ✅ Refer to [Scheduled Task - Scheduling and Output](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28402256) for more information on how to schedule tasks, if required.