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

JSON ElementDatabase Column

tenant

tenant

name

name

published_at

published_at

payload::id

id

payload::email

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

JSON ElementDatabase 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

JSON ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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 ElementDatabase 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