2024 is the year of the connector - vote here

Explore the WooCommerce API data model

See how the various WooCommerce endpoints relate to each other, using our handy Entity Relationship Diagram

Pulling data from the WooCommerce API is only the first part of your reporting. You also need to understand the relationships between different endpoints - something that APIs typically fail to convey.

At SyncHub, we not only sync your WooCommerce API endpoints down into a reportable format, we also describe their relationships (e.g. in terms of foreign keys) so that you can quickly get a grasp of your data and how it fits together. This page is intended as technical documentation of these relationships.

Endpoints

Coupon

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#coupons

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Description string - -
Code string - -
Status string - -
DateCreatedGmt datetime - -
DateModifiedGmt datetime - -
DiscountType string - -
DateExpiresGmt datetime - -
UsageCount int - -
IndividualUse boolean - -
UsageLimit int - -
UsageLimitPerUser int - -
LimitUsageToXItems int - -
FreeShipping boolean - -
ExcludeSaleItems boolean - -
MinimumAmount decimal - -
MaximumAmount decimal - -

GlobalProductAttribute

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#coupons

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Slug string - -
Type string - -
OrderBy string - -
HasArchives boolean - -

GlobalProductAttributeTerm

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#product-variations

Column Type Relates to Notes
RemoteID string - -
GlobalProductAttributeRemoteID string GlobalProductAttribute → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
GlobalProductAttributeID long GlobalProductAttribute → ID -
Slug string - -
MenuOrder int - -
Count int - -

Order

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#orders

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Number string - -
DateCreatedGmt datetime - -
DateModifiedGmt datetime - -
ParentID long Order → ID -
OrderKey string - -
CreatedVia string - -
Version string - -
Status string - -
Currency string - -
DiscountTotal decimal - -
DiscountTax decimal - -
ShippingTotal decimal - -
ShippingTax decimal - -
CartTax decimal - -
Total decimal - -
TotalTax decimal - -
PricesIncludeTax boolean - -
CustomerID long User → ID -
CustomerIpAddress string - -
CustomerUserAgent string - -
CustomerNote string - -
BillingFirstName string - -
BillingLastName string - -
BillingCompany string - -
BillingAddress1 string - -
BillingAddress2 string - -
BillingCity string - -
BillingState string - -
BillingPostcode string - -
BillingCountry string - -
BillingEmail string - -
BillingPhone string - -
ShippingFirstName string - -
ShippingLastName string - -
ShippingCompany string - -
ShippingAddress1 string - -
ShippingAddress2 string - -
ShippingCity string - -
ShippingState string - -
ShippingPostcode string - -
ShippingCountry string - -
PaymentMethod string - -
PaymentMethodTitle string - -
TransactionID string - -
DatePaidGmt datetime - -
DateCompletedGmt datetime - -
CartHash string - -
SetPaid boolean - -

OrderRefund

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#refunds

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
OrderID long Order → ID -
DateCreatedGmt datetime - -
Reason string - -
Total decimal - -
Amount decimal - -
RefundedBy int - -
RefundedPayment boolean - -

Product

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#products

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
DateCreatedGmt datetime - -
DateModifiedGmt datetime - -
Permalink string - -
Type string - -
Status string - -
Featured boolean - -
CatalogVisibility string - -
ShortDescription string - -
Sku string - -
Price decimal - -
RegularPrice decimal - -
DateOnSaleFromGmt datetime - -
DateOnSaleToGmt datetime - -
PriceHtml string - -
OnSale boolean - -
Purchasable boolean - -
TotalSales decimal - -
Downloadable boolean - -
DownloadLimit int -
  • 26 Oct 2022 Number of times downloadable files can be downloaded after purchase
DownloadExpiry int -
  • 26 Oct 2022 Number of days until access to downloadable files expires
ExternalUrl string - -
ButtonText string - -
TaxClass string - -
ManageStock boolean - -
StockQuantity decimal - -
StockStatus string - -
Backorders string -
  • 26 Oct 2022 Options are 'no', 'notify' or 'yes'
BackordersAllowed boolean - -
Backordered boolean - -
SoldIndividually boolean - -
Weight decimal - -
Length decimal - -
Width decimal - -
Height decimal - -
ShippingRequired boolean - -
ShippingTaxable boolean - -
ShippingClass string - -
ShippingClassID int - -
ReviewsAllowed boolean - -
AverageRating decimal - -
RatingCount int - -
ParentID long Product → ID -
PurchaseNote string - -
MenuOrder int - -

ProductCategory

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#product-categories

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
Slug string - -
Parent long ProductCategory → ID -
Display string - -
MenuOrder int - -
Count int - -

ProductReview

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#product-reviews

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
ProductID long Product → ID -
DateCreatedGmt datetime - -
Status string - -
Reviewer string - -
ReviewerEmail string - -
Review string - -
Rating decimal - -
Verified boolean - -

ProductTag

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#product-tags

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
Slug string - -
Count int - -

ProductVariation

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#product-variations

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Description string - -
ProductID long Product → ID -
DateCreatedGmt datetime - -
DateModifiedGmt datetime - -
Permalink string - -
Sku string - -
Price decimal - -
RegularPrice decimal - -
SalePrice decimal - -
DateOnSaleFromGmt datetime - -
DateOnSaleToGmt datetime - -
OnSale boolean - -
Status string - -
Purchasable boolean - -
Virtual boolean - -
Downloadable boolean - -
DownloadLimit int -
  • 26 Oct 2022 Number of times downloadable files can be downloaded after purchase
DownloadExpiry int -
  • 26 Oct 2022 Number of days until access to downloadable files expires
TaxStatus string - -
TaxClass string - -
ManageStock boolean - -
StockQuantity int - -
StockStatus string - -
Backorders string - -
BackordersAllowed boolean - -
Backordered boolean - -
Weight decimal - -
ShippingClass string - -
ShippingClassID int - -
MenuOrder int - -

ShippingMethod

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#shipping-methods

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID string - -
Description string - -
Title string - -

TaxRate

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#tax-rates

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Country string - -
State string - -
Rate decimal - -
Priority int - -
Compound boolean - -
Shipping boolean - -
Order int - -
Class string - -

User

Documentation: https://woocommerce.github.io/woocommerce-rest-api-docs/#customers

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
DateCreatedGmt datetime - -
DateModifiedGmt datetime - -
Email string - -
FirstName string - -
LastName string - -
Role string - -
BillingFirstName string - -
BillingLastName string - -
BillingCompany string - -
BillingAddress1 string - -
BillingAddress2 string - -
BillingCity string - -
BillingState string - -
BillingPostcode string - -
BillingCountry string - -
BillingEmail string - -
BillingPhone string - -
ShippingFirstName string - -
ShippingLastName string - -
ShippingCompany string - -
ShippingAddress1 string - -
ShippingAddress2 string - -
ShippingCity string - -
ShippingState string - -
ShippingPostcode string - -
ShippingCountry string - -
IsPayingCustomer boolean - -
AvatarUrl string - -

OrderLineItem

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
OrderID long Order → ID -
ProductID long Product → ID -
VariationID long ProductVariation → ID -
Quantity decimal - -
TaxClass string - -
Subtotal decimal - -
SubtotalTax decimal - -
Total decimal - -
TotalTax decimal - -
Sku string - -
Price decimal - -

OrderTaxLine

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
OrderID long Order → ID -
RateCode string - -
RateID string - -
Label string - -
Compound boolean - -
TaxTotal decimal - -
ShippingTaxTotal decimal - -

OrderShippingLine

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
OrderID long Order → ID -
MethodID string ShippingMethod → ID -
Total decimal - -
TotalTax decimal - -

OrderFeeLine

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
OrderID long Order → ID -
TaxClass string - -
TaxStatus string - -
Total decimal - -
TotalTax decimal - -

OrderCouponLine

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
OrderID long Order → ID -
Code string Coupon → Code -
Discount decimal - -
DiscountTax decimal - -

OrderRefundLineItem

Column Type Relates to Notes
RemoteID string - -
OrderRefundRemoteID string OrderRefund → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
ProductID long Product → ID -
VariationID long ProductVariation → ID -
Quantity decimal - -
TaxClass string - -
Subtotal decimal - -
SubtotalTax decimal - -
Total decimal - -
TotalTax decimal - -
Sku string - -
Price decimal - -

ProductImage

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long -
  • 14 Oct 2022 Image details can be found in the related WordPress connection
ProductID long Product → ID -

ProductUpsellProduct

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductID long Product → ID -
UpsellToProductID long Product → ID -

ProductProductTag

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long ProductTag → ID -
ProductID long Product → ID -

ProductProductCategory

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long ProductCategory → ID -
ProductID long Product → ID -

ProductProductAttribute

Column Type Relates to Notes
RemoteID string -
  • 26 Oct 2022 The RemoteID includes both the global ID (if available), and also the name. This is because global & local attributes may have the same name, and also because local attributes do not have an ID of any description to start with
  • 26 Oct 2022 The RemoteID includes the name column, which is fragile because if the user changes the attribute name, all of these will be voided. However, it will not impact data integrity, because our engine will simply mark the prior attribute relationships as IsDeleted=TRUE, then create new ones with the new RemoteID
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
ProductID long Product → ID -
GlobalAttributeID long GlobalProductAttribute → ID
  • 26 Oct 2022 This property is only populated if the attribute pertains to a GlobalProductID
Position int - -
Visible boolean - -
Variation boolean - -

ProductVariationAttribute

Column Type Relates to Notes
RemoteID string -
  • 26 Oct 2022 The RemoteID includes both the global ID (if available), and also the name. This is because global & local attributes may have the same name, and also because local attributes do not have an ID of any description to start with
  • 26 Oct 2022 The RemoteID includes the name column, which is fragile because if the user changes the attribute name, all of these will be voided. However, it will not impact data integrity, because our engine will simply mark the prior attribute relationships as IsDeleted=TRUE, then create new ones with the new RemoteID
ProductVariationRemoteID string ProductVariation → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
GlobalAttributeID long GlobalProductAttribute → ID
  • 29 Mar 2024 We haven't been able to view data for this endpoint, so this GlobalAttributeID structure is copied from what we know about the ProductProductAttribute
  • 26 Oct 2022 This property is only populated if the attribute pertains to a GlobalProductID
Option string - -

Need more?

SyncHub lives and breathes APIs and data. Keep exploring using the links below.