This article will help you learn about how Daasity replicates data from KWI, limitations to the data we can extract and where the data is stored in the KWI schema.
Key Topics
Click on the links below to take you to the section where you can learn more about this Integration
- Integration Overview
- Integration Availability
- SFTP Export
- Entity Relationship Diagram
- KWI Schema
- Related Resources
Integration Overview
KWI helps retailers maximize sales through their omni-channel platform, mobile POS, and inventory management system.
This document provides context on what kind of data is being gathered through this extractor, which endpoints that data is coming from, and how the extracted tables relate to each other.
Integration Availability
This integration is available for:
- Pro V2
NOTE: You are considered V2 if...
- Your account says Pro V2 in the Daasity App
Not sure? Reach out to Support@Daasity.com
SFTP Export
The Daasity KWI extractor is built based on an export from the SFTP server. Once an SFTP connection with KWI is set up, Daasity can retrieve the CSV files to load data into the KWI schema.
NOTE: In order for Daasity to load data from KWI, you must make a request to your KWI representative to setup an SFTP export.
Need help? Reach out to Support@Daasity.com
Entity Relationship Diagram (ERD)
The embedded diagram houses the ERD for the Daasity KWI integration illustrating the different tables and keys to join across tables. Hover over the embedded diagram to reveal controls to zoom and scroll.
KWI Schema
The Daasity KWI extractor creates these tables using the SFTP export. The data is mapped from the SFTP Server to the table based on the mapping logic outlined in each table.
Customers
- Endpoint: Customer
- Update Method: UPSERT
- Table Name: kwi.customers
CSV Header | Database Column |
"Cust Num" | customer_id |
"Email" | |
"First Name" | first_name |
"Last Name" | last_name |
"Address" | address |
"Address 2", nullable: TRUE | address_2 |
"City" | city |
"State" | state |
"Zip" | zip |
"Phone" | phone |
"Home Store" | home_store_id |
"Store Purchased" | purchased_store_id |
"Sales Associate #" | sales_associate_id |
"Sales Associate Name" | sales_associate_name |
"Add Date", "%m/%d/%y" | added_date |
"Last Purchase Date", "%m/%d/%y" | last_purchase_date |
"Total Net Sales" | total_net_sales |
"Email Opt-In" | email_opt_in |
"Mail Opt-In" | mail_opt_in |
Daasity: account_id | _account_id |
Daasity: timestamp when loaded into DB | __synced_at |
Order Customers
- Endpoint: Order
- Update Method: UPSERT
- Table Name: kwi.order_customers
CSV Header | Database Column |
"Customer #" | customer_id |
"Customer Email" | customer_email |
Daasity: account_id | _account_id |
Daasity: timestamp when loaded into DB | __synced_at |
Orders
- Endpoint: Order
- Update Method: UPSERT
- Table Name: kwi.orders
CSV Header | Database Column |
MD5("Transaction #" + "Store #" + "Terminal #" + "Employee Name") | order_id |
"Date" | order_date |
"Transaction #" | transaction_id |
"Customer #" | customer_id |
"Store #" | store_number |
"Terminal #" | terminal_number |
Daasity: account_id | _account_id |
Daasity: timestamp when loaded into DB | __synced_at |
Order Items
- Endpoint: Order
- Update Method: UPSERT
- Table Name: kwi.order_items
CSV Header | Database Column |
MD5("Transaction #" + "Store #" + "Terminal #" + "Employee Name") | order_id |
MD5("Transaction #" + "Store #" + "Terminal #" + "Employee Name" + "Sku" + "Qty Purch") | order_item_id |
"Sku" | sku |
"Style #" | style_number |
"Department" | department |
"Class" | class |
"Description" | description |
"Color Code" | color_code |
"Color" | color |
"Size" | size |
"Qty Purch" | quantity |
"Cost" | cost |
"Original Price" | original_price |
"Retail/Markdown Price" | retail_markdown |
"Sale Price" | sale_price |
"Tot Cost" | total_cost |
"Tot Ret/Markdown Price" | total_retail_markdown_price |
"Tot Price" | total_price |
"GM %" | gross_margin_pct |
"Tot Tax" | total_tax |
"Tax Rate" | tax_rate |
"Tot Transaction" | total_transaction_amount |
"Tot Discount" | total_discount_amount |
"Discount %" | discount_pct |
"Employee #" | employee_number |
"Employee Name" | employee_name |
"Sales Type" | sales_type |
"Transaction Type" | transaction_type |
"Pay Type" | pay_type |
"Time" | transaction_time |
"Discount Code" | discount_code |
"Discount Description" | discount_description |
"Discount Comment" | discount_comment |
"Cashier Number" | cashier_number |
"POS Promo" | pos_promo |
"Origin of Product" | origin_of_product |
"Return Reason Code" | return_reason |
"Trans Code", gsub('='.''), gsub('"','') | trans_code |
"Sub-Class Code", gsub('="',''), gsub('"','') | sub_class_code |
"Sub-Dept", gsub('="',''), gsub('"','') | sub_department |
"Original Store #" | original_store_number |
"Original Terminal #" | original_terminal_number |
"Original Trans #" | original_transaction_id |
"Original Sales Date", "%m/%d/%y" | original_sales_date |
Daasity: account_id | _account_id |
Daasity: timestamp when loaded into DB | __synced_at |
Related Resources