> For the complete documentation index, see [llms.txt](https://docs.omnata.com/omnata-product-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.omnata.com/omnata-product-documentation/omnata-sync-for-snowflake/apps/shopify/inbound-sync-data-structures.md).

# Inbound sync data structures

Inbound syncs uses Shopify's GraphQL endpoints to sync data into Snowflake. Each object has been predefined to sync certain fields and objects. Below are breakdowns of how Shopify fields and objects are fetch by Omnata.

Once the data is landed by Omnata in the Raw Table, fields and objects are split into columns with corresponding data type in Snowflake in the Normalized View created by Omnata.

{% hint style="warning" %}
Access scope permissions are required to allow Omnata to sync from Shopify.

For a smooth experience, granting all **read** permissions ensures Omnata has the necessary access to sync data successfully.
{% endhint %}

***

## Customer

{% hint style="info" %}
Required access scopes:

* read\_customers
  {% endhint %}

### Fields

* canDelete
* createdAt
* dataSaleOptOut
* displayName
* firstName
* id
* lastName
* lifetimeDuration
* locale
* multipassIdentifier
* note
* numberOfOrders
* productSubscriberStatus
* state
* tags
* taxExempt
* taxExemptions
* updatedAt
* verifiedEmail

### Objects

<details>

<summary>addresses</summary>

* address1
* address2
* city
* company
* coordinatesValidated
* country
* countryCodeV2
* firstName
* formatted
* formattedArea
* id
* lastName
* latitude
* longitude
* name
* phone
* province
* provinceCode
* timeZone
* validationResultSummary

</details>

<details>

<summary>defaultAddress</summary>

* address1
* address2
* city
* company
* coordinatesValidated
* country
* countryCodeV2
* firstName
* formatted
* formattedArea
* id
* lastName
* latitude
* longitude
* name
* phone
* province
* provinceCode
* timeZone
* validationResultSummary
* zip

</details>

<details>

<summary>defaultEmailAddress</summary>

* emailAddress
* marketingOptInLevel
* marketingState
* marketingUnsubscribeUrl
* marketingUpdatedAt
* openTrackingLevel
* openTrackingUrl
* validFormat

</details>

<details>

<summary>defaultPhoneNumber</summary>

* marketingCollectedFrom
* marketingOptInLevel
* marketingState
* marketingUpdatedAt
* phoneNumber

</details>

<details>

<summary>amountSpent</summary>

* amount
* currencyCode

</details>

<details>

<summary>metafields</summary>

* compareDigest
* createdAt
* id
* jsonValue
* key
* legacyResourceId

</details>

<details>

<summary>statistics</summary>

* predictedSpendTier
* rfmGroup

</details>

***

## Products

{% hint style="info" %}
Required access scopes:

* read\_products
* read\_publications
  {% endhint %}

### Fields

* combinedListingRole
* createdAt
* defaultCursor
* description
* descriptionHtml
* giftCardTemplateSuffix
* handle
* hasOnlyDefaultVariant
* hasOutOfStockVariants
* hasVariantsThatRequiresComponents
* id
* isGiftCard
* onlineStorePreviewUrl
* onlineStoreUrl
* productType
* publishedAt
* requiresSellingPlan
* status
* tags
* templateSuffix
* title
* totalInventory
* tracksInventory
* updatedAt
* vendor

### Objects

<details>

<summary>availablePublicationsCount</summary>

* count
* precision

</details>

<details>

<summary>category</summary>

* ancestorIds
* childrenIds
* fullName
* id
* isArchived
* isLeaf
* isRoot
* level
* name

</details>

<details>

<summary>compareAtPriceRange</summary>

* maxVariantCompareAtPrice
  * amount
  * currencyCode
* minVariantCompareAtPrice
  * amount
  * currencyCode

</details>

<details>

<summary>feedback</summary>

* details
  * feedbackGeneratedAt
  * link
    * label
    * url
  * messages
    * field
    * message
  * state
* summary

</details>

<details>

<summary>mediaCount</summary>

* count
* precision

</details>

<details>

<summary>metafields</summary>

* compareDigest
* createdAt
* id
* jsonValue
* key
* legacyResourceId
* namespace
* ownerType
* type
* updatedAt
* value

</details>

<details>

<summary>options</summary>

* id
* linkedMetafield
  * key
  * namespace
* name
* optionValues
  * hasVariants
  * id
  * linkedMetafieldValue
  * name
  * swatch
    * color
* position
* values

</details>

<details>

<summary>priceRangeV2</summary>

* maxVariantPrice
  * amount
  * currencyCode
* minVariantPrice
  * amount
  * currencyCode

</details>

<details>

<summary>sellingPlanGroupsCount</summary>

* count
* precision

</details>

<details>

<summary>seo</summary>

* description
* title

</details>

<details>

<summary>variantsCount</summary>

* count
* precision

</details>

***

## Product Variants

{% hint style="info" %}
Required access scopes:

* read\_products
* read\_inventory
* read\_shipping
  {% endhint %}

### Fields

* availableForSale
* barcode
* compareAtPrice
* createdAt
* defaultCursor
* displayName
* id
* inventoryPolicy
* inventoryQuantity
* position
* price
* requiresComponents
* sellableOnlineQuantity
* sku
* taxable
* taxCode
* title

### Objects

<details>

<summary>deliveryProfile</summary>

* activeMethodDefinitionsCount
* default
* id
* legacyMode
* locationsWithoutRatesCount
* name
* originLocationCount
* productVariantsCount
  * count
  * precision
* unassignedLocations
  * activatable
  * addresses
    * address1
    * address2
    * city
    * country
    * countryCode
    * formatted
    * latitude
    * longitude
    * phone
    * province
    * provinceCode
    * zip
  * addressVerified
  * createdAt
  * deactivatable
  * deactivatedAt
  * deletable
  * fulfillmentService
    * callbackUrl
    * handle
    * id
    * inventoryManagement
    * permitsSkuSharing
    * serviceName
    * trackingSupport
    * type
  * fulfillsOnlineOrders
  * hasActiveInventory
  * hasUnfulfilledOrders
  * id
  * isActive
  * isFulfillmentService
  * legacyResourceId
  * localPickupSettingsV2
    * instructions
    * pickupTime
  * name
  * shipsInventory
  * suggestedAddresses
    * address1
    * address2
    * city
    * country
    * countryCode
    * formatted
    * province
    * provinceCode
    * zip
  * updatedAt
  * isPrimary
* zoneCountryCount

</details>

<details>

<summary>inventoryItem</summary>

* countryCodeOfOrigin
* countryHarmonizedSystemCodes
  * countryCode
  * harmonizedSystemCode
* createdAt
* duplicateSkuCount
* harmonizedSystemCode
* id
* inventoryHistoryUrl
* legacyResourceId
* locationsCount
  * count
  * precision
* measurement
  * id
  * weight
    * unit
    * value
* provinceCodeOfOrigin
* requiresShipping
* sku
* tracked
* trackedEditable
  * locked
  * reason
* unitCost
  * amount
  * currencyCode
* updatedAt

</details>

<details>

<summary>metafields</summary>

* compareDigest
* createdAt
* id
* jsonValue
* key
* legacyResourceId
* namespace
* ownerType
* type
* updatedAt
* value

</details>

<details>

<summary>selectedOptions</summary>

* name
* optionValue
  * hasVariants
  * id
  * linkedMetafieldValue
  * name
  * swatch
    * color
* value

</details>

<details>

<summary>unitPriceMeasurement</summary>

* measuredType
* quantityUnit
* quantityValue
* referenceUnit
* referenceValue

</details>

***

## Locations

{% hint style="info" %}
Required access scopes:

* read\_locations
  {% endhint %}

### Fields

* activatable
* addressVerified
* createdAt
* deactivatable
* deactivatedAt
* deletable
* fulfillsOnlineOrders
* hasActiveInventory
* hasUnfulfilledOrders
* id
* isActive
* isFulfillmentService
* legacyResourceId
* name
* shipsInventory
* updatedAt
* isPrimary

### Objects

<details>

<summary>addresses</summary>

* address1
* address2
* city
* country
* countryCode
* formatted
* latitude
* longitude
* phone
* province
* provinceCode
* zip

</details>

<details>

<summary>fulfillmentService</summary>

* callbackUrl
* handle
* id
* inventoryManagement
* permitsSkuSharing
* serviceName
* trackingSupport
* type

</details>

<details>

<summary>localPickupSettingsV2</summary>

* instructions
* pickupTime

</details>

<details>

<summary>suggestedAddresses</summary>

* address1
* address2
* city
* country
* countryCode
* formatted
* province
* provinceCode
* zip

</details>

***

## Shop

{% hint style="info" %}
Required access scopes:

* read\_products
* read\_locations
* read\_markets
* read\_legal\_policies
* read\_locales
  {% endhint %}

### Fields

* checkoutApiSupported
* contactEmail
* createdAt
* currencyCode
* description
* email
* enabledPresentmentCurrencies
* ianaTimezone
* id
* marketingSmsConsentEnabledAtCheckout
* myshopifyDomain
* name
* orderNumberFormatPrefix
* orderNumberFormatSuffix
* richTextEditorUrl
* setupRequired
* shipsToCountries
* shopOwnerName
* taxesIncluded
* taxShipping
* timezoneAbbreviation
* timezoneOffset
* timezoneOffsetMinutes
* transactionalSmsDisabled
* unitSystem
* updatedAt
* url

### Objects

<details>

<summary>alerts</summary>

* action
  * title
  * url
* description

</details>

<details>

<summary>allProductCategoriesList</summary>

* ancestorIds
* childrenIds
* fullName
* id
* isArchived
* isLeaf
* isRoot
* level
* name
* parent

</details>

<details>

<summary>billingAddress</summary>

* address1
* address2
* city
* company
* coordinatesValidated
* country
* countryCodeV2
* formatted
* formattedArea
* id
* latitude
* longitude
* phone
* province
* provinceCode

</details>

<details>

<summary>channelDefinitionsForInstalledChannels</summary>

* channelDefinitions
  * channelName
  * handle
  * id
  * isMarketplace
  * subChannelName
* channelName

</details>

<details>

<summary>countriesInShippingZones</summary>

* countryCodes
* includeRestOfWorld

</details>

<details>

<summary>currencyFormats</summary>

* moneyFormat
* moneyInEmailsFormat
* moneyWithCurrencyFormat
* moneyWithCurrencyInEmailsFormat

</details>

<details>

<summary>customerAccountsV2</summary>

* customerAccountsVersion
* loginLinksVisibleOnStorefrontAndCheckout
* loginRequiredAtCheckout
* url

</details>

<details>

<summary>entitlements</summary>

* Markets
  * B2B
    * Catalogs
      * Enabled
    * Enabled
  * Regions
    * Catalogs
      * Enabled
    * Enabled
  * Retail
    * Catalogs
      * Enabled
    * Enabled
  * Themes
    * Enabled

</details>

<details>

<summary>features</summary>

* avalaraAvatax
* branding
* bundles
  * eligibleForBundles
  * ineligibilityReason
  * sellsBundles
* captcha
* cartTransform
  * eligibleOperations
    * expandOperation
    * mergeOperation
    * updateOperation
* dynamicRemarketing
* eligibleForSubscriptionMigration
* eligibleForSubscriptions
* giftCards
* harmonizedSystemCode
* legacySubscriptionGatewayEnabled
* liveView
* paypalExpressSubscriptionGatewayStatus
* reports
* sellsSubscriptions
* showMetrics
* storefront
* unifiedMarkets

</details>

<details>

<summary>fulfillmentServices</summary>

* callbackUrl
* handle
* id
* inventoryManagement
* location
  * activatable
  * addresses
    * address1
    * address2
    * city
    * country
    * countryCode
    * formatted
    * latitude
    * longitude
    * phone
    * province
    * provinceCode
    * zip
  * addressVerified
  * createdAt
  * deactivatable
  * deactivatedAt
  * deletable
  * fulfillmentService
    * callbackUrl
    * handle
    * id
    * inventoryManagement
    * permitsSkuSharing
    * serviceName
    * trackingSupport
    * type
  * fulfillsOnlineOrders
  * hasActiveInventory
  * hasUnfulfilledOrders
  * id
  * isActive
  * isFulfillmentService
  * legacyResourceId
  * localPickupSettingsV2
    * instructions
    * pickupTime
  * name
  * shipsInventory
  * suggestedAddresses
    * address1
    * address2
    * city
    * country
    * countryCode
    * formatted
    * province
    * provinceCode
    * zip
  * updatedAt
  * isPrimary
* permitsSkuSharing
* requiresShippingMethod
* serviceName
* trackingSupport
* type

</details>

<details>

<summary>navigationSettings</summary>

* id
* title
* url

</details>

<details>

<summary>paymentSettings</summary>

* supportedDigitalWallets

</details>

<details>

<summary>plan</summary>

* partnerDevelopment
* shopifyPlus

</details>

<details>

<summary>primaryDomain</summary>

* host
* id
* localization
  * alternateLocales
  * country
  * defaultLocale
* marketWebPresence
  * alternateLocales
    * locale
    * name
    * primary
    * published
  * defaultLocale
    * locale
    * name
    * primary
    * published
  * domain
    * host
    * id
    * localization
      * alternateLocales
      * country
      * defaultLocale
    * sslEnabled
    * url
  * id
  * rootUrls
    * locale
    * url
  * subfolderSuffix
* sslEnabled
* url

</details>

<details>

<summary>resourceLimits</summary>

* locationLimit
* maxProductOptions
* maxProductVariants
* redirectLimitReached

</details>

<details>

<summary>searchFilters</summary>

* productAvailability
  * label
  * value

</details>

<details>

<summary>shopPolicies</summary>

* body
* createdAt
* id
* title
* type
* updated

</details>

***

### Inventory Items

{% hint style="info" %}
Required access scopes:

* read\_inventory
  {% endhint %}

***

### Inventory Levels

> Dependent on [Inventory Items](#inventory-items)

{% hint style="info" %}
Required access scopes:

* read\_inventory
* read\_locations
  {% endhint %}

***

### Shopify Payments Account

{% hint style="info" %}
Required access scopes:

* read\_shopify\_payments\_accounts
  {% endhint %}

***

### Balance Transactions

{% hint style="info" %}
Required access scopes:

* read\_shopify\_payments\_accounts
  {% endhint %}

***

### Payouts

{% hint style="info" %}
Required access scopes:

* read\_shopify\_payments\_accounts
  {% endhint %}

***

### Orders

{% hint style="info" %}
Required access scopes:

* read\_orders
* read\_customer
* read\_products
* read\_payment\_terms
  {% endhint %}

***

### Returns

> Dependent on [Orders](#orders)

{% hint style="info" %}
Required access scopes:

* read\_orders
* read\_customer
* read\_products
* read\_payment\_terms
* read\_returns
  {% endhint %}

***

### Fulfillments

> Dependent on [Orders](#orders)

{% hint style="info" %}
Required access scopes:

* read\_orders
* read\_customer
* read\_products
* read\_payment\_terms
* read\_fulfillments
* read\_locations
  {% endhint %}

***

### Shipping Line

> Dependent on [Orders](#orders)

{% hint style="info" %}
Required access scopes:

* read\_orders
* read\_customer
* read\_products
* read\_payment\_terms
  {% endhint %}

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.omnata.com/omnata-product-documentation/omnata-sync-for-snowflake/apps/shopify/inbound-sync-data-structures.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
