Integration Specifications
This article will help you learn about how Daasity replicates data from Newstore, limitations to the data we can extract and where the data is stored in the Newstore schema
Integration Overview
Newstore is an omnichannel platform that provides retail businesses with mobile POS and integrated cloud-based order management systems.
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:
Enterprise
API Endpoints
The Daasity Newstore extractor is built based on this Newstore API documentation. The following endpoint is used by Daasity to replicate data from Newstore:
Entity Relationship Diagram (ERD)
Click here to view the ERD for the Daasity Newstore integration illustrating the different tables and keys to join across tables.
Newstore Schema
The Daasity Newstore extractor creates these tables using the endpoints and replication methods listed. The data is mapped from source API endpoint to the table based on the mapping logic outlined in each table.
Customers
Endpoint: Customer Profile Updates
Update Method: UPSERT
Table Name: [
newstore.customers
]
JSON Element | Database Column |
---|---|
tenant | tenant |
name | name |
published_at | published_at |
payload::id | id |
payload::email | |
payload::first_name | first_name |
payload::last_name | last_name |
payload::phone | phone |
payload::source::location_id | location_id |
payload::source::associate_id | associate_id |
payload::source::associate_name | associate_name |
payload::source::associate_email | associate_email |
payload::created_at | created_at |
payload::updated_at | updated_at |
payload::revision | revision |
environment | environment |
account_id | _account_id |
MD5(payload::id + payload::created_at + payload::updated_at + payload::revision) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Customer Address Table
Endpoint: Customer Profile Updates
Update Method: UPSERT
Table Name: [
newstore.customer_address_table
]
JSON Element | Database Column |
---|---|
tenant | tenant |
name | name |
published_at | published_at |
payload::id | id |
payload::customer_id | customer_id |
payload::type | type |
payload::salutation | salutation |
payload::title | title |
payload::first_name | first_name |
payload::last_name | last_name |
payload::suffix | suffix |
payload::company | company |
payload::address_line_1 | address_line_1 |
payload::address_line_2 | address_line_2 |
payload::address_line1 | address_line1 |
payload::address_line2 | address_line2 |
payload::zip_code | zip_code |
payload::city | city |
payload::state | state |
payload::country | country |
payload::phone | phone |
payload::created_at | created_at |
payload::updated_at | updated_at |
payload::customer_revision | revision |
environment | environment |
account_id | _account_id |
MD5(environment + payload::id + payload::customer_id + payload::created_at + payload::updated_at + payload::customer_revision) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Customer Extended Attributes
Endpoint: Customer Profile Updates
Update Method: UPSERT
Table Name: [
newstore.customer_extended_attributes
]
JSON Element | Database Column |
---|---|
customer::id | customer_id |
customer::extended_attributes::name | extended_attribute |
customer::extended_attributes::value | value |
customer::revision | revision |
environment | environment |
account_id | _account_id |
MD5(environment + customer::id + customer::extended_attributes:name + customer::extended_attributes::value + customer::revision) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Order Events
Endpoint: Order
Update Method: UPSERT
Table Name: [
newstore.order_events
]
JSON Element | Database Column |
---|---|
payload::id | order_id |
payload::external_id | external_id |
payload::customer_email | customer_email |
payload::customer_id | customer_id |
status::name | status |
published_at | published_at |
payload::created_at | order_date |
payload::subtotal | subtotal |
payload::price_method | price_method |
payload::discount_total | discount_total |
payload::shipping_total | shipping_total |
payload::shipping_tax | shipping_tax |
payload::tax_total | tax_total |
payload::grand_total | grand_total |
payload::currency | currency |
shipping::first_name | shipping_first_name |
shipping::last_name | shipping_last_name |
shipping::address_line1 | shipping_address1 |
shipping::address_line2 | shipping_address2 |
shipping::city | shipping_city |
shipping::state | shipping_state |
shipping::country | shipping_country |
shipping::zip_code | shipping_zipcode |
shipping::phone | shipping_phone |
billing::first_name | billing_first_name |
billing::last_name | billing_last_name |
billing::address1 | billing_address1 |
billing::address2 | billing_address2 |
billing::city | billing_city |
billing::state | billing_state |
billing::country | billing_country |
billing::zip_code | billing_zipcode |
billing::phone | billing_phone |
payload::channel_type | channel_type |
payload::channel_id | channel_id |
payload::associate_id | associate_id |
payload::associate_email | associate_email |
payload::is_exchange | is_exchange |
payload::is_historical | is_historical |
payload::is_tax_exempt | is_tax_exempt |
name | event_name |
cancellation_reason | cancellation_reason |
payload::created_at || payload::published_at | created_at |
environment | environment |
source_id | source_id |
MD5(environment + payload::id + source_id + payload::published_at + payload::name) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Order Extended Attributes
Endpoint: Order
Update Method: UPSERT
Table Name: [
newstore.order_extended_attributes
]
JSON Element | Database Column |
---|---|
order::extended_attributes::id | order_id |
order::extended_attributes::name | name |
order::extended_attributes::value | value |
environment | environment |
MD5(environment + order::extended_attributes::id + order::extended_attributes::name) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Order Item Events
Endpoint: Order
Update Method: UPSERT
Table Name: [
newstore.order_item_events
]
JSON Element | Database Column |
---|---|
payload::id | order_id |
item::id | order_item_id |
item::product_id | product_id |
item::item_type | item_type |
item::list_price | list_price |
item::item_discounts | item_discounts |
item::order_discounts | order_discounts |
item::pricebook_id | pricebook_id |
item::pricebook_price | pricebook_price |
item::shipping_service_level | shipping_service_level |
item::tax | tax |
item::tax_class | tax_class |
item::quantity | quantity |
item::fulfillment_location_id | fulfillment_location_id |
item::status | status |
item::cancelled_reason | cancelled_reason |
environment | environment |
source_id | __source_id |
MD5(environment + source_id + payload::id + item::id + payload::published_at + item::status) | __sync_key |
published_at | __synced_at |
Order Item Extended Attributes
Endpoint: Order
Update Method: UPSERT
Table Name: [
newstore.order_item_extended_attributes
]
JSON Element | Database Column |
---|---|
item::extended_attributes::order_id | order_id |
item::id | order_item_id |
item::extended_attributes::name | name |
item::extended_attributes::value | value |
environment | environment |
MD5(environment + item::extended_attributes::order_id + item::id + item::extended_attributes::name) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Order Item External Identifiers
Endpoint: Order
Update Method: UPSERT
Table Name: [
newstore.order_item_external_identifiers
]
JSON Element | Database Column |
---|---|
content::payload + content::id | order_id |
item::external_identifiers::id | order_item_id |
'k' | name |
'v' | value |
environment | environment |
MD5(environmnet + content::payload + content::id + item::external_identifiers::id + 'k') | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Returns
Endpoint: Item Return
Update Method: UPSERT
Table Name: [
newstore.returns
]
JSON Element | Database Column |
---|---|
tenant | tenant |
name | name |
published_at | published_at |
payload::id | id |
payload::order_id | order_id |
payload::returned_at | returned_at |
payload::total_refund_amount | total_refund_amount |
payload::total_refund_amount_adjusted | total_refund_amount_adjusted |
payload::total_refund_excl_tax | total_refund_excl_tax |
payload::return_fee | return_fee |
payload::currency | currency |
payload::returnlocation_id | return_location_id |
payload::customer_id | customer_id |
payload::customer_email | customer_email |
payload::associate_id | associate_id |
payload::associate_email | associate_email |
environment | environment |
account_id | _account_id |
MD5(environment + payload::id +payload::order_id + payload::returned_at + payload::total_refund_amount + payload::total_refund_amount_adjusted + payload::total_refund_excl_tax + payload::total_refund_tax) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Return Items
Endpoint: Item Return
Update Method: UPSERT
Table Name: [
newstore.return_items
]
JSON Element | Database Column |
---|---|
payload::id | return_id |
item::id | id |
item::product_id | product_id |
item::item_type | item_type |
item::item_condition | item_condition |
item::condition_code | condition_code |
item::return_Reason | return_Reason |
item::return_code | return_code |
item::refund_excl_tax | refund_excl_tax |
item::refund_tax | refund_tax |
item::refund_amount | refund_amount |
item::refund_amount_adjusted | refund_amount_adjusted |
item::quantity | quantity |
environment | environment |
account_id | _account_id |
MD5(environment + payload::id + item::id + item::product_id) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Inventory Count
Endpoint: Inventory Manager
Update Method: UPSERT
Table Name: [
newstore.inventory_count
]
JSON Element | Database Column |
---|---|
tenant | tenant |
name | name |
published_at | published_at |
payload::id | id |
payload::count_type | count_type |
payload::fulfillment_location_id | fulfillment_location_id |
payload::associate_id | associate_id |
payload::stock_location_name | stock_location_name |
payload::due_date | due_date |
payload::started_at | started_at |
payload::completed_at | completed_at |
payload::chunk_number | chunk_number |
payload::total_chunks | total_chunks |
environment | environment |
account_id | _account_id |
MD5(published_at + payload::id + payload::count_type + payload::fulfillment_location_id + payload::associate_id + payload::stock_location_name + payload::due_date + payload::started_at + payload::complete_at + payload::chunk_number) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Inventory Count Items
Endpoint: Stock Locations
Update Method: UPSERT
Table Name: [
newstore.inventory_count_items
]
JSON Element | Database Column |
---|---|
inventory_id | inventory_id |
item::product_id | product_id |
item::stock_on_hand | stock_on_hand |
item::count | count |
environment | environment |
account_id | _account_id |
MD5(environment + item::product_id + item::stock_on_hand + item::count) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Inventory Count Item External Identifiers
Endpoint: Stock Locations
Update Method: UPSERT
Table Name: [
newstore.inventory_count_items_external_identifiers
]
JSON Element | Database Column |
---|---|
inventory_id | inventory_id |
item::product_id | product_id |
'k' | external_identifier |
'v' | value |
environment | environment |
account_id | _account_id |
MD5(environment + inventory_id + item::product_id + k + v) | __sync_key |
Daasity: timestamp when loaded into DB | __synced_at |
Last updated