# SHACL Shapes generated by @inferal-relay/rdf-emitter

@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tsps: <https://relay.inferal.com/ontology/typespec/shapes/> .
@prefix tspv: <https://relay.inferal.com/ontology/typespec/versioning/> .
@prefix schema: <https://schema.org/> .
@prefix gr: <http://purl.org/goodrelations/v1#> .
@prefix shopify: <https://relay.inferal.com/ontology/shopify/> .

# Class hierarchy
shopify:Metafield rdfs:subClassOf schema:PropertyValue .
shopify:Image rdfs:subClassOf schema:ImageObject .
shopify:Address rdfs:subClassOf schema:PostalAddress .
shopify:Money rdfs:subClassOf schema:MonetaryAmount .
shopify:Error rdfs:subClassOf schema:Thing .
shopify:Product rdfs:subClassOf schema:Product .
shopify:ProductVariant rdfs:subClassOf schema:ProductModel .
shopify:ProductOption rdfs:subClassOf schema:PropertyValue .
shopify:ProductImage rdfs:subClassOf schema:ImageObject .
shopify:InventoryItem rdfs:subClassOf schema:Product .
shopify:OrderLineItem rdfs:subClassOf schema:OrderItem .
shopify:Order rdfs:subClassOf schema:Order .
shopify:Customer rdfs:subClassOf schema:Person .
shopify:CustomerAddress rdfs:subClassOf schema:PostalAddress .
shopify:Fulfillment rdfs:subClassOf schema:ParcelDelivery .
shopify:Refund rdfs:subClassOf schema:Order .
shopify:OrderTransaction rdfs:subClassOf schema:PayAction .
shopify:Location rdfs:subClassOf schema:Place .
shopify:CustomCollection rdfs:subClassOf schema:CollectionPage .
shopify:SmartCollection rdfs:subClassOf schema:CollectionPage .
shopify:Shop rdfs:subClassOf schema:Organization .
shopify:FulfillmentService rdfs:subClassOf schema:Service .
shopify:DraftOrder rdfs:subClassOf schema:Order .
shopify:GiftCard rdfs:subClassOf schema:Product .
shopify:User rdfs:subClassOf schema:Person .
shopify:PriceRule rdfs:subClassOf schema:Offer .
shopify:Country rdfs:subClassOf schema:Country .
shopify:Province rdfs:subClassOf schema:AdministrativeArea .
shopify:CustomerSavedSearch rdfs:subClassOf schema:Thing .
shopify:CarrierService rdfs:subClassOf schema:Service .
shopify:Theme rdfs:subClassOf schema:CreativeWork .
shopify:Page rdfs:subClassOf schema:WebPage .
shopify:Blog rdfs:subClassOf schema:Blog .
shopify:Article rdfs:subClassOf schema:BlogPosting .
shopify:ArticleImage rdfs:subClassOf schema:ImageObject .
shopify:Currency rdfs:subClassOf schema:Thing .
shopify:Policy rdfs:subClassOf schema:WebPage .
shopify:Redirect rdfs:subClassOf schema:Thing .
shopify:Market rdfs:subClassOf schema:Place .
shopify:MetafieldDefinition rdfs:subClassOf schema:PropertyValue .
shopify:DeprecatedApiCallEntry rdfs:subClassOf schema:Thing .
shopify:DeprecatedApiCall rdfs:subClassOf schema:Thing .
shopify:Event rdfs:subClassOf schema:Event .
shopify:CollectionListing rdfs:subClassOf schema:Collection .
shopify:ProductListing rdfs:subClassOf schema:Product .
shopify:Checkout rdfs:subClassOf schema:Order .
shopify:ShopifyPaymentsPayout rdfs:subClassOf schema:MoneyTransfer .
shopify:ShopifyPaymentsBalance rdfs:subClassOf schema:Thing .
shopify:ShopifyPaymentsDispute rdfs:subClassOf schema:Thing .
shopify:ShopifyPaymentsBalanceTransaction rdfs:subClassOf schema:MoneyTransfer .
shopify:AccessScope rdfs:subClassOf schema:Thing .
shopify:StorefrontAccessToken rdfs:subClassOf schema:Thing .
shopify:ApplicationCharge rdfs:subClassOf schema:Invoice .
shopify:ApplicationCredit rdfs:subClassOf schema:Invoice .
shopify:RecurringApplicationCharge rdfs:subClassOf schema:Invoice .
shopify:UsageCharge rdfs:subClassOf schema:Invoice .
shopify:MarketingEvent rdfs:subClassOf schema:Event .
shopify:AbandonedCheckout rdfs:subClassOf schema:Order .
shopify:Comment rdfs:subClassOf schema:Comment .
shopify:Report rdfs:subClassOf schema:CreativeWork .
shopify:ResourceFeedback rdfs:subClassOf schema:Thing .
shopify:TenderTransaction rdfs:subClassOf schema:PayAction .

<https://relay.inferal.com/ontology/shopify/shapes> a tsps:ShapeGeneration ;
  tsps:shapeReferenceChainLimit 5 ;
  tsps:omittedShapeReferenceCount 63
  ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CollectShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CommentResponseShape ;
    tsps:referenceTo shopify:CommentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CommentsResponseShape ;
    tsps:referenceTo shopify:CommentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CustomerAddressShape ;
    tsps:referenceTo shopify:CustomerShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CustomerCreatedEventShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CustomerDisabledEventShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CustomerEnabledEventShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CustomerShape ;
    tsps:referenceTo shopify:CompanyContactShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CustomerShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:CustomerUpdatedEventShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DiscountCodeResponseShape ;
    tsps:referenceTo shopify:PriceRuleDiscountCodeShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DiscountCodesResponseShape ;
    tsps:referenceTo shopify:PriceRuleDiscountCodeShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DraftOrderCreatedEventShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DraftOrderLineItemShape ;
    tsps:referenceTo shopify:DraftOrderLineItemShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DraftOrderLineItemShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DraftOrderResponseShape ;
    tsps:referenceTo shopify:DraftOrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DraftOrderShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DraftOrdersResponseShape ;
    tsps:referenceTo shopify:DraftOrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:DraftOrderUpdatedEventShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:FulfillmentCreatedEventShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:FulfillmentOrderShape ;
    tsps:referenceTo shopify:FulfillmentOrderLineItemShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:FulfillmentOrderShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:FulfillmentResponseShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:FulfillmentShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:FulfillmentsResponseShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:FulfillmentUpdatedEventShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:GiftCardResponseShape ;
    tsps:referenceTo shopify:GiftCardShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:GiftCardShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:GiftCardsResponseShape ;
    tsps:referenceTo shopify:GiftCardShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderCancelledEventShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderCancelledEventShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderCreatedEventShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderCreatedEventShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderFulfilledEventShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderFulfilledEventShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderLineItemShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderPaidEventShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderPaidEventShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderPartiallyFulfilledEventShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderPartiallyFulfilledEventShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderResponseShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderShape ;
    tsps:referenceTo shopify:CustomerShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrdersResponseShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderUpdatedEventShape ;
    tsps:referenceTo shopify:FulfillmentShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:OrderUpdatedEventShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:PriceBasedShippingRateShape ;
    tsps:referenceTo shopify:ShippingZoneShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:PriceRuleShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ProductImageShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ProductOptionShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ProductResponseShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ProductsResponseShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ProductVariantShape ;
    tsps:referenceTo shopify:ProductImageShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ProductVariantShape ;
    tsps:referenceTo shopify:ProductShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ProvinceShape ;
    tsps:referenceTo shopify:CountryShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:RefundResponseShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:RefundShape ;
    tsps:referenceTo shopify:RefundLineItemShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:RefundsResponseShape ;
    tsps:referenceTo shopify:RefundShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ShippingProvinceShape ;
    tsps:referenceTo shopify:ShippingZoneShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:ShippingZoneShape ;
    tsps:referenceTo shopify:CarrierShippingRateProviderShape ;
    tsps:omittedBecause "cycle"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:TenderTransactionShape ;
    tsps:referenceTo shopify:OrderShape ;
    tsps:omittedBecause "over-long"
  ] ;
  tsps:omittedShapeReference [
    tsps:referenceFrom shopify:WeightBasedShippingRateShape ;
    tsps:referenceTo shopify:ShippingZoneShape ;
    tsps:omittedBecause "cycle"
  ] .

# Shape for Metafield
shopify:MetafieldShape a sh:NodeShape ;
  sh:targetClass shopify:Metafield ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/metafieldIdentifier> ;
    sh:name "metafield identifier" ;
    sh:description "Metafield ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/namespace> ;
    sh:name "namespace" ;
    sh:description "Namespace for the metafield" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/key> ;
    sh:name "key" ;
    sh:description "Key name for the metafield" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/value> ;
    sh:name "value" ;
    sh:description "Value of the metafield" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/type> ;
    sh:name "type" ;
    sh:description "Metafield value type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/description> ;
    sh:name "description" ;
    sh:description "Description of the metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/ownerId> ;
    sh:name "owner id" ;
    sh:description "ID of the resource that owns the metafield" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/ownerResource> ;
    sh:name "owner resource" ;
    sh:description "Type of resource that owns the metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the metafield was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the metafield was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/compareDigest> ;
    sh:name "compare digest" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/jsonValue> ;
    sh:name "json value" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/graphqlId> ;
    sh:name "graphql id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/definition> ;
    sh:name "definition" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/owner> ;
    sh:name "owner" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/ownerType> ;
    sh:name "owner type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/reference> ;
    sh:name "reference" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/references> ;
    sh:name "references" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Image
shopify:ImageShape a sh:NodeShape ;
  sh:targetClass shopify:Image ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/src> ;
    sh:name "src" ;
    sh:description "Image URL" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/alt> ;
    sh:name "alt" ;
    sh:description "Image alt text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/width> ;
    sh:name "width" ;
    sh:description "Width in pixels" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/height> ;
    sh:name "height" ;
    sh:description "Height in pixels" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the image was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/altText> ;
    sh:name "alt text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/originalSrc> ;
    sh:name "original src" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/transformedSrc> ;
    sh:name "transformed src" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/url> ;
    sh:name "url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Image/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Address
shopify:AddressShape a sh:NodeShape ;
  sh:targetClass shopify:Address ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/firstName> ;
    sh:name "first name" ;
    sh:description "First name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/lastName> ;
    sh:name "last name" ;
    sh:description "Last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/company> ;
    sh:name "company" ;
    sh:description "Company name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/address1> ;
    sh:name "address1" ;
    sh:description "Street address line 1" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/address2> ;
    sh:name "address2" ;
    sh:description "Street address line 2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/city> ;
    sh:name "city" ;
    sh:description "City" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/province> ;
    sh:name "province" ;
    sh:description "Province or state name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/country> ;
    sh:name "country" ;
    sh:description "Country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/zip> ;
    sh:name "zip" ;
    sh:description "ZIP or postal code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/phone> ;
    sh:name "phone" ;
    sh:description "Phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/name> ;
    sh:name "name" ;
    sh:description "Name of the address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/provinceCode> ;
    sh:name "province code" ;
    sh:description "Province or state code (ISO 3166-2)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/countryCode> ;
    sh:name "country code" ;
    sh:description "Country code (ISO 3166-1 alpha-2)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/countryName> ;
    sh:name "country name" ;
    sh:description "Normalized country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/latitude> ;
    sh:name "latitude" ;
    sh:description "Latitude coordinate" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/longitude> ;
    sh:name "longitude" ;
    sh:description "Longitude coordinate" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/coordinatesValidated> ;
    sh:name "coordinates validated" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/countryCodeV2> ;
    sh:name "country code v2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/formatted> ;
    sh:name "formatted" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/formattedArea> ;
    sh:name "formatted area" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/timeZone> ;
    sh:name "time zone" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Address/validationResultSummary> ;
    sh:name "validation result summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Price Set
shopify:PriceSetShape a sh:NodeShape ;
  sh:targetClass shopify:PriceSet ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceSet/shopMoney> ;
    sh:name "shop money" ;
    sh:description "Price in shop currency" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceSet/presentmentMoney> ;
    sh:name "presentment money" ;
    sh:description "Price in presentment currency" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Money
shopify:MoneyShape a sh:NodeShape ;
  sh:targetClass shopify:Money ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Money/amount> ;
    sh:name "amount" ;
    sh:description "Decimal money amount" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Money/currencyCode> ;
    sh:name "currency code" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for User Error
shopify:UserErrorShape a sh:NodeShape ;
  sh:targetClass shopify:UserError ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UserError/field> ;
    sh:name "field" ;
    sh:description "The path to the input field that caused the error" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UserError/message> ;
    sh:name "message" ;
    sh:description "The error message" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shopify Error
shopify:ErrorShape a sh:NodeShape ;
  sh:targetClass shopify:Error ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyError/errors> ;
    sh:name "errors" ;
    sh:description "Error messages keyed by field name" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Attribute
shopify:AttributeShape a sh:NodeShape ;
  sh:targetClass shopify:Attribute ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Attribute/key> ;
    sh:name "key" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Attribute/value> ;
    sh:name "value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Translation
shopify:TranslationShape a sh:NodeShape ;
  sh:targetClass shopify:Translation ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Translation/key> ;
    sh:name "key" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Translation/locale> ;
    sh:name "locale" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Translation/market> ;
    sh:name "market" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Translation/outdated> ;
    sh:name "outdated" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Translation/updatedAt> ;
    sh:name "updated at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Translation/value> ;
    sh:name "value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Typed Attribute
shopify:TypedAttributeShape a sh:NodeShape ;
  sh:targetClass shopify:TypedAttribute ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TypedAttribute/key> ;
    sh:name "key" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TypedAttribute/value> ;
    sh:name "value" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product
shopify:ProductShape a sh:NodeShape ;
  sh:targetClass shopify:Product ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/id> ;
    sh:name "id" ;
    sh:description "Product ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/title> ;
    sh:name "title" ;
    sh:description "Product title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/bodyHtml> ;
    sh:name "body html" ;
    sh:description "Description of the product in HTML" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/vendor> ;
    sh:name "vendor" ;
    sh:description "Name of the product vendor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/productType> ;
    sh:name "product type" ;
    sh:description "Categorization of the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/status> ;
    sh:name "status" ;
    sh:description "Product status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "active" "archived" "draft" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/tags> ;
    sh:name "tags" ;
    sh:description "Comma-separated list of tags" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template for the product page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publishedScope> ;
    sh:name "published scope" ;
    sh:description "Whether the product is published to the Point of Sale channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the product was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the product was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the product was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/variants> ;
    sh:name "variants" ;
    sh:description "Product variants" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/options> ;
    sh:name "options" ;
    sh:description "Product options" ;
    sh:node shopify:ProductOptionShape ;
    sh:class shopify:ProductOption ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/images> ;
    sh:name "images" ;
    sh:description "Product images" ;
    sh:node shopify:ProductImageShape ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/image> ;
    sh:name "image" ;
    sh:description "Primary product image" ;
    sh:node shopify:ProductImageShape ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/description> ;
    sh:name "description" ;
    sh:description "Plaintext description of the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/descriptionPlainSummary> ;
    sh:name "description plain summary" ;
    sh:description "Truncated plaintext description for summaries" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/customProductType> ;
    sh:name "custom product type" ;
    sh:description "Custom product type specified by the merchant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/defaultCursor> ;
    sh:name "default cursor" ;
    sh:description "Default cursor for paginating through connections" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/giftCardTemplateSuffix> ;
    sh:name "gift card template suffix" ;
    sh:description "Suffix of the Liquid template for gift card products" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/hasOnlyDefaultVariant> ;
    sh:name "has only default variant" ;
    sh:description "Whether the product has only a single default variant" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/hasOutOfStockVariants> ;
    sh:name "has out of stock variants" ;
    sh:description "Whether the product has any variants that are out of stock" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/hasVariantsThatRequiresComponents> ;
    sh:name "has variants that requires components" ;
    sh:description "Whether the product has variants that require components" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/isGiftCard> ;
    sh:name "is gift card" ;
    sh:description "Whether the product is a gift card" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/requiresSellingPlan> ;
    sh:name "requires selling plan" ;
    sh:description "Whether a selling plan is required to purchase this product" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/tracksInventory> ;
    sh:name "tracks inventory" ;
    sh:description "Whether inventory is tracked for this product" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/totalInventory> ;
    sh:name "total inventory" ;
    sh:description "Total quantity of inventory across all variants and locations" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/totalVariants> ;
    sh:name "total variants" ;
    sh:description "Total number of variants for this product" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:description "Legacy resource ID for backwards compatibility" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/onlineStorePreviewUrl> ;
    sh:name "online store preview url" ;
    sh:description "Preview URL for the product on the online store" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/onlineStoreUrl> ;
    sh:name "online store url" ;
    sh:description "URL for the product on the online store" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/storefrontId> ;
    sh:name "storefront id" ;
    sh:description "Storefront API ID for the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/availablePublicationsCount> ;
    sh:name "available publications count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/graphqlBodyHtml> ;
    sh:name "graphql body html" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/bundleComponents> ;
    sh:name "bundle components" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/category> ;
    sh:name "category" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/collections> ;
    sh:name "collections" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/combinedListing> ;
    sh:name "combined listing" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/combinedListingRole> ;
    sh:name "combined listing role" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/compareAtPriceRange> ;
    sh:name "compare at price range" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/contextualPricing> ;
    sh:name "contextual pricing" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/featuredImage> ;
    sh:name "featured image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/featuredMedia> ;
    sh:name "featured media" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/feedback> ;
    sh:name "feedback" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/inCollection> ;
    sh:name "in collection" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/media> ;
    sh:name "media" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/mediaCount> ;
    sh:name "media count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/priceRange> ;
    sh:name "price range" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/priceRangeV2> ;
    sh:name "price range v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/productCategory> ;
    sh:name "product category" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/productPublications> ;
    sh:name "product publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publicationCount> ;
    sh:name "publication count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publications> ;
    sh:name "publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publishedInContext> ;
    sh:name "published in context" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publishedOnChannel> ;
    sh:name "published on channel" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publishedOnCurrentChannel> ;
    sh:name "published on current channel" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publishedOnCurrentPublication> ;
    sh:name "published on current publication" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/publishedOnPublication> ;
    sh:name "published on publication" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/resourcePublicationOnCurrentPublication> ;
    sh:name "resource publication on current publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/resourcePublications> ;
    sh:name "resource publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/resourcePublicationsCount> ;
    sh:name "resource publications count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/resourcePublicationsV2> ;
    sh:name "resource publications v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/restrictedForResource> ;
    sh:name "restricted for resource" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/sellingPlanGroupCount> ;
    sh:name "selling plan group count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/sellingPlanGroups> ;
    sh:name "selling plan groups" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/sellingPlanGroupsCount> ;
    sh:name "selling plan groups count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/seo> ;
    sh:name "seo" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/standardizedProductType> ;
    sh:name "standardized product type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/unpublishedChannels> ;
    sh:name "unpublished channels" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/unpublishedPublications> ;
    sh:name "unpublished publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Product/variantsCount> ;
    sh:name "variants count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Variant
shopify:ProductVariantShape a sh:NodeShape ;
  sh:targetClass shopify:ProductVariant ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/id> ;
    sh:name "id" ;
    sh:description "Variant ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/product> ;
    sh:name "product" ;
    sh:description "ID of the parent product" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/title> ;
    sh:name "title" ;
    sh:description "Title of the variant" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/price> ;
    sh:name "price" ;
    sh:description "Price of the variant" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/compareAtPrice> ;
    sh:name "compare at price" ;
    sh:description "Original price for comparison display" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/sku> ;
    sh:name "sku" ;
    sh:description "Stock Keeping Unit identifier" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/position> ;
    sh:name "position" ;
    sh:description "Position of the variant in the product listing" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/inventoryPolicy> ;
    sh:name "inventory policy" ;
    sh:description "Whether to continue selling when out of stock: deny or continue" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/fulfillmentService> ;
    sh:name "fulfillment service" ;
    sh:description "Fulfillment service handling the variant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/inventoryManagement> ;
    sh:name "inventory management" ;
    sh:description "Inventory tracking service: shopify, null, or fulfillment service handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/option1> ;
    sh:name "option1" ;
    sh:description "Value for first product option" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/option2> ;
    sh:name "option2" ;
    sh:description "Value for second product option" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/option3> ;
    sh:name "option3" ;
    sh:description "Value for third product option" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/taxable> ;
    sh:name "taxable" ;
    sh:description "Whether the variant is taxable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/barcode> ;
    sh:name "barcode" ;
    sh:description "Barcode (ISBN, UPC, GTIN, etc.)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/grams> ;
    sh:name "grams" ;
    sh:description "Weight of the variant in grams" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/weight> ;
    sh:name "weight" ;
    sh:description "Numerical weight of the variant" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/weightUnit> ;
    sh:name "weight unit" ;
    sh:description "Unit of measurement for weight: g, kg, oz, lb" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/inventoryItem> ;
    sh:name "inventory item" ;
    sh:description "ID of the associated inventory item" ;
    sh:node shopify:InventoryItemShape ;
    sh:class shopify:InventoryItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/inventoryQuantity> ;
    sh:name "inventory quantity" ;
    sh:description "Aggregated stock across all locations" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/oldInventoryQuantity> ;
    sh:name "old inventory quantity" ;
    sh:description "Previous inventory quantity (deprecated)" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:description "Whether the variant requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/taxCode> ;
    sh:name "tax code" ;
    sh:description "Avalara tax code for the variant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/image> ;
    sh:name "image" ;
    sh:description "ID of the variant's image" ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the variant was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the variant was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/presentmentPrices> ;
    sh:name "presentment prices" ;
    sh:description "Variant prices in presentment currencies" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/availableForSale> ;
    sh:name "available for sale" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/defaultCursor> ;
    sh:name "default cursor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/displayName> ;
    sh:name "display name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/requiresComponents> ;
    sh:name "requires components" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/sellableOnlineQuantity> ;
    sh:name "sellable online quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/sellingPlanGroupCount> ;
    sh:name "selling plan group count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/storefrontId> ;
    sh:name "storefront id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/contextualPricing> ;
    sh:name "contextual pricing" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/deliveryProfile> ;
    sh:name "delivery profile" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/media> ;
    sh:name "media" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/productVariantComponents> ;
    sh:name "product variant components" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/selectedOptions> ;
    sh:name "selected options" ;
    sh:node shopify:SelectedOptionShape ;
    sh:class shopify:SelectedOption ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/sellingPlanGroups> ;
    sh:name "selling plan groups" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/sellingPlanGroupsCount> ;
    sh:name "selling plan groups count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/unitPriceMeasurement> ;
    sh:name "unit price measurement" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Selected Option
shopify:SelectedOptionShape a sh:NodeShape ;
  sh:targetClass shopify:SelectedOption ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SelectedOption/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SelectedOption/optionValue> ;
    sh:name "option value" ;
    sh:node shopify:ProductOptionValueShape ;
    sh:class shopify:ProductOptionValue ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SelectedOption/value> ;
    sh:name "value" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Option Value
shopify:ProductOptionValueShape a sh:NodeShape ;
  sh:targetClass shopify:ProductOptionValue ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOptionValue/hasVariants> ;
    sh:name "has variants" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOptionValue/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOptionValue/linkedMetafieldValue> ;
    sh:name "linked metafield value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOptionValue/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOptionValue/swatch> ;
    sh:name "swatch" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOptionValue/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Option
shopify:ProductOptionShape a sh:NodeShape ;
  sh:targetClass shopify:ProductOption ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/optionIdentifier> ;
    sh:name "option identifier" ;
    sh:description "Option ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/product> ;
    sh:name "product" ;
    sh:description "ID of the parent product" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/name> ;
    sh:name "name" ;
    sh:description "Option name (e.g., 'Size', 'Color')" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/position> ;
    sh:name "position" ;
    sh:description "Position of the option" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/values> ;
    sh:name "values" ;
    sh:description "Available values for this option" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/linkedMetafield> ;
    sh:name "linked metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/optionValues> ;
    sh:name "option values" ;
    sh:node shopify:ProductOptionValueShape ;
    sh:class shopify:ProductOptionValue ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductOption/graphqlId> ;
    sh:name "graphql id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Image
shopify:ProductImageShape a sh:NodeShape ;
  sh:targetClass shopify:ProductImage ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/id> ;
    sh:name "id" ;
    sh:description "Image ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/product> ;
    sh:name "product" ;
    sh:description "ID of the parent product" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/position> ;
    sh:name "position" ;
    sh:description "Position of the image in the product gallery" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/alt> ;
    sh:name "alt" ;
    sh:description "Alternative text for the image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/width> ;
    sh:name "width" ;
    sh:description "Width in pixels" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/height> ;
    sh:name "height" ;
    sh:description "Height in pixels" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/src> ;
    sh:name "src" ;
    sh:description "Source URL of the image" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/variants> ;
    sh:name "variants" ;
    sh:description "Variant IDs associated with this image" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/attachment> ;
    sh:name "attachment" ;
    sh:description "Base64-encoded image data (write-only, for creation)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/filename> ;
    sh:name "filename" ;
    sh:description "Filename for the image (used with attachment)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the image was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the image was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImage/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Item
shopify:InventoryItemShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryItem ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/id> ;
    sh:name "id" ;
    sh:description "Inventory item ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/sku> ;
    sh:name "sku" ;
    sh:description "Stock Keeping Unit" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/cost> ;
    sh:name "cost" ;
    sh:description "Unit cost of the item" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/countryCodeOfOrigin> ;
    sh:name "country code of origin" ;
    sh:description "Two-letter ISO 3166-1 country code of origin" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/provinceCodeOfOrigin> ;
    sh:name "province code of origin" ;
    sh:description "Province code of origin" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/harmonizedSystemCode> ;
    sh:name "harmonized system code" ;
    sh:description "Harmonized System code for customs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/tracked> ;
    sh:name "tracked" ;
    sh:description "Whether inventory quantities are tracked" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:description "Whether the item requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/countryHarmonizedSystemCodes> ;
    sh:name "country harmonized system codes" ;
    sh:description "Country-specific harmonized system codes" ;
    sh:node shopify:CountryHarmonizedSystemCodeShape ;
    sh:class shopify:CountryHarmonizedSystemCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the item was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the item was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/duplicateSkuCount> ;
    sh:name "duplicate sku count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/inventoryHistoryUrl> ;
    sh:name "inventory history url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/inventoryLevel> ;
    sh:name "inventory level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/inventoryLevels> ;
    sh:name "inventory levels" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/locationsCount> ;
    sh:name "locations count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/measurement> ;
    sh:name "measurement" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/trackedEditable> ;
    sh:name "tracked editable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/unitCost> ;
    sh:name "unit cost" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItem/variant> ;
    sh:name "variant" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Country Harmonized System Code
shopify:CountryHarmonizedSystemCodeShape a sh:NodeShape ;
  sh:targetClass shopify:CountryHarmonizedSystemCode ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CountryHarmonizedSystemCode/harmonizedSystemCode> ;
    sh:name "harmonized system code" ;
    sh:description "Harmonized system code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CountryHarmonizedSystemCode/countryCode> ;
    sh:name "country code" ;
    sh:description "Two-letter ISO 3166-1 country code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Category
shopify:ProductCategoryShape a sh:NodeShape ;
  sh:targetClass shopify:ProductCategory ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductCategory/productTaxonomyNode> ;
    sh:name "product taxonomy node" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Taxonomy Category
shopify:TaxonomyCategoryShape a sh:NodeShape ;
  sh:targetClass shopify:TaxonomyCategory ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/ancestorIds> ;
    sh:name "ancestor ids" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/attributes> ;
    sh:name "attributes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/childrenIds> ;
    sh:name "children ids" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/fullName> ;
    sh:name "full name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/isArchived> ;
    sh:name "is archived" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/isLeaf> ;
    sh:name "is leaf" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/isRoot> ;
    sh:name "is root" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/level> ;
    sh:name "level" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxonomyCategory/parentId> ;
    sh:name "parent id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Tax Line
shopify:TaxLineShape a sh:NodeShape ;
  sh:targetClass shopify:TaxLine ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxLine/price> ;
    sh:name "price" ;
    sh:description "Amount of tax charged" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxLine/rate> ;
    sh:name "rate" ;
    sh:description "Tax rate applied" ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxLine/title> ;
    sh:name "title" ;
    sh:description "Name of the tax" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxLine/priceSet> ;
    sh:name "price set" ;
    sh:description "Tax amount in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxLine/channelLiable> ;
    sh:name "channel liable" ;
    sh:description "Whether the channel that submitted the tax is liable for remitting" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxLine/ratePercentage> ;
    sh:name "rate percentage" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TaxLine/source> ;
    sh:name "source" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Discount Code
shopify:DiscountCodeShape a sh:NodeShape ;
  sh:targetClass shopify:DiscountCode ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountCode/code> ;
    sh:name "code" ;
    sh:description "The discount code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountCode/amount> ;
    sh:name "amount" ;
    sh:description "The amount of the discount" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountCode/type> ;
    sh:name "type" ;
    sh:description "The type of discount: fixed_amount, percentage, or shipping" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shipping Line
shopify:ShippingLineShape a sh:NodeShape ;
  sh:targetClass shopify:ShippingLine ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/id> ;
    sh:name "id" ;
    sh:description "Shipping line ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/title> ;
    sh:name "title" ;
    sh:description "Title of the shipping method" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/price> ;
    sh:name "price" ;
    sh:description "Price of the shipping method" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/code> ;
    sh:name "code" ;
    sh:description "Reference to the shipping method" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/source> ;
    sh:name "source" ;
    sh:description "Source of the shipping method" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/discountedPrice> ;
    sh:name "discounted price" ;
    sh:description "Discounted price of the shipping method" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/carrierIdentifier> ;
    sh:name "carrier identifier" ;
    sh:description "Reference to the carrier service providing the rate" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines applied to the shipping line" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/priceSet> ;
    sh:name "price set" ;
    sh:description "Shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/discountedPriceSet> ;
    sh:name "discounted price set" ;
    sh:description "Discounted shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/discountAllocations> ;
    sh:name "discount allocations" ;
    sh:description "Discount allocations applied to the shipping line" ;
    sh:node shopify:DiscountAllocationShape ;
    sh:class shopify:DiscountAllocation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/custom> ;
    sh:name "custom" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/deliveryCategory> ;
    sh:name "delivery category" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/isRemoved> ;
    sh:name "is removed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/phone> ;
    sh:name "phone" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/shippingRateHandle> ;
    sh:name "shipping rate handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/currentDiscountedPriceSet> ;
    sh:name "current discounted price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/originalPrice> ;
    sh:name "original price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/originalPriceSet> ;
    sh:name "original price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingLine/requestedFulfillmentService> ;
    sh:name "requested fulfillment service" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Discount Allocation
shopify:DiscountAllocationShape a sh:NodeShape ;
  sh:targetClass shopify:DiscountAllocation ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountAllocation/amount> ;
    sh:name "amount" ;
    sh:description "The discount amount allocated to the line item" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountAllocation/discountApplicationIndex> ;
    sh:name "discount application index" ;
    sh:description "Index of the associated discount application" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountAllocation/allocatedAmount> ;
    sh:name "allocated amount" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountAllocation/allocatedAmountSet> ;
    sh:name "allocated amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountAllocation/discountApplication> ;
    sh:name "discount application" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Note Attribute
shopify:NoteAttributeShape a sh:NodeShape ;
  sh:targetClass shopify:NoteAttribute ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.NoteAttribute/name> ;
    sh:name "name" ;
    sh:description "Attribute name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.NoteAttribute/value> ;
    sh:name "value" ;
    sh:description "Attribute value" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Discount Application
shopify:DiscountApplicationShape a sh:NodeShape ;
  sh:targetClass shopify:DiscountApplication ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/type> ;
    sh:name "type" ;
    sh:description "Type of discount: manual, script, discount_code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/value> ;
    sh:name "value" ;
    sh:description "Discount value" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/valueType> ;
    sh:name "value type" ;
    sh:description "Type of the discount value: fixed_amount or percentage" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/allocationMethod> ;
    sh:name "allocation method" ;
    sh:description "How the discount is allocated: across or each" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/targetSelection> ;
    sh:name "target selection" ;
    sh:description "Which items the discount targets: all or entitled" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/targetType> ;
    sh:name "target type" ;
    sh:description "Target type: line_item or shipping_line" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/title> ;
    sh:name "title" ;
    sh:description "Title of the discount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/description> ;
    sh:name "description" ;
    sh:description "Description of the discount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/code> ;
    sh:name "code" ;
    sh:description "Discount code (for discount_code type)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountApplication/index> ;
    sh:name "index" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Client Details
shopify:ClientDetailsShape a sh:NodeShape ;
  sh:targetClass shopify:ClientDetails ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ClientDetails/browserIp> ;
    sh:name "browser ip" ;
    sh:description "IP address of the browser" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ClientDetails/acceptLanguage> ;
    sh:name "accept language" ;
    sh:description "Languages and locales accepted by the browser" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ClientDetails/userAgent> ;
    sh:name "user agent" ;
    sh:description "Browser user agent string" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ClientDetails/sessionHash> ;
    sh:name "session hash" ;
    sh:description "Hash of the session" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ClientDetails/browserWidth> ;
    sh:name "browser width" ;
    sh:description "Width of the browser window in pixels" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ClientDetails/browserHeight> ;
    sh:name "browser height" ;
    sh:description "Height of the browser window in pixels" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Line Item
shopify:OrderLineItemShape a sh:NodeShape ;
  sh:targetClass shopify:OrderLineItem ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/id> ;
    sh:name "id" ;
    sh:description "Line item ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/variant> ;
    sh:name "variant" ;
    sh:description "ID of the product variant" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/title> ;
    sh:name "title" ;
    sh:description "Title of the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/quantity> ;
    sh:name "quantity" ;
    sh:description "Quantity of the item ordered" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/price> ;
    sh:name "price" ;
    sh:description "Price of the item before discounts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/sku> ;
    sh:name "sku" ;
    sh:description "Stock Keeping Unit of the variant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/vendor> ;
    sh:name "vendor" ;
    sh:description "Name of the item vendor" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/fulfillmentService> ;
    sh:name "fulfillment service" ;
    sh:description "Service provider responsible for fulfillment" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/product> ;
    sh:name "product" ;
    sh:description "ID of the product" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:description "Whether the item requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/taxable> ;
    sh:name "taxable" ;
    sh:description "Whether the item is taxable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/giftCard> ;
    sh:name "gift card" ;
    sh:description "Whether the item is a gift card" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/name> ;
    sh:name "name" ;
    sh:description "Name of the product variant" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/variantTitle> ;
    sh:name "variant title" ;
    sh:description "Title of the product variant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/properties> ;
    sh:name "properties" ;
    sh:description "Custom properties for the line item" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/fulfillableQuantity> ;
    sh:name "fulfillable quantity" ;
    sh:description "Quantity that can be fulfilled" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment status of the line item" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines applied to the line item" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/discountAllocations> ;
    sh:name "discount allocations" ;
    sh:description "Discount allocations applied to the line item" ;
    sh:node shopify:DiscountAllocationShape ;
    sh:class shopify:DiscountAllocation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/totalDiscount> ;
    sh:name "total discount" ;
    sh:description "Total discount amount applied to the line item" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/grams> ;
    sh:name "grams" ;
    sh:description "Weight of the item in grams" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/currentQuantity> ;
    sh:name "current quantity" ;
    sh:description "Quantity after refunds" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/priceSet> ;
    sh:name "price set" ;
    sh:description "Price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/totalDiscountSet> ;
    sh:name "total discount set" ;
    sh:description "Total discount in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/graphqlId> ;
    sh:name "graphql id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/canRestock> ;
    sh:name "can restock" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/contract> ;
    sh:name "contract" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/discountedTotal> ;
    sh:name "discounted total" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/discountedTotalSet> ;
    sh:name "discounted total set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/discountedUnitPrice> ;
    sh:name "discounted unit price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/discountedUnitPriceAfterAllDiscountsSet> ;
    sh:name "discounted unit price after all discounts set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/discountedUnitPriceSet> ;
    sh:name "discounted unit price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/duties> ;
    sh:name "duties" ;
    sh:node shopify:DutyShape ;
    sh:class shopify:Duty ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/isGiftCard> ;
    sh:name "is gift card" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/lineItemGroup> ;
    sh:name "line item group" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/merchantEditable> ;
    sh:name "merchant editable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/nonFulfillableQuantity> ;
    sh:name "non fulfillable quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/originalTotal> ;
    sh:name "original total" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/originalTotalSet> ;
    sh:name "original total set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/originalUnitPrice> ;
    sh:name "original unit price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/originalUnitPriceSet> ;
    sh:name "original unit price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/refundableQuantity> ;
    sh:name "refundable quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/restockable> ;
    sh:name "restockable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/sellingPlan> ;
    sh:name "selling plan" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/unfulfilledDiscountedTotal> ;
    sh:name "unfulfilled discounted total" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/unfulfilledDiscountedTotalSet> ;
    sh:name "unfulfilled discounted total set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/unfulfilledOriginalTotal> ;
    sh:name "unfulfilled original total" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/unfulfilledOriginalTotalSet> ;
    sh:name "unfulfilled original total set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderLineItem/unfulfilledQuantity> ;
    sh:name "unfulfilled quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Duty
shopify:DutyShape a sh:NodeShape ;
  sh:targetClass shopify:Duty ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Duty/countryCodeOfOrigin> ;
    sh:name "country code of origin" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Duty/harmonizedSystemCode> ;
    sh:name "harmonized system code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Duty/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Duty/price> ;
    sh:name "price" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Duty/taxLines> ;
    sh:name "tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Order
shopify:OrderShape a sh:NodeShape ;
  sh:targetClass shopify:Order ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/id> ;
    sh:name "id" ;
    sh:description "Unique order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/orderNumber> ;
    sh:name "order number" ;
    sh:description "Shop-specific order number (e.g. 1001)" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/name> ;
    sh:name "name" ;
    sh:description "Order name including prefix (e.g. #1001)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/financialStatus> ;
    sh:name "financial status" ;
    sh:description "Financial status of the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "pending" "authorized" "partially_paid" "paid" "partially_refunded" "refunded" "voided" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment status of the order (null means unfulfilled)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fulfilled" "partial" "unfulfilled" "restocked" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the order including taxes and discounts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Price of the order after discounts but before shipping and taxes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalTax> ;
    sh:name "total tax" ;
    sh:description "Sum of all taxes applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalDiscounts> ;
    sh:name "total discounts" ;
    sh:description "Total discounts applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalLineItemsPrice> ;
    sh:name "total line items price" ;
    sh:description "Sum of all line item prices" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the order" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the order" ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount codes applied to the order" ;
    sh:node shopify:DiscountCodeShape ;
    sh:class shopify:DiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines on the order" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/shippingLines> ;
    sh:name "shipping lines" ;
    sh:description "Shipping lines on the order" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/note> ;
    sh:name "note" ;
    sh:description "Optional note attached to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/tags> ;
    sh:name "tags" ;
    sh:description "Tags attached to the order (comma-separated)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/cancelReason> ;
    sh:name "cancel reason" ;
    sh:description "Reason the order was cancelled: customer, fraud, inventory, declined, other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Date and time when the order was cancelled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/closedAt> ;
    sh:name "closed at" ;
    sh:description "Date and time when the order was closed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the order was processed" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the order was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the order was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/sourceName> ;
    sh:name "source name" ;
    sh:description "Where the order originated (e.g. web, pos, shopify_draft_order)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/gateway> ;
    sh:name "gateway" ;
    sh:description "Payment gateway used" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test order" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/confirmed> ;
    sh:name "confirmed" ;
    sh:description "Whether the order has been confirmed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/buyerAcceptsMarketing> ;
    sh:name "buyer accepts marketing" ;
    sh:description "Whether the buyer accepted marketing" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalWeight> ;
    sh:name "total weight" ;
    sh:description "Total weight of the order in grams" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/token> ;
    sh:name "token" ;
    sh:description "Unique token for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/appId> ;
    sh:name "app id" ;
    sh:description "ID of the app that created the order" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/browserIp> ;
    sh:name "browser ip" ;
    sh:description "IP address of the browser used to place the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/landingSite> ;
    sh:name "landing site" ;
    sh:description "URL of the page where the buyer landed when entering the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/referringSite> ;
    sh:name "referring site" ;
    sh:description "Website that referred the customer to the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/discountApplications> ;
    sh:name "discount applications" ;
    sh:description "Discount applications on the order" ;
    sh:node shopify:DiscountApplicationShape ;
    sh:class shopify:DiscountApplication ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/fulfillments> ;
    sh:name "fulfillments" ;
    sh:description "Fulfillments associated with the order" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/refunds> ;
    sh:name "refunds" ;
    sh:description "Refunds applied to the order" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalPrice> ;
    sh:name "current total price" ;
    sh:description "Current total price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentSubtotalPrice> ;
    sh:name "current subtotal price" ;
    sh:description "Current subtotal price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalTax> ;
    sh:name "current total tax" ;
    sh:description "Current total tax after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalDiscounts> ;
    sh:name "current total discounts" ;
    sh:description "Current total discounts after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalPriceSet> ;
    sh:name "current total price set" ;
    sh:description "Current total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentSubtotalPriceSet> ;
    sh:name "current subtotal price set" ;
    sh:description "Current subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalTaxSet> ;
    sh:name "current total tax set" ;
    sh:description "Current total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalDiscountsSet> ;
    sh:name "current total discounts set" ;
    sh:description "Current total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/paymentGatewayNames> ;
    sh:name "payment gateway names" ;
    sh:description "List of payment gateways used for the order" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/processingMethod> ;
    sh:name "processing method" ;
    sh:description "How the payment was processed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/clientDetails> ;
    sh:name "client details" ;
    sh:description "Details about the client that created the order" ;
    sh:node shopify:ClientDetailsShape ;
    sh:class shopify:ClientDetails ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the order subtotal" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/orderStatusUrl> ;
    sh:name "order status url" ;
    sh:description "URL for the order status page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalTipReceived> ;
    sh:name "total tip received" ;
    sh:description "Total tip amount received" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/number> ;
    sh:name "number" ;
    sh:description "Sequential order number for the shop" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/confirmationNumber> ;
    sh:name "confirmation number" ;
    sh:description "Confirmation number for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/canMarkAsPaid> ;
    sh:name "can mark as paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/canNotifyCustomer> ;
    sh:name "can notify customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/capturable> ;
    sh:name "capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/clientIp> ;
    sh:name "client ip" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/closed> ;
    sh:name "closed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentSubtotalLineItemsQuantity> ;
    sh:name "current subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalWeight> ;
    sh:name "current total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/customerAcceptsMarketing> ;
    sh:name "customer accepts marketing" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/customerLocale> ;
    sh:name "customer locale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/discountCode> ;
    sh:name "discount code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/dutiesIncluded> ;
    sh:name "duties included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/edited> ;
    sh:name "edited" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/estimatedTaxes> ;
    sh:name "estimated taxes" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/fulfillable> ;
    sh:name "fulfillable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/fullyPaid> ;
    sh:name "fully paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/landingPageDisplayText> ;
    sh:name "landing page display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/landingPageUrl> ;
    sh:name "landing page url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/merchantEditable> ;
    sh:name "merchant editable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/merchantEditableErrors> ;
    sh:name "merchant editable errors" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/referralCode> ;
    sh:name "referral code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/referrerDisplayText> ;
    sh:name "referrer display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/referrerUrl> ;
    sh:name "referrer url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/refundable> ;
    sh:name "refundable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/registeredSourceUrl> ;
    sh:name "registered source url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/restockable> ;
    sh:name "restockable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/sourceIdentifier> ;
    sh:name "source identifier" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/statusPageUrl> ;
    sh:name "status page url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/subtotalLineItemsQuantity> ;
    sh:name "subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/taxExempt> ;
    sh:name "tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/unpaid> ;
    sh:name "unpaid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/additionalFees> ;
    sh:name "additional fees" ;
    sh:node shopify:AdditionalFeeShape ;
    sh:class shopify:AdditionalFee ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/agreements> ;
    sh:name "agreements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/alerts> ;
    sh:name "alerts" ;
    sh:node shopify:ResourceAlertShape ;
    sh:class shopify:ResourceAlert ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/cancellation> ;
    sh:name "cancellation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/cartDiscountAmount> ;
    sh:name "cart discount amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/cartDiscountAmountSet> ;
    sh:name "cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/channel> ;
    sh:name "channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/channelInformation> ;
    sh:name "channel information" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentCartDiscountAmountSet> ;
    sh:name "current cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentShippingPriceSet> ;
    sh:name "current shipping price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTaxLines> ;
    sh:name "current tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalAdditionalFeesSet> ;
    sh:name "current total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/currentTotalDutiesSet> ;
    sh:name "current total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/customerJourney> ;
    sh:name "customer journey" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/customerJourneySummary> ;
    sh:name "customer journey summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/displayAddress> ;
    sh:name "display address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/displayFinancialStatus> ;
    sh:name "display financial status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/displayFulfillmentStatus> ;
    sh:name "display fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/disputes> ;
    sh:name "disputes" ;
    sh:node shopify:OrderDisputeSummaryShape ;
    sh:class shopify:OrderDisputeSummary ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/exchangeV2s> ;
    sh:name "exchange v2s" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/fulfillmentsCount> ;
    sh:name "fulfillments count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/merchantBusinessEntity> ;
    sh:name "merchant business entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/merchantOfRecordApp> ;
    sh:name "merchant of record app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/netPayment> ;
    sh:name "net payment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/netPaymentSet> ;
    sh:name "net payment set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/nonFulfillableLineItems> ;
    sh:name "non fulfillable line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/originalTotalAdditionalFeesSet> ;
    sh:name "original total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/originalTotalDutiesSet> ;
    sh:name "original total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/originalTotalPriceSet> ;
    sh:name "original total price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/paymentCollectionDetails> ;
    sh:name "payment collection details" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/paymentTerms> ;
    sh:name "payment terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/physicalLocation> ;
    sh:name "physical location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/publication> ;
    sh:name "publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/refundDiscrepancySet> ;
    sh:name "refund discrepancy set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/retailLocation> ;
    sh:name "retail location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/returnStatus> ;
    sh:name "return status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/returns> ;
    sh:name "returns" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/risk> ;
    sh:name "risk" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/riskLevel> ;
    sh:name "risk level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/risks> ;
    sh:name "risks" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/shippingLine> ;
    sh:name "shipping line" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/shopifyProtect> ;
    sh:name "shopify protect" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/suggestedRefund> ;
    sh:name "suggested refund" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalCapturable> ;
    sh:name "total capturable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalCapturableSet> ;
    sh:name "total capturable set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalCashRoundingAdjustment> ;
    sh:name "total cash rounding adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalOutstandingSet> ;
    sh:name "total outstanding set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalReceived> ;
    sh:name "total received" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalReceivedSet> ;
    sh:name "total received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalRefunded> ;
    sh:name "total refunded" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalRefundedSet> ;
    sh:name "total refunded set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalRefundedShippingSet> ;
    sh:name "total refunded shipping set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/totalTipReceivedSet> ;
    sh:name "total tip received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/transactions> ;
    sh:name "transactions" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Order/transactionsCount> ;
    sh:name "transactions count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer
shopify:CustomerShape a sh:NodeShape ;
  sh:targetClass shopify:Customer ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/id> ;
    sh:name "id" ;
    sh:description "Customer ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/firstName> ;
    sh:name "first name" ;
    sh:description "Customer first name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/lastName> ;
    sh:name "last name" ;
    sh:description "Customer last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/addresses> ;
    sh:name "addresses" ;
    sh:description "Customer addresses" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/defaultAddress> ;
    sh:name "default address" ;
    sh:description "Default address for the customer" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/ordersCount> ;
    sh:name "orders count" ;
    sh:description "Number of orders placed by the customer" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/totalSpent> ;
    sh:name "total spent" ;
    sh:description "Total amount spent by the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/state> ;
    sh:name "state" ;
    sh:description "Customer account state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "disabled" "invited" "enabled" "declined" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/verifiedEmail> ;
    sh:name "verified email" ;
    sh:description "Whether the email address has been verified" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/emailMarketingConsent> ;
    sh:name "email marketing consent" ;
    sh:description "Email marketing consent information" ;
    sh:node shopify:EmailMarketingConsentShape ;
    sh:class shopify:EmailMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/smsMarketingConsent> ;
    sh:name "sms marketing consent" ;
    sh:description "SMS marketing consent information" ;
    sh:node shopify:SmsMarketingConsentShape ;
    sh:class shopify:SmsMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/note> ;
    sh:name "note" ;
    sh:description "Note about the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Whether the customer is tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/taxExemptions> ;
    sh:name "tax exemptions" ;
    sh:description "Tax exemptions applicable to the customer" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/currency> ;
    sh:name "currency" ;
    sh:description "Customer currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/acceptsMarketing> ;
    sh:name "accepts marketing" ;
    sh:description "Whether the customer has consented to marketing (deprecated, use email_marketing_consent)" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/acceptsMarketingUpdatedAt> ;
    sh:name "accepts marketing updated at" ;
    sh:description "Date when marketing consent was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/marketingOptInLevel> ;
    sh:name "marketing opt in level" ;
    sh:description "Marketing opt-in level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/multipassIdentifier> ;
    sh:name "multipass identifier" ;
    sh:description "Multipass identifier for the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/lastOrder> ;
    sh:name "last order" ;
    sh:description "ID of the customer's last order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/lastOrderName> ;
    sh:name "last order name" ;
    sh:description "Name of the customer's last order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the customer was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the customer was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/canDelete> ;
    sh:name "can delete" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/dataSaleOptOut> ;
    sh:name "data sale opt out" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/displayName> ;
    sh:name "display name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/lifetimeDuration> ;
    sh:name "lifetime duration" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/locale> ;
    sh:name "locale" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/numberOfOrders> ;
    sh:name "number of orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/unsubscribeUrl> ;
    sh:name "unsubscribe url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/validEmailAddress> ;
    sh:name "valid email address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/addressesV2> ;
    sh:name "addresses v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/amountSpent> ;
    sh:name "amount spent" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/companyContactProfiles> ;
    sh:name "company contact profiles" ;
    sh:class shopify:CompanyContact ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/defaultEmailAddress> ;
    sh:name "default email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/defaultPhoneNumber> ;
    sh:name "default phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/market> ;
    sh:name "market" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/mergeable> ;
    sh:name "mergeable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/orders> ;
    sh:name "orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/paymentMethods> ;
    sh:name "payment methods" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/productSubscriberStatus> ;
    sh:name "product subscriber status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/statistics> ;
    sh:name "statistics" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/storeCreditAccounts> ;
    sh:name "store credit accounts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Customer/subscriptionContracts> ;
    sh:name "subscription contracts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Address
shopify:CustomerAddressShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerAddress ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/id> ;
    sh:name "id" ;
    sh:description "Address ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/customer> ;
    sh:name "customer" ;
    sh:description "ID of the parent customer" ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/firstName> ;
    sh:name "first name" ;
    sh:description "First name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/lastName> ;
    sh:name "last name" ;
    sh:description "Last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/company> ;
    sh:name "company" ;
    sh:description "Company name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/address1> ;
    sh:name "address1" ;
    sh:description "Street address line 1" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/address2> ;
    sh:name "address2" ;
    sh:description "Street address line 2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/city> ;
    sh:name "city" ;
    sh:description "City" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/province> ;
    sh:name "province" ;
    sh:description "Province or state name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/country> ;
    sh:name "country" ;
    sh:description "Country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/zip> ;
    sh:name "zip" ;
    sh:description "ZIP or postal code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/phone> ;
    sh:name "phone" ;
    sh:description "Phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/name> ;
    sh:name "name" ;
    sh:description "Full name of the address owner" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/provinceCode> ;
    sh:name "province code" ;
    sh:description "Province or state code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/countryCode> ;
    sh:name "country code" ;
    sh:description "Country code (ISO 3166-1 alpha-2)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/countryName> ;
    sh:name "country name" ;
    sh:description "Normalized country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/default> ;
    sh:name "default" ;
    sh:description "Whether this is the default address" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/coordinatesValidated> ;
    sh:name "coordinates validated" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/countryCodeV2> ;
    sh:name "country code v2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/formatted> ;
    sh:name "formatted" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/formattedArea> ;
    sh:name "formatted area" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/latitude> ;
    sh:name "latitude" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/longitude> ;
    sh:name "longitude" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/timeZone> ;
    sh:name "time zone" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddress/validationResultSummary> ;
    sh:name "validation result summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Email Marketing Consent
shopify:EmailMarketingConsentShape a sh:NodeShape ;
  sh:targetClass shopify:EmailMarketingConsent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EmailMarketingConsent/state> ;
    sh:name "state" ;
    sh:description "Marketing consent state: subscribed, not_subscribed, pending, unsubscribed" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EmailMarketingConsent/optInLevel> ;
    sh:name "opt in level" ;
    sh:description "Opt-in level: single_opt_in, confirmed_opt_in, unknown" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EmailMarketingConsent/consentUpdatedAt> ;
    sh:name "consent updated at" ;
    sh:description "Date when consent was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EmailMarketingConsent/marketingOptInLevel> ;
    sh:name "marketing opt in level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EmailMarketingConsent/marketingState> ;
    sh:name "marketing state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EmailMarketingConsent/sourceLocation> ;
    sh:name "source location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Sms Marketing Consent
shopify:SmsMarketingConsentShape a sh:NodeShape ;
  sh:targetClass shopify:SmsMarketingConsent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmsMarketingConsent/state> ;
    sh:name "state" ;
    sh:description "Marketing consent state: subscribed, not_subscribed, pending, unsubscribed" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmsMarketingConsent/optInLevel> ;
    sh:name "opt in level" ;
    sh:description "Opt-in level: single_opt_in, confirmed_opt_in, unknown" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmsMarketingConsent/consentUpdatedAt> ;
    sh:name "consent updated at" ;
    sh:description "Date when consent was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmsMarketingConsent/consentCollectedFrom> ;
    sh:name "consent collected from" ;
    sh:description "Source of the consent: web, pos, shopify_android, shopify_ios, other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmsMarketingConsent/marketingOptInLevel> ;
    sh:name "marketing opt in level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmsMarketingConsent/marketingState> ;
    sh:name "marketing state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmsMarketingConsent/sourceLocation> ;
    sh:name "source location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Company Contact
shopify:CompanyContactShape a sh:NodeShape ;
  sh:targetClass shopify:CompanyContact ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/company> ;
    sh:name "company" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/customer> ;
    sh:name "customer" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/draftOrders> ;
    sh:name "draft orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/isMainContact> ;
    sh:name "is main contact" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/lifetimeDuration> ;
    sh:name "lifetime duration" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/locale> ;
    sh:name "locale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/orders> ;
    sh:name "orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/roleAssignments> ;
    sh:name "role assignments" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CompanyContact/updatedAt> ;
    sh:name "updated at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment
shopify:FulfillmentShape a sh:NodeShape ;
  sh:targetClass shopify:Fulfillment ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/id> ;
    sh:name "id" ;
    sh:description "Fulfillment ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/order> ;
    sh:name "order" ;
    sh:description "ID of the associated order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/status> ;
    sh:name "status" ;
    sh:description "Fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "pending" "open" "success" "cancelled" "error" "failure" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/trackingCompany> ;
    sh:name "tracking company" ;
    sh:description "Name of the tracking company" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/trackingNumber> ;
    sh:name "tracking number" ;
    sh:description "Tracking number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/trackingNumbers> ;
    sh:name "tracking numbers" ;
    sh:description "List of tracking numbers" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/trackingUrl> ;
    sh:name "tracking url" ;
    sh:description "Tracking URL" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/trackingUrls> ;
    sh:name "tracking urls" ;
    sh:description "List of tracking URLs" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/lineItems> ;
    sh:name "line items" ;
    sh:description "Fulfilled line items" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/shipmentStatus> ;
    sh:name "shipment status" ;
    sh:description "Current shipment status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "label_purchased" "label_printed" "attempted_delivery" "ready_for_pickup" "picked_up" "confirmed" "in_transit" "out_for_delivery" "delivered" "failure" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/location> ;
    sh:name "location" ;
    sh:description "ID of the location the fulfillment was processed at" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/notifyCustomer> ;
    sh:name "notify customer" ;
    sh:description "Whether the customer was notified" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/service> ;
    sh:name "service" ;
    sh:description "Service used for fulfillment" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/name> ;
    sh:name "name" ;
    sh:description "Fulfillment name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/receipt> ;
    sh:name "receipt" ;
    sh:description "Fulfillment receipt" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the fulfillment was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the fulfillment was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/originAddress> ;
    sh:name "origin address" ;
    sh:description "Origin address from which items were fulfilled" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/deliveredAt> ;
    sh:name "delivered at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/estimatedDeliveryAt> ;
    sh:name "estimated delivery at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/inTransitAt> ;
    sh:name "in transit at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/totalQuantity> ;
    sh:name "total quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/displayStatus> ;
    sh:name "display status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/fulfillmentLineItems> ;
    sh:name "fulfillment line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/trackingInfo> ;
    sh:name "tracking info" ;
    sh:node shopify:FulfillmentTrackingInfoShape ;
    sh:class shopify:FulfillmentTrackingInfo ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Fulfillment Tracking Info
shopify:FulfillmentTrackingInfoShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentTrackingInfo ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentTrackingInfo/company> ;
    sh:name "company" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentTrackingInfo/number> ;
    sh:name "number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentTrackingInfo/url> ;
    sh:name "url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] .

# Shape for Refund
shopify:RefundShape a sh:NodeShape ;
  sh:targetClass shopify:Refund ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/id> ;
    sh:name "id" ;
    sh:description "Refund ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/orderId> ;
    sh:name "order id" ;
    sh:description "ID of the associated order" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the refund was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/note> ;
    sh:name "note" ;
    sh:description "Optional note attached to the refund" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/restock> ;
    sh:name "restock" ;
    sh:description "Whether to add the line items back to the store inventory" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/userId> ;
    sh:name "user id" ;
    sh:description "ID of the staff member who created the refund" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/refundLineItems> ;
    sh:name "refund line items" ;
    sh:description "Refund line items" ;
    sh:class shopify:RefundLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/transactions> ;
    sh:name "transactions" ;
    sh:description "Transactions associated with the refund" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/orderAdjustments> ;
    sh:name "order adjustments" ;
    sh:description "Order adjustments attached to the refund" ;
    sh:node shopify:OrderAdjustmentShape ;
    sh:class shopify:OrderAdjustment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/updatedAt> ;
    sh:name "updated at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/duties> ;
    sh:name "duties" ;
    sh:node shopify:RefundDutyShape ;
    sh:class shopify:RefundDuty ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/order> ;
    sh:name "order" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/refundShippingLines> ;
    sh:name "refund shipping lines" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/return> ;
    sh:name "return" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/totalRefunded> ;
    sh:name "total refunded" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Refund/totalRefundedSet> ;
    sh:name "total refunded set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Refund Line Item
shopify:RefundLineItemShape a sh:NodeShape ;
  sh:targetClass shopify:RefundLineItem ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/id> ;
    sh:name "id" ;
    sh:description "Refund line item ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/lineItemId> ;
    sh:name "line item id" ;
    sh:description "ID of the related line item in the order" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/lineItem> ;
    sh:name "line item" ;
    sh:description "The associated line item" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/quantity> ;
    sh:name "quantity" ;
    sh:description "Quantity being refunded" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/restockType> ;
    sh:name "restock type" ;
    sh:description "How the item should be restocked: no_restock, cancel, or return" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/subtotal> ;
    sh:name "subtotal" ;
    sh:description "Subtotal of the refund line item" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/totalTax> ;
    sh:name "total tax" ;
    sh:description "Total tax on the refund line item" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/locationId> ;
    sh:name "location id" ;
    sh:description "ID of the location where the items will be restocked" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/restocked> ;
    sh:name "restocked" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/location> ;
    sh:name "location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/price> ;
    sh:name "price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/priceSet> ;
    sh:name "price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/subtotalSet> ;
    sh:name "subtotal set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundLineItem/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Transaction
shopify:OrderTransactionShape a sh:NodeShape ;
  sh:targetClass shopify:OrderTransaction ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/id> ;
    sh:name "id" ;
    sh:description "Transaction ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/orderId> ;
    sh:name "order id" ;
    sh:description "ID of the associated order" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/kind> ;
    sh:name "kind" ;
    sh:description "The kind of transaction" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "authorization" "capture" "sale" "void" "refund" "CHANGE" "EMV_AUTHORIZATION" "SUGGESTED_REFUND" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/gateway> ;
    sh:name "gateway" ;
    sh:description "Payment gateway used for the transaction" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/status> ;
    sh:name "status" ;
    sh:description "Status of the transaction" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "pending" "failure" "success" "error" "AWAITING_RESPONSE" "UNKNOWN" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/message> ;
    sh:name "message" ;
    sh:description "Descriptive message about the transaction" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/amount> ;
    sh:name "amount" ;
    sh:description "Amount of money involved in the transaction" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the transaction was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test transaction" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/authorization> ;
    sh:name "authorization" ;
    sh:description "Authorization code associated with the transaction" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/parentId> ;
    sh:name "parent id" ;
    sh:description "ID of the parent transaction" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/errorCode> ;
    sh:name "error code" ;
    sh:description "Standardized error code from the payment provider" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/accountNumber> ;
    sh:name "account number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/authorizationCode> ;
    sh:name "authorization code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/authorizationExpiresAt> ;
    sh:name "authorization expires at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/formattedGateway> ;
    sh:name "formatted gateway" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/manualPaymentGateway> ;
    sh:name "manual payment gateway" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/manuallyCapturable> ;
    sh:name "manually capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/multiCapturable> ;
    sh:name "multi capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/paymentId> ;
    sh:name "payment id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/processedAt> ;
    sh:name "processed at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/receiptJson> ;
    sh:name "receipt json" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/amountRoundingSet> ;
    sh:name "amount rounding set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/amountSet> ;
    sh:name "amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/amountV2> ;
    sh:name "amount v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/fees> ;
    sh:name "fees" ;
    sh:node shopify:TransactionFeeShape ;
    sh:class shopify:TransactionFee ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/maximumRefundable> ;
    sh:name "maximum refundable" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/maximumRefundableV2> ;
    sh:name "maximum refundable v2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/order> ;
    sh:name "order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/parentTransaction> ;
    sh:name "parent transaction" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/paymentDetails> ;
    sh:name "payment details" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/paymentIcon> ;
    sh:name "payment icon" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/paymentMethod> ;
    sh:name "payment method" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/settlementCurrency> ;
    sh:name "settlement currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/settlementCurrencyRate> ;
    sh:name "settlement currency rate" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/shopifyPaymentsSet> ;
    sh:name "shopify payments set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/totalUnsettled> ;
    sh:name "total unsettled" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/totalUnsettledSet> ;
    sh:name "total unsettled set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/totalUnsettledV2> ;
    sh:name "total unsettled v2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/user> ;
    sh:name "user" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Transaction Fee
shopify:TransactionFeeShape a sh:NodeShape ;
  sh:targetClass shopify:TransactionFee ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionFee/amount> ;
    sh:name "amount" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionFee/flatFee> ;
    sh:name "flat fee" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionFee/flatFeeName> ;
    sh:name "flat fee name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionFee/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionFee/rate> ;
    sh:name "rate" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionFee/rateName> ;
    sh:name "rate name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionFee/taxAmount> ;
    sh:name "tax amount" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionFee/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Adjustment
shopify:OrderAdjustmentShape a sh:NodeShape ;
  sh:targetClass shopify:OrderAdjustment ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/id> ;
    sh:name "id" ;
    sh:description "Order adjustment ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/orderId> ;
    sh:name "order id" ;
    sh:description "ID of the associated order" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/refundId> ;
    sh:name "refund id" ;
    sh:description "ID of the associated refund" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/amount> ;
    sh:name "amount" ;
    sh:description "Amount of the adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/taxAmount> ;
    sh:name "tax amount" ;
    sh:description "Tax amount of the adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/kind> ;
    sh:name "kind" ;
    sh:description "Type of adjustment: shipping_refund, refund_discrepancy" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/reason> ;
    sh:name "reason" ;
    sh:description "Reason for the adjustment" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/amountSet> ;
    sh:name "amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderAdjustment/taxAmountSet> ;
    sh:name "tax amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Refund Duty
shopify:RefundDutyShape a sh:NodeShape ;
  sh:targetClass shopify:RefundDuty ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundDuty/amountSet> ;
    sh:name "amount set" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundDuty/originalDuty> ;
    sh:name "original duty" ;
    sh:node shopify:DutyShape ;
    sh:class shopify:Duty ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Additional Fee
shopify:AdditionalFeeShape a sh:NodeShape ;
  sh:targetClass shopify:AdditionalFee ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AdditionalFee/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AdditionalFee/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AdditionalFee/price> ;
    sh:name "price" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AdditionalFee/taxLines> ;
    sh:name "tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Resource Alert
shopify:ResourceAlertShape a sh:NodeShape ;
  sh:targetClass shopify:ResourceAlert ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceAlert/actions> ;
    sh:name "actions" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceAlert/content> ;
    sh:name "content" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceAlert/dismissibleHandle> ;
    sh:name "dismissible handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceAlert/icon> ;
    sh:name "icon" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceAlert/severity> ;
    sh:name "severity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceAlert/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Dispute Summary
shopify:OrderDisputeSummaryShape a sh:NodeShape ;
  sh:targetClass shopify:OrderDisputeSummary ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderDisputeSummary/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderDisputeSummary/initiatedAs> ;
    sh:name "initiated as" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderDisputeSummary/status> ;
    sh:name "status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Risk
shopify:OrderRiskShape a sh:NodeShape ;
  sh:targetClass shopify:OrderRisk ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/id> ;
    sh:name "id" ;
    sh:description "Risk assessment ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/orderId> ;
    sh:name "order id" ;
    sh:description "ID of the associated order" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/message> ;
    sh:name "message" ;
    sh:description "Message describing the risk" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/recommendation> ;
    sh:name "recommendation" ;
    sh:description "Recommendation based on the risk assessment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "cancel" "investigate" "accept" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/score> ;
    sh:name "score" ;
    sh:description "Risk score between 0 and 1 (highest risk)" ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/source> ;
    sh:name "source" ;
    sh:description "Source of the risk assessment" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/causeCancel> ;
    sh:name "cause cancel" ;
    sh:description "Whether the risk assessment caused the order to be cancelled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/display> ;
    sh:name "display" ;
    sh:description "Whether the risk is displayed on the order detail page" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderRisk/level> ;
    sh:name "level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Location
shopify:LocationShape a sh:NodeShape ;
  sh:targetClass shopify:Location ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/id> ;
    sh:name "id" ;
    sh:description "Location ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/name> ;
    sh:name "name" ;
    sh:description "Location name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/address1> ;
    sh:name "address1" ;
    sh:description "Street address line 1" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/address2> ;
    sh:name "address2" ;
    sh:description "Street address line 2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/city> ;
    sh:name "city" ;
    sh:description "City" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/zip> ;
    sh:name "zip" ;
    sh:description "ZIP or postal code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/province> ;
    sh:name "province" ;
    sh:description "Province or state name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/country> ;
    sh:name "country" ;
    sh:description "Country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/phone> ;
    sh:name "phone" ;
    sh:description "Phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/provinceCode> ;
    sh:name "province code" ;
    sh:description "Province or state code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/countryCode> ;
    sh:name "country code" ;
    sh:description "Country code (ISO 3166-1 alpha-2)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/countryName> ;
    sh:name "country name" ;
    sh:description "Full country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/active> ;
    sh:name "active" ;
    sh:description "Whether the location is active" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/legacy> ;
    sh:name "legacy" ;
    sh:description "Whether the location is a legacy location" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/localizedCountryName> ;
    sh:name "localized country name" ;
    sh:description "Localized country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/localizedProvinceName> ;
    sh:name "localized province name" ;
    sh:description "Localized province name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the location was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the location was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/activatable> ;
    sh:name "activatable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/addressVerified> ;
    sh:name "address verified" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/deactivatable> ;
    sh:name "deactivatable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/deactivatedAt> ;
    sh:name "deactivated at" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/deletable> ;
    sh:name "deletable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/fulfillsOnlineOrders> ;
    sh:name "fulfills online orders" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/hasActiveInventory> ;
    sh:name "has active inventory" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/hasUnfulfilledOrders> ;
    sh:name "has unfulfilled orders" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/isActive> ;
    sh:name "is active" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/isFulfillmentService> ;
    sh:name "is fulfillment service" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/isPrimary> ;
    sh:name "is primary" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/shipsInventory> ;
    sh:name "ships inventory" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/address> ;
    sh:name "address" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/fulfillmentService> ;
    sh:name "fulfillment service" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/inventoryLevel> ;
    sh:name "inventory level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/inventoryLevels> ;
    sh:name "inventory levels" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/localPickupSettingsV2> ;
    sh:name "local pickup settings v2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Location/suggestedAddresses> ;
    sh:name "suggested addresses" ;
    sh:node shopify:LocationSuggestedAddressShape ;
    sh:class shopify:LocationSuggestedAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Location Suggested Address
shopify:LocationSuggestedAddressShape a sh:NodeShape ;
  sh:targetClass shopify:LocationSuggestedAddress ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/address1> ;
    sh:name "address1" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/address2> ;
    sh:name "address2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/city> ;
    sh:name "city" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/country> ;
    sh:name "country" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/countryCode> ;
    sh:name "country code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/formatted> ;
    sh:name "formatted" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/province> ;
    sh:name "province" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/provinceCode> ;
    sh:name "province code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationSuggestedAddress/zip> ;
    sh:name "zip" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Custom Collection
shopify:CustomCollectionShape a sh:NodeShape ;
  sh:targetClass shopify:CustomCollection ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/id> ;
    sh:name "id" ;
    sh:description "Collection ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/title> ;
    sh:name "title" ;
    sh:description "Collection title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/bodyHtml> ;
    sh:name "body html" ;
    sh:description "Description of the collection in HTML" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the collection was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/sortOrder> ;
    sh:name "sort order" ;
    sh:description "Order in which products appear: alpha-asc, alpha-desc, best-selling, created, created-desc, manual, price-asc, price-desc" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template for the collection page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/image> ;
    sh:name "image" ;
    sh:description "Collection image" ;
    sh:node shopify:ImageShape ;
    sh:class shopify:Image ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/published> ;
    sh:name "published" ;
    sh:description "Whether the collection is published" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/publishedScope> ;
    sh:name "published scope" ;
    sh:description "Whether the collection is published to the Point of Sale channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the collection was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollection/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Smart Collection
shopify:SmartCollectionShape a sh:NodeShape ;
  sh:targetClass shopify:SmartCollection ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/id> ;
    sh:name "id" ;
    sh:description "Collection ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/title> ;
    sh:name "title" ;
    sh:description "Collection title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/bodyHtml> ;
    sh:name "body html" ;
    sh:description "Description of the collection in HTML" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the collection was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/sortOrder> ;
    sh:name "sort order" ;
    sh:description "Order in which products appear" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template for the collection page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/image> ;
    sh:name "image" ;
    sh:description "Collection image" ;
    sh:node shopify:ImageShape ;
    sh:class shopify:Image ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/published> ;
    sh:name "published" ;
    sh:description "Whether the collection is published" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/publishedScope> ;
    sh:name "published scope" ;
    sh:description "Whether the collection is published to the Point of Sale channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/disjunctive> ;
    sh:name "disjunctive" ;
    sh:description "Whether products must match all rules or any rule" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/rules> ;
    sh:name "rules" ;
    sh:description "Rules that determine which products are in the collection" ;
    sh:node shopify:SmartCollectionRuleShape ;
    sh:class shopify:SmartCollectionRule ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the collection was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollection/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Smart Collection Rule
shopify:SmartCollectionRuleShape a sh:NodeShape ;
  sh:targetClass shopify:SmartCollectionRule ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollectionRule/column> ;
    sh:name "column" ;
    sh:description "Property column to compare" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "title" "type" "vendor" "variant_price" "tag" "variant_compare_at_price" "variant_weight" "variant_inventory" "variant_title" "product_metafield_definition" "variant_metafield_definition" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollectionRule/relation> ;
    sh:name "relation" ;
    sh:description "Relation used for comparison" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "equals" "not_equals" "greater_than" "less_than" "starts_with" "ends_with" "contains" "not_contains" "is_set" "is_not_set" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollectionRule/condition> ;
    sh:name "condition" ;
    sh:description "Value to compare against" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Collect
shopify:CollectShape a sh:NodeShape ;
  sh:targetClass shopify:Collect ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Collect/id> ;
    sh:name "id" ;
    sh:description "Collect ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Collect/collectionId> ;
    sh:name "collection id" ;
    sh:description "ID of the custom collection" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Collect/product> ;
    sh:name "product" ;
    sh:description "ID of the product" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Collect/position> ;
    sh:name "position" ;
    sh:description "Position of the product in the collection" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Collect/sortValue> ;
    sh:name "sort value" ;
    sh:description "Sort value for manual ordering" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Collect/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the collect was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Collect/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the collect was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Level
shopify:InventoryLevelShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryLevel ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/inventoryItem> ;
    sh:name "inventory item" ;
    sh:description "ID of the inventory item" ;
    sh:node shopify:InventoryItemShape ;
    sh:class shopify:InventoryItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/location> ;
    sh:name "location" ;
    sh:description "ID of the location" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/available> ;
    sh:name "available" ;
    sh:description "Available quantity at the location" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the level was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/canDeactivate> ;
    sh:name "can deactivate" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/deactivationAlert> ;
    sh:name "deactivation alert" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/item> ;
    sh:name "item" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/quantities> ;
    sh:name "quantities" ;
    sh:node shopify:InventoryQuantityShape ;
    sh:class shopify:InventoryQuantity ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevel/scheduledChanges> ;
    sh:name "scheduled changes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Quantity
shopify:InventoryQuantityShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryQuantity ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryQuantity/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryQuantity/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryQuantity/quantity> ;
    sh:name "quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryQuantity/updatedAt> ;
    sh:name "updated at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Order
shopify:FulfillmentOrderShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentOrder ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/id> ;
    sh:name "id" ;
    sh:description "Fulfillment order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/order> ;
    sh:name "order" ;
    sh:description "ID of the associated order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/status> ;
    sh:name "status" ;
    sh:description "Status of the fulfillment order" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "open" "in_progress" "cancelled" "incomplete" "closed" "scheduled" "on_hold" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/assignedLocation> ;
    sh:name "assigned location" ;
    sh:description "ID of the location assigned to fulfill" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/requestStatus> ;
    sh:name "request status" ;
    sh:description "Fulfillment request status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "unsubmitted" "submitted" "accepted" "rejected" "cancellation_requested" "cancellation_accepted" "cancellation_rejected" "CLOSED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the fulfillment order" ;
    sh:class shopify:FulfillmentOrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/destination> ;
    sh:name "destination" ;
    sh:description "Destination for the fulfillment order" ;
    sh:node shopify:FulfillmentOrderDestinationShape ;
    sh:class shopify:FulfillmentOrderDestination ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/fulfillAt> ;
    sh:name "fulfill at" ;
    sh:description "Earliest date the order should be fulfilled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/fulfillBy> ;
    sh:name "fulfill by" ;
    sh:description "Latest date the order should be fulfilled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/deliveryMethod> ;
    sh:name "delivery method" ;
    sh:description "Delivery method for the fulfillment order" ;
    sh:node shopify:DeliveryMethodShape ;
    sh:class shopify:DeliveryMethod ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/embeddedAssignedLocation> ;
    sh:name "embedded assigned location" ;
    sh:description "Details of the assigned fulfillment location" ;
    sh:node shopify:AssignedLocationShape ;
    sh:class shopify:AssignedLocation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/shop> ;
    sh:name "shop" ;
    sh:description "ID of the shop" ;
    sh:node shopify:ShopShape ;
    sh:class shopify:Shop ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/fulfillmentHolds> ;
    sh:name "fulfillment holds" ;
    sh:description "List of holds on the fulfillment order" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/supportedActions> ;
    sh:name "supported actions" ;
    sh:description "Supported actions on the fulfillment order" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/internationalDuties> ;
    sh:name "international duties" ;
    sh:description "International duties information" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/channelId> ;
    sh:name "channel id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/orderId> ;
    sh:name "order id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/orderName> ;
    sh:name "order name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/orderProcessedAt> ;
    sh:name "order processed at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/fulfillmentOrdersForMerge> ;
    sh:name "fulfillment orders for merge" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/fulfillments> ;
    sh:name "fulfillments" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/locationsForMove> ;
    sh:name "locations for move" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/merchantRequests> ;
    sh:name "merchant requests" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Order Line Item
shopify:FulfillmentOrderLineItemShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentOrderLineItem ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/fulfillmentOrderLineItemIdentifier> ;
    sh:name "fulfillment order line item identifier" ;
    sh:description "Fulfillment order line item ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/shop> ;
    sh:name "shop" ;
    sh:description "Shop ID" ;
    sh:node shopify:ShopShape ;
    sh:class shopify:Shop ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/fulfillmentOrder> ;
    sh:name "fulfillment order" ;
    sh:description "ID of the fulfillment order" ;
    sh:node shopify:FulfillmentOrderShape ;
    sh:class shopify:FulfillmentOrder ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/lineItem> ;
    sh:name "line item" ;
    sh:description "ID of the associated order line item" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/inventoryItem> ;
    sh:name "inventory item" ;
    sh:description "ID of the inventory item" ;
    sh:node shopify:InventoryItemShape ;
    sh:class shopify:InventoryItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/quantity> ;
    sh:name "quantity" ;
    sh:description "Quantity to fulfill" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/fulfillableQuantity> ;
    sh:name "fulfillable quantity" ;
    sh:description "Remaining fulfillable quantity" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/variant> ;
    sh:name "variant" ;
    sh:description "ID of the variant" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/inventoryItemId> ;
    sh:name "inventory item id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/productTitle> ;
    sh:name "product title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/remainingQuantity> ;
    sh:name "remaining quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/sku> ;
    sh:name "sku" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/totalQuantity> ;
    sh:name "total quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/variantTitle> ;
    sh:name "variant title" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/vendor> ;
    sh:name "vendor" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/financialSummaries> ;
    sh:name "financial summaries" ;
    sh:node shopify:FulfillmentOrderLineItemFinancialSummaryShape ;
    sh:class shopify:FulfillmentOrderLineItemFinancialSummary ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/originalUnitPriceSet> ;
    sh:name "original unit price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/warnings> ;
    sh:name "warnings" ;
    sh:node shopify:FulfillmentOrderLineItemWarningShape ;
    sh:class shopify:FulfillmentOrderLineItemWarning ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/weight> ;
    sh:name "weight" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItem/graphqlId> ;
    sh:name "graphql id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Order Line Item Financial Summary
shopify:FulfillmentOrderLineItemFinancialSummaryShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentOrderLineItemFinancialSummary ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItemFinancialSummary/approximateDiscountedUnitPriceSet> ;
    sh:name "approximate discounted unit price set" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItemFinancialSummary/discountAllocations> ;
    sh:name "discount allocations" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItemFinancialSummary/originalUnitPriceSet> ;
    sh:name "original unit price set" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItemFinancialSummary/quantity> ;
    sh:name "quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Order Line Item Warning
shopify:FulfillmentOrderLineItemWarningShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentOrderLineItemWarning ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItemWarning/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderLineItemWarning/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Order Destination
shopify:FulfillmentOrderDestinationShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentOrderDestination ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/destinationIdentifier> ;
    sh:name "destination identifier" ;
    sh:description "Destination ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/address1> ;
    sh:name "address1" ;
    sh:description "Destination address1" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/address2> ;
    sh:name "address2" ;
    sh:description "Destination address2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/city> ;
    sh:name "city" ;
    sh:description "City" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/company> ;
    sh:name "company" ;
    sh:description "Company" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/country> ;
    sh:name "country" ;
    sh:description "Country" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/email> ;
    sh:name "email" ;
    sh:description "Email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/firstName> ;
    sh:name "first name" ;
    sh:description "First name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/lastName> ;
    sh:name "last name" ;
    sh:description "Last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/phone> ;
    sh:name "phone" ;
    sh:description "Phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/province> ;
    sh:name "province" ;
    sh:description "Province" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/zip> ;
    sh:name "zip" ;
    sh:description "ZIP code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/countryCode> ;
    sh:name "country code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/location> ;
    sh:name "location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderDestination/graphqlId> ;
    sh:name "graphql id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Delivery Method
shopify:DeliveryMethodShape a sh:NodeShape ;
  sh:targetClass shopify:DeliveryMethod ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/deliveryMethodIdentifier> ;
    sh:name "delivery method identifier" ;
    sh:description "Delivery method ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/methodType> ;
    sh:name "method type" ;
    sh:description "Type: local, none, pick_up, retail, shipping" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/maxDeliveryDateTime> ;
    sh:name "max delivery date time" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/minDeliveryDateTime> ;
    sh:name "min delivery date time" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/presentedName> ;
    sh:name "presented name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/serviceCode> ;
    sh:name "service code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/sourceReference> ;
    sh:name "source reference" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/additionalInformation> ;
    sh:name "additional information" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/brandedPromise> ;
    sh:name "branded promise" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeliveryMethod/graphqlId> ;
    sh:name "graphql id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Assigned Location
shopify:AssignedLocationShape a sh:NodeShape ;
  sh:targetClass shopify:AssignedLocation ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssignedLocation/address1> ;
    sh:name "address1" ;
    sh:description "Location address1" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssignedLocation/address2> ;
    sh:name "address2" ;
    sh:description "Location address2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssignedLocation/city> ;
    sh:name "city" ;
    sh:description "City" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssignedLocation/countryCode> ;
    sh:name "country code" ;
    sh:description "Country code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssignedLocation/name> ;
    sh:name "name" ;
    sh:description "Location name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssignedLocation/phone> ;
    sh:name "phone" ;
    sh:description "Phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssignedLocation/province> ;
    sh:name "province" ;
    sh:description "Province" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssignedLocation/zip> ;
    sh:name "zip" ;
    sh:description "ZIP code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Shop
shopify:ShopShape a sh:NodeShape ;
  sh:targetClass shopify:Shop ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/id> ;
    sh:name "id" ;
    sh:description "Shop ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/name> ;
    sh:name "name" ;
    sh:description "Name of the shop" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/email> ;
    sh:name "email" ;
    sh:description "Contact email address" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/domain> ;
    sh:name "domain" ;
    sh:description "Primary domain of the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/myshopifyDomain> ;
    sh:name "myshopify domain" ;
    sh:description "The .myshopify.com domain" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/shopOwner> ;
    sh:name "shop owner" ;
    sh:description "Name of the shop owner" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/phone> ;
    sh:name "phone" ;
    sh:description "Phone number of the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/address1> ;
    sh:name "address1" ;
    sh:description "Street address of the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/city> ;
    sh:name "city" ;
    sh:description "City of the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/province> ;
    sh:name "province" ;
    sh:description "Province or state of the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/provinceCode> ;
    sh:name "province code" ;
    sh:description "Province or state code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/country> ;
    sh:name "country" ;
    sh:description "Country of the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/countryCode> ;
    sh:name "country code" ;
    sh:description "Country code (ISO 3166-1 alpha-2)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/countryName> ;
    sh:name "country name" ;
    sh:description "Full country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/zip> ;
    sh:name "zip" ;
    sh:description "ZIP or postal code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/currency> ;
    sh:name "currency" ;
    sh:description "Shop currency (ISO 4217)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/moneyFormat> ;
    sh:name "money format" ;
    sh:description "Format for displaying money amounts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/moneyWithCurrencyFormat> ;
    sh:name "money with currency format" ;
    sh:description "Format for displaying money with currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/timezone> ;
    sh:name "timezone" ;
    sh:description "Timezone description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/ianaTimezone> ;
    sh:name "iana timezone" ;
    sh:description "IANA timezone identifier" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/planName> ;
    sh:name "plan name" ;
    sh:description "Name of the Shopify plan" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/planDisplayName> ;
    sh:name "plan display name" ;
    sh:description "Display name of the Shopify plan" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/hasStorefront> ;
    sh:name "has storefront" ;
    sh:description "Whether the shop has a storefront" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/hasDiscounts> ;
    sh:name "has discounts" ;
    sh:description "Whether the shop has discounts enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/hasGiftCards> ;
    sh:name "has gift cards" ;
    sh:description "Whether the shop has gift cards enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/weightUnit> ;
    sh:name "weight unit" ;
    sh:description "Default weight unit for the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/primaryLocale> ;
    sh:name "primary locale" ;
    sh:description "Primary locale of the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the shop was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the shop was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/analyticsToken> ;
    sh:name "analytics token" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/checkoutApiSupported> ;
    sh:name "checkout api supported" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/contactEmail> ;
    sh:name "contact email" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/marketingSmsConsentEnabledAtCheckout> ;
    sh:name "marketing sms consent enabled at checkout" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/orderNumberFormatPrefix> ;
    sh:name "order number format prefix" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/orderNumberFormatSuffix> ;
    sh:name "order number format suffix" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/publicationCount> ;
    sh:name "publication count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/richTextEditorUrl> ;
    sh:name "rich text editor url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/setupRequired> ;
    sh:name "setup required" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/shipsToCountries> ;
    sh:name "ships to countries" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/shopOwnerName> ;
    sh:name "shop owner name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/storefrontUrl> ;
    sh:name "storefront url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/taxShipping> ;
    sh:name "tax shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/timezoneAbbreviation> ;
    sh:name "timezone abbreviation" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/timezoneOffset> ;
    sh:name "timezone offset" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/timezoneOffsetMinutes> ;
    sh:name "timezone offset minutes" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/transactionalSmsDisabled> ;
    sh:name "transactional sms disabled" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/url> ;
    sh:name "url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/accountOwner> ;
    sh:name "account owner" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/alerts> ;
    sh:name "alerts" ;
    sh:node shopify:ShopAlertShape ;
    sh:class shopify:ShopAlert ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/allProductCategories> ;
    sh:name "all product categories" ;
    sh:node shopify:ProductCategoryShape ;
    sh:class shopify:ProductCategory ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/allProductCategoriesList> ;
    sh:name "all product categories list" ;
    sh:node shopify:TaxonomyCategoryShape ;
    sh:class shopify:TaxonomyCategory ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/assignedFulfillmentOrders> ;
    sh:name "assigned fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/availableChannelApps> ;
    sh:name "available channel apps" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/billingAddress> ;
    sh:name "billing address" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/channelDefinitionsForInstalledChannels> ;
    sh:name "channel definitions for installed channels" ;
    sh:node shopify:AvailableChannelDefinitionsByChannelShape ;
    sh:class shopify:AvailableChannelDefinitionsByChannel ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/channels> ;
    sh:name "channels" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/collections> ;
    sh:name "collections" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/countriesInShippingZones> ;
    sh:name "countries in shipping zones" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/currencyFormats> ;
    sh:name "currency formats" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/currencySettings> ;
    sh:name "currency settings" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/customerAccounts> ;
    sh:name "customer accounts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/customerAccountsV2> ;
    sh:name "customer accounts v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/customerTags> ;
    sh:name "customer tags" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/customers> ;
    sh:name "customers" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/domains> ;
    sh:name "domains" ;
    sh:node shopify:DomainShape ;
    sh:class shopify:Domain ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/draftOrderTags> ;
    sh:name "draft order tags" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/draftOrders> ;
    sh:name "draft orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/enabledPresentmentCurrencies> ;
    sh:name "enabled presentment currencies" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/entitlements> ;
    sh:name "entitlements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/features> ;
    sh:name "features" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/fulfillmentServices> ;
    sh:name "fulfillment services" ;
    sh:node shopify:FulfillmentServiceShape ;
    sh:class shopify:FulfillmentService ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/inventoryItems> ;
    sh:name "inventory items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/limitedPendingOrderCount> ;
    sh:name "limited pending order count" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/locations> ;
    sh:name "locations" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/merchantApprovalSignals> ;
    sh:name "merchant approval signals" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/navigationSettings> ;
    sh:name "navigation settings" ;
    sh:node shopify:NavigationItemShape ;
    sh:class shopify:NavigationItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/orderTags> ;
    sh:name "order tags" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/orders> ;
    sh:name "orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/paymentSettings> ;
    sh:name "payment settings" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/plan> ;
    sh:name "plan" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/primaryDomain> ;
    sh:name "primary domain" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/productImages> ;
    sh:name "product images" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/productTags> ;
    sh:name "product tags" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/productTypes> ;
    sh:name "product types" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/productVariants> ;
    sh:name "product variants" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/productVendors> ;
    sh:name "product vendors" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/products> ;
    sh:name "products" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/resourceLimits> ;
    sh:name "resource limits" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/search> ;
    sh:name "search" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/searchFilters> ;
    sh:name "search filters" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/shopPolicies> ;
    sh:name "shop policies" ;
    sh:node shopify:ShopPolicyShape ;
    sh:class shopify:ShopPolicy ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/staffMembers> ;
    sh:name "staff members" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/storefrontAccessTokens> ;
    sh:name "storefront access tokens" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Shop/unitSystem> ;
    sh:name "unit system" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shop Alert
shopify:ShopAlertShape a sh:NodeShape ;
  sh:targetClass shopify:ShopAlert ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopAlert/action> ;
    sh:name "action" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopAlert/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Available Channel Definitions By Channel
shopify:AvailableChannelDefinitionsByChannelShape a sh:NodeShape ;
  sh:targetClass shopify:AvailableChannelDefinitionsByChannel ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AvailableChannelDefinitionsByChannel/channelDefinitions> ;
    sh:name "channel definitions" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AvailableChannelDefinitionsByChannel/channelName> ;
    sh:name "channel name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Domain
shopify:DomainShape a sh:NodeShape ;
  sh:targetClass shopify:Domain ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Domain/host> ;
    sh:name "host" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Domain/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Domain/localization> ;
    sh:name "localization" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Domain/marketWebPresence> ;
    sh:name "market web presence" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Domain/sslEnabled> ;
    sh:name "ssl enabled" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Domain/url> ;
    sh:name "url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Service
shopify:FulfillmentServiceShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentService ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/id> ;
    sh:name "id" ;
    sh:description "Fulfillment service ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/name> ;
    sh:name "name" ;
    sh:description "Name of the fulfillment service" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/callbackUrl> ;
    sh:name "callback url" ;
    sh:description "URL that Shopify sends requests to" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/trackingSupport> ;
    sh:name "tracking support" ;
    sh:description "Whether the service provides tracking numbers" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/inventoryManagement> ;
    sh:name "inventory management" ;
    sh:description "Whether the service manages inventory levels" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/fulfillmentOrdersOptIn> ;
    sh:name "fulfillment orders opt in" ;
    sh:description "Whether the service supports fulfillment orders" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/permitsSkuSharing> ;
    sh:name "permits sku sharing" ;
    sh:description "Whether the service allows sharing SKUs across locations" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/requiresShippingMethod> ;
    sh:name "requires shipping method" ;
    sh:description "Whether the fulfillment service requires a shipping method" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/location> ;
    sh:name "location" ;
    sh:description "ID of the location associated with the fulfillment service" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/serviceName> ;
    sh:name "service name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentService/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Navigation Item
shopify:NavigationItemShape a sh:NodeShape ;
  sh:targetClass shopify:NavigationItem ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.NavigationItem/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.NavigationItem/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.NavigationItem/url> ;
    sh:name "url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shop Policy
shopify:ShopPolicyShape a sh:NodeShape ;
  sh:targetClass shopify:ShopPolicy ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopPolicy/body> ;
    sh:name "body" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopPolicy/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:date ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopPolicy/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopPolicy/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopPolicy/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopPolicy/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopPolicy/updatedAt> ;
    sh:name "updated at" ;
    sh:datatype xsd:date ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopPolicy/url> ;
    sh:name "url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order
shopify:DraftOrderShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrder ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/id> ;
    sh:name "id" ;
    sh:description "Draft order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/order> ;
    sh:name "order" ;
    sh:description "ID of the order created from this draft (when completed)" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/name> ;
    sh:name "name" ;
    sh:description "Name of the draft order (e.g., #D1)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the draft order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/email> ;
    sh:name "email" ;
    sh:description "Email address for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the draft order" ;
    sh:node shopify:DraftOrderLineItemShape ;
    sh:class shopify:DraftOrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/note> ;
    sh:name "note" ;
    sh:description "Note for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Whether the draft order is tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/shippingLine> ;
    sh:name "shipping line" ;
    sh:description "Shipping line" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Subtotal price (before shipping and taxes)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price (including taxes and shipping)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalTax> ;
    sh:name "total tax" ;
    sh:description "Total tax amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/status> ;
    sh:name "status" ;
    sh:description "Draft order status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "open" "invoice_sent" "completed" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/invoiceUrl> ;
    sh:name "invoice url" ;
    sh:description "URL for the invoice" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/invoiceSentAt> ;
    sh:name "invoice sent at" ;
    sh:description "Date when the invoice was last sent" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the draft order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/appliedDiscount> ;
    sh:name "applied discount" ;
    sh:description "Discount applied to the draft order" ;
    sh:node shopify:DraftOrderDiscountShape ;
    sh:class shopify:DraftOrderDiscount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the line item prices" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/completedAt> ;
    sh:name "completed at" ;
    sh:description "Date when the draft order was completed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/paymentTerms> ;
    sh:name "payment terms" ;
    sh:description "Payment terms for the draft order" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalAdditionalFeesSet> ;
    sh:name "total additional fees set" ;
    sh:description "Total additional fees in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalDutiesSet> ;
    sh:name "total duties set" ;
    sh:description "Total duties in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/amountDueNowSet> ;
    sh:name "amount due now set" ;
    sh:description "Amount due now in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/amountDueLaterSet> ;
    sh:name "amount due later set" ;
    sh:description "Amount due later in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/acceptAutomaticDiscounts> ;
    sh:name "accept automatic discounts" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/allVariantPricesOverridden> ;
    sh:name "all variant prices overridden" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/allowDiscountCodesInCheckout> ;
    sh:name "allow discount codes in checkout" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/anyVariantPricesOverridden> ;
    sh:name "any variant prices overridden" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/defaultCursor> ;
    sh:name "default cursor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/discountCodes> ;
    sh:name "discount codes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/invoiceEmailTemplateSubject> ;
    sh:name "invoice email template subject" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/marketName> ;
    sh:name "market name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/marketRegionCountryCode> ;
    sh:name "market region country code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/note2> ;
    sh:name "note2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/phone> ;
    sh:name "phone" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/ready> ;
    sh:name "ready" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/reserveInventoryUntil> ;
    sh:name "reserve inventory until" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalQuantityOfLineItems> ;
    sh:name "total quantity of line items" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalWeight> ;
    sh:name "total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/transformerFingerprint> ;
    sh:name "transformer fingerprint" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/visibleToCustomer> ;
    sh:name "visible to customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/lineItemsSubtotalPrice> ;
    sh:name "line items subtotal price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/platformDiscounts> ;
    sh:name "platform discounts" ;
    sh:node shopify:DraftOrderPlatformDiscountShape ;
    sh:class shopify:DraftOrderPlatformDiscount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/warnings> ;
    sh:name "warnings" ;
    sh:node shopify:DraftOrderWarningShape ;
    sh:class shopify:DraftOrderWarning ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Draft Order Line Item
shopify:DraftOrderLineItemShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderLineItem ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/draftOrderLineItemIdentifier> ;
    sh:name "draft order line item identifier" ;
    sh:description "Line item ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/variant> ;
    sh:name "variant" ;
    sh:description "ID of the product variant" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/product> ;
    sh:name "product" ;
    sh:description "ID of the product" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/title> ;
    sh:name "title" ;
    sh:description "Title of the line item" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/variantTitle> ;
    sh:name "variant title" ;
    sh:description "Title of the variant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/price> ;
    sh:name "price" ;
    sh:description "Price of the line item" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/quantity> ;
    sh:name "quantity" ;
    sh:description "Quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/sku> ;
    sh:name "sku" ;
    sh:description "SKU of the variant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/vendor> ;
    sh:name "vendor" ;
    sh:description "Name of the vendor" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:description "Whether the line item requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/taxable> ;
    sh:name "taxable" ;
    sh:description "Whether the line item is taxable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/giftCard> ;
    sh:name "gift card" ;
    sh:description "Whether the line item is a gift card" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/fulfillmentService> ;
    sh:name "fulfillment service" ;
    sh:description "Fulfillment service for the line item" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/grams> ;
    sh:name "grams" ;
    sh:description "Weight in grams" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines for the line item" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/appliedDiscount> ;
    sh:name "applied discount" ;
    sh:description "Discount applied to the line item" ;
    sh:node shopify:DraftOrderDiscountShape ;
    sh:class shopify:DraftOrderDiscount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/name> ;
    sh:name "name" ;
    sh:description "Name of the line item" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/properties> ;
    sh:name "properties" ;
    sh:description "Custom properties for the line item" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/isCustom> ;
    sh:name "is custom" ;
    sh:description "Whether the line item is custom (not tied to a product)" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/isGiftCard> ;
    sh:name "is gift card" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/uuid> ;
    sh:name "uuid" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/approximateDiscountedUnitPriceSet> ;
    sh:name "approximate discounted unit price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/bundleComponents> ;
    sh:name "bundle components" ;
    sh:class shopify:DraftOrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/components> ;
    sh:name "components" ;
    sh:class shopify:DraftOrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/customAttributesV2> ;
    sh:name "custom attributes v2" ;
    sh:node shopify:TypedAttributeShape ;
    sh:class shopify:TypedAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/discountedTotal> ;
    sh:name "discounted total" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/discountedTotalSet> ;
    sh:name "discounted total set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/discountedUnitPrice> ;
    sh:name "discounted unit price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/discountedUnitPriceSet> ;
    sh:name "discounted unit price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/originalTotal> ;
    sh:name "original total" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/originalTotalSet> ;
    sh:name "original total set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/originalUnitPrice> ;
    sh:name "original unit price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/originalUnitPriceSet> ;
    sh:name "original unit price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/originalUnitPriceWithCurrency> ;
    sh:name "original unit price with currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/priceOverride> ;
    sh:name "price override" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/totalDiscount> ;
    sh:name "total discount" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/totalDiscountSet> ;
    sh:name "total discount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/weight> ;
    sh:name "weight" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderLineItem/graphqlId> ;
    sh:name "graphql id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order Discount
shopify:DraftOrderDiscountShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderDiscount ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderDiscount/description> ;
    sh:name "description" ;
    sh:description "Description of the discount" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderDiscount/value> ;
    sh:name "value" ;
    sh:description "Fixed or percentage discount value" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderDiscount/valueType> ;
    sh:name "value type" ;
    sh:description "Type of discount: fixed_amount or percentage" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderDiscount/amount> ;
    sh:name "amount" ;
    sh:description "Resulting amount after discount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderDiscount/title> ;
    sh:name "title" ;
    sh:description "Title of the discount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderDiscount/amountSet> ;
    sh:name "amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderDiscount/amountV2> ;
    sh:name "amount v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order Platform Discount
shopify:DraftOrderPlatformDiscountShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderPlatformDiscount ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/allocations> ;
    sh:name "allocations" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/automaticDiscount> ;
    sh:name "automatic discount" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/bxgyDiscount> ;
    sh:name "bxgy discount" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/code> ;
    sh:name "code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/discountClass> ;
    sh:name "discount class" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "PRODUCT" "ORDER" "SHIPPING" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/discountNode> ;
    sh:name "discount node" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/presentationLevel> ;
    sh:name "presentation level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/shortSummary> ;
    sh:name "short summary" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/summary> ;
    sh:name "summary" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/totalAmount> ;
    sh:name "total amount" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderPlatformDiscount/totalAmountPriceSet> ;
    sh:name "total amount price set" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order Warning
shopify:DraftOrderWarningShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderWarning ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderWarning/errorCode> ;
    sh:name "error code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderWarning/field> ;
    sh:name "field" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderWarning/message> ;
    sh:name "message" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Gift Card
shopify:GiftCardShape a sh:NodeShape ;
  sh:targetClass shopify:GiftCard ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/id> ;
    sh:name "id" ;
    sh:description "Gift card ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/balance> ;
    sh:name "balance" ;
    sh:description "Current balance of the gift card" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/currency> ;
    sh:name "currency" ;
    sh:description "Currency of the gift card" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/initialValue> ;
    sh:name "initial value" ;
    sh:description "Initial value of the gift card" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/code> ;
    sh:name "code" ;
    sh:description "Gift card code (only returned on creation)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/lastCharacters> ;
    sh:name "last characters" ;
    sh:description "Last four characters of the gift card code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/note> ;
    sh:name "note" ;
    sh:description "Note associated with the gift card" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/customer> ;
    sh:name "customer" ;
    sh:description "ID of the customer associated with the gift card" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/expiresOn> ;
    sh:name "expires on" ;
    sh:description "Expiration date of the gift card" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template for the gift card" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/disabledAt> ;
    sh:name "disabled at" ;
    sh:description "Date when the gift card was disabled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/lineItem> ;
    sh:name "line item" ;
    sh:description "ID of the line item that created the gift card" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/apiClientId> ;
    sh:name "api client id" ;
    sh:description "ID of the API client that issued the gift card" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/user> ;
    sh:name "user" ;
    sh:description "ID of the user that issued the gift card" ;
    sh:node shopify:UserShape ;
    sh:class shopify:User ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/order> ;
    sh:name "order" ;
    sh:description "ID of the order that created the gift card" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the gift card was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the gift card was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/deactivatedAt> ;
    sh:name "deactivated at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/enabled> ;
    sh:name "enabled" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/maskedCode> ;
    sh:name "masked code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/recipientAttributes> ;
    sh:name "recipient attributes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCard/transactions> ;
    sh:name "transactions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for User
shopify:UserShape a sh:NodeShape ;
  sh:targetClass shopify:User ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/id> ;
    sh:name "id" ;
    sh:description "User ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/firstName> ;
    sh:name "first name" ;
    sh:description "The user's first name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/lastName> ;
    sh:name "last name" ;
    sh:description "The user's last name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/email> ;
    sh:name "email" ;
    sh:description "The user's email address" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/phone> ;
    sh:name "phone" ;
    sh:description "The user's phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/bio> ;
    sh:name "bio" ;
    sh:description "The user's biography" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/url> ;
    sh:name "url" ;
    sh:description "The user's homepage or URL" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/im> ;
    sh:name "im" ;
    sh:description "The user's instant messenger account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/locale> ;
    sh:name "locale" ;
    sh:description "The user's preferred locale" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/accountOwner> ;
    sh:name "account owner" ;
    sh:description "Whether the user is the account owner" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/permissions> ;
    sh:name "permissions" ;
    sh:description "The user's permissions (e.g., full, orders, products)" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/userType> ;
    sh:name "user type" ;
    sh:description "The type of user account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/receiveAnnouncements> ;
    sh:name "receive announcements" ;
    sh:description "Whether the user receives announcements (0 = no, 1 = yes)" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/graphqlId> ;
    sh:name "graphql id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/accountType> ;
    sh:name "account type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/active> ;
    sh:name "active" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/avatar> ;
    sh:name "avatar" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/exists> ;
    sh:name "exists" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/initials> ;
    sh:name "initials" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/isShopOwner> ;
    sh:name "is shop owner" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.User/privateData> ;
    sh:name "private data" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Price Rule
shopify:PriceRuleShape a sh:NodeShape ;
  sh:targetClass shopify:PriceRule ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/id> ;
    sh:name "id" ;
    sh:description "Price rule ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/title> ;
    sh:name "title" ;
    sh:description "Title of the price rule" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/targetType> ;
    sh:name "target type" ;
    sh:description "Target type: line_item or shipping_line" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "line_item" "shipping_line" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/targetSelection> ;
    sh:name "target selection" ;
    sh:description "Target selection: all or entitled" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "all" "entitled" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/allocationMethod> ;
    sh:name "allocation method" ;
    sh:description "Allocation method: each or across" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "each" "across" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/valueType> ;
    sh:name "value type" ;
    sh:description "Value type: fixed_amount or percentage" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "fixed_amount" "percentage" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/value> ;
    sh:name "value" ;
    sh:description "Discount value (negative for discounts)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/customerSelection> ;
    sh:name "customer selection" ;
    sh:description "Customer selection: all or prerequisite" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "all" "prerequisite" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/oncePerCustomer> ;
    sh:name "once per customer" ;
    sh:description "Whether the discount can only be used once per customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/usageLimit> ;
    sh:name "usage limit" ;
    sh:description "Maximum number of times the discount can be used" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/startsAt> ;
    sh:name "starts at" ;
    sh:description "Date when the price rule starts" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/endsAt> ;
    sh:name "ends at" ;
    sh:description "Date when the price rule ends" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/entitledProducts> ;
    sh:name "entitled products" ;
    sh:description "IDs of products entitled to the discount" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/entitledVariants> ;
    sh:name "entitled variants" ;
    sh:description "IDs of variants entitled to the discount" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/entitledCollectionIds> ;
    sh:name "entitled collection ids" ;
    sh:description "IDs of collections entitled to the discount" ;
    sh:datatype xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/entitledCountries> ;
    sh:name "entitled countries" ;
    sh:description "IDs of countries entitled to the shipping discount" ;
    sh:node shopify:CountryShape ;
    sh:class shopify:Country ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteProducts> ;
    sh:name "prerequisite products" ;
    sh:description "IDs of prerequisite products" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteVariants> ;
    sh:name "prerequisite variants" ;
    sh:description "IDs of prerequisite variants" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteCollectionIds> ;
    sh:name "prerequisite collection ids" ;
    sh:description "IDs of prerequisite collections" ;
    sh:datatype xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteSavedSearches> ;
    sh:name "prerequisite saved searches" ;
    sh:description "IDs of prerequisite customer saved searches" ;
    sh:node shopify:CustomerSavedSearchShape ;
    sh:class shopify:CustomerSavedSearch ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteCustomers> ;
    sh:name "prerequisite customers" ;
    sh:description "IDs of prerequisite customers" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteSubtotalRange> ;
    sh:name "prerequisite subtotal range" ;
    sh:description "Minimum subtotal prerequisite" ;
    sh:node shopify:PrerequisiteRangeShape ;
    sh:class shopify:PrerequisiteRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteQuantityRange> ;
    sh:name "prerequisite quantity range" ;
    sh:description "Minimum quantity prerequisite" ;
    sh:node shopify:PrerequisiteRangeShape ;
    sh:class shopify:PrerequisiteRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteShippingPriceRange> ;
    sh:name "prerequisite shipping price range" ;
    sh:description "Maximum shipping price prerequisite" ;
    sh:node shopify:PrerequisiteRangeShape ;
    sh:class shopify:PrerequisiteRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteToEntitlementQuantityRatio> ;
    sh:name "prerequisite to entitlement quantity ratio" ;
    sh:description "Buy X get Y quantity ratio" ;
    sh:node shopify:QuantityRatioShape ;
    sh:class shopify:QuantityRatio ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/prerequisiteToEntitlementPurchase> ;
    sh:name "prerequisite to entitlement purchase" ;
    sh:description "Buy X get Y purchase amounts" ;
    sh:node shopify:PurchaseRequirementShape ;
    sh:class shopify:PurchaseRequirement ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/allocationLimit> ;
    sh:name "allocation limit" ;
    sh:description "Maximum number of times the discount can be allocated" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/summary> ;
    sh:name "summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/usageCount> ;
    sh:name "usage count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/combinesWith> ;
    sh:name "combines with" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/discountClass> ;
    sh:name "discount class" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/discountClasses> ;
    sh:name "discount classes" ;
    sh:datatype xsd:string ;
    sh:in ( "PRODUCT" "ORDER" "SHIPPING" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/discountCodes> ;
    sh:name "discount codes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/discountCodesCount> ;
    sh:name "discount codes count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/entitlementToPrerequisiteQuantityRatio> ;
    sh:name "entitlement to prerequisite quantity ratio" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/features> ;
    sh:name "features" ;
    sh:datatype xsd:string ;
    sh:in ( "BUY_ONE_GET_ONE" "BUY_ONE_GET_ONE_WITH_ALLOCATION_LIMIT" "BULK" "SPECIFIC_CUSTOMERS" "QUANTITY_DISCOUNTS" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/itemEntitlements> ;
    sh:name "item entitlements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/itemPrerequisites> ;
    sh:name "item prerequisites" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/shareableUrls> ;
    sh:name "shareable urls" ;
    sh:node shopify:PriceRuleShareableUrlShape ;
    sh:class shopify:PriceRuleShareableUrl ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/shippingEntitlements> ;
    sh:name "shipping entitlements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/status> ;
    sh:name "status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/target> ;
    sh:name "target" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/totalSales> ;
    sh:name "total sales" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/traits> ;
    sh:name "traits" ;
    sh:datatype xsd:string ;
    sh:in ( "BUY_ONE_GET_ONE" "BUY_ONE_GET_ONE_WITH_ALLOCATION_LIMIT" "BULK" "SPECIFIC_CUSTOMERS" "QUANTITY_DISCOUNTS" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/validityPeriod> ;
    sh:name "validity period" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRule/valueV2> ;
    sh:name "value v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Prerequisite Range
shopify:PrerequisiteRangeShape a sh:NodeShape ;
  sh:targetClass shopify:PrerequisiteRange ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PrerequisiteRange/greaterThanOrEqualTo> ;
    sh:name "greater than or equal to" ;
    sh:description "Minimum value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PrerequisiteRange/lessThanOrEqualTo> ;
    sh:name "less than or equal to" ;
    sh:description "Maximum value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PrerequisiteRange/greaterThan> ;
    sh:name "greater than" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PrerequisiteRange/lessThan> ;
    sh:name "less than" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Quantity Ratio
shopify:QuantityRatioShape a sh:NodeShape ;
  sh:targetClass shopify:QuantityRatio ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.QuantityRatio/prerequisiteQuantity> ;
    sh:name "prerequisite quantity" ;
    sh:description "Number of prerequisite items to buy" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.QuantityRatio/entitledQuantity> ;
    sh:name "entitled quantity" ;
    sh:description "Number of entitled items the customer gets" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] .

# Shape for Purchase Requirement
shopify:PurchaseRequirementShape a sh:NodeShape ;
  sh:targetClass shopify:PurchaseRequirement ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PurchaseRequirement/prerequisiteAmount> ;
    sh:name "prerequisite amount" ;
    sh:description "Minimum purchase amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Price Rule Shareable Url
shopify:PriceRuleShareableUrlShape a sh:NodeShape ;
  sh:targetClass shopify:PriceRuleShareableUrl ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleShareableUrl/targetItemImage> ;
    sh:name "target item image" ;
    sh:node shopify:ImageShape ;
    sh:class shopify:Image ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleShareableUrl/targetType> ;
    sh:name "target type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleShareableUrl/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleShareableUrl/url> ;
    sh:name "url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Country
shopify:CountryShape a sh:NodeShape ;
  sh:targetClass shopify:Country ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Country/id> ;
    sh:name "id" ;
    sh:description "Country ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Country/name> ;
    sh:name "name" ;
    sh:description "Country name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Country/code> ;
    sh:name "code" ;
    sh:description "Country code (ISO 3166-1 alpha-2)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Country/taxName> ;
    sh:name "tax name" ;
    sh:description "Name of the tax applied in this country" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Country/tax> ;
    sh:name "tax" ;
    sh:description "Tax rate for the country" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Country/provinces> ;
    sh:name "provinces" ;
    sh:description "Provinces or states within the country" ;
    sh:node shopify:ProvinceShape ;
    sh:class shopify:Province ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Province
shopify:ProvinceShape a sh:NodeShape ;
  sh:targetClass shopify:Province ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/id> ;
    sh:name "id" ;
    sh:description "Province ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/country> ;
    sh:name "country" ;
    sh:description "ID of the parent country" ;
    sh:class shopify:Country ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/name> ;
    sh:name "name" ;
    sh:description "Province name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/code> ;
    sh:name "code" ;
    sh:description "Province code (e.g., ON, CA)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/taxName> ;
    sh:name "tax name" ;
    sh:description "Name of the tax applied in this province" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/taxType> ;
    sh:name "tax type" ;
    sh:description "Type of tax (e.g., normal, harmonized, compounded)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/tax> ;
    sh:name "tax" ;
    sh:description "Tax rate for the province" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/taxPercentage> ;
    sh:name "tax percentage" ;
    sh:description "Tax percentage for the province" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Province/shippingZoneId> ;
    sh:name "shipping zone id" ;
    sh:description "ID of the shipping zone the province belongs to" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Saved Search
shopify:CustomerSavedSearchShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerSavedSearch ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerSavedSearch/id> ;
    sh:name "id" ;
    sh:description "Customer saved search ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerSavedSearch/name> ;
    sh:name "name" ;
    sh:description "Name of the saved search" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerSavedSearch/query> ;
    sh:name "query" ;
    sh:description "Query string for the saved search" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerSavedSearch/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the saved search was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerSavedSearch/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the saved search was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Price Rule Discount Code
shopify:PriceRuleDiscountCodeShape a sh:NodeShape ;
  sh:targetClass shopify:PriceRuleDiscountCode ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleDiscountCode/id> ;
    sh:name "id" ;
    sh:description "Discount code ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleDiscountCode/priceRule> ;
    sh:name "price rule" ;
    sh:description "ID of the parent price rule" ;
    sh:node shopify:PriceRuleShape ;
    sh:class shopify:PriceRule ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleDiscountCode/code> ;
    sh:name "code" ;
    sh:description "The discount code text" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleDiscountCode/usageCount> ;
    sh:name "usage count" ;
    sh:description "Number of times the code has been used" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleDiscountCode/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleDiscountCode/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleDiscountCode/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleDiscountCode/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Shipping Zone
shopify:ShippingZoneShape a sh:NodeShape ;
  sh:targetClass shopify:ShippingZone ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingZone/id> ;
    sh:name "id" ;
    sh:description "Shipping zone ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingZone/name> ;
    sh:name "name" ;
    sh:description "Name of the shipping zone" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingZone/countries> ;
    sh:name "countries" ;
    sh:description "Countries in the shipping zone" ;
    sh:node shopify:ShippingCountryShape ;
    sh:class shopify:ShippingCountry ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingZone/priceBasedShippingRates> ;
    sh:name "price based shipping rates" ;
    sh:description "Price-based shipping rates" ;
    sh:node shopify:PriceBasedShippingRateShape ;
    sh:class shopify:PriceBasedShippingRate ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingZone/weightBasedShippingRates> ;
    sh:name "weight based shipping rates" ;
    sh:description "Weight-based shipping rates" ;
    sh:node shopify:WeightBasedShippingRateShape ;
    sh:class shopify:WeightBasedShippingRate ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingZone/carrierShippingRateProviders> ;
    sh:name "carrier shipping rate providers" ;
    sh:description "Carrier-calculated shipping rate providers" ;
    sh:class shopify:CarrierShippingRateProvider ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Shipping Country
shopify:ShippingCountryShape a sh:NodeShape ;
  sh:targetClass shopify:ShippingCountry ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingCountry/shippingCountryIdentifier> ;
    sh:name "shipping country identifier" ;
    sh:description "Country ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingCountry/code> ;
    sh:name "code" ;
    sh:description "Country code (ISO 3166-1 alpha-2)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingCountry/name> ;
    sh:name "name" ;
    sh:description "Country name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingCountry/provinces> ;
    sh:name "provinces" ;
    sh:description "Provinces within the country" ;
    sh:node shopify:ShippingProvinceShape ;
    sh:class shopify:ShippingProvince ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingCountry/tax> ;
    sh:name "tax" ;
    sh:description "Tax on shipping" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingCountry/taxName> ;
    sh:name "tax name" ;
    sh:description "Name of the tax" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Shipping Province
shopify:ShippingProvinceShape a sh:NodeShape ;
  sh:targetClass shopify:ShippingProvince ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/shippingProvinceIdentifier> ;
    sh:name "shipping province identifier" ;
    sh:description "Province ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/code> ;
    sh:name "code" ;
    sh:description "Province code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/name> ;
    sh:name "name" ;
    sh:description "Province name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/tax> ;
    sh:name "tax" ;
    sh:description "Tax rate for the province" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/taxName> ;
    sh:name "tax name" ;
    sh:description "Name of the province tax" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/taxType> ;
    sh:name "tax type" ;
    sh:description "Tax type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/taxPercentage> ;
    sh:name "tax percentage" ;
    sh:description "Tax percentage" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/shippingZone> ;
    sh:name "shipping zone" ;
    sh:description "ID of the shipping zone" ;
    sh:class shopify:ShippingZone ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingProvince/country> ;
    sh:name "country" ;
    sh:description "ID of the country" ;
    sh:node shopify:CountryShape ;
    sh:class shopify:Country ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Price Based Shipping Rate
shopify:PriceBasedShippingRateShape a sh:NodeShape ;
  sh:targetClass shopify:PriceBasedShippingRate ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceBasedShippingRate/priceBasedShippingRateIdentifier> ;
    sh:name "price based shipping rate identifier" ;
    sh:description "Rate ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceBasedShippingRate/name> ;
    sh:name "name" ;
    sh:description "Rate name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceBasedShippingRate/price> ;
    sh:name "price" ;
    sh:description "Shipping rate price" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceBasedShippingRate/minOrderSubtotal> ;
    sh:name "min order subtotal" ;
    sh:description "Minimum order subtotal for this rate" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceBasedShippingRate/maxOrderSubtotal> ;
    sh:name "max order subtotal" ;
    sh:description "Maximum order subtotal for this rate" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceBasedShippingRate/shippingZone> ;
    sh:name "shipping zone" ;
    sh:description "ID of the shipping zone" ;
    sh:class shopify:ShippingZone ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Weight Based Shipping Rate
shopify:WeightBasedShippingRateShape a sh:NodeShape ;
  sh:targetClass shopify:WeightBasedShippingRate ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WeightBasedShippingRate/weightBasedShippingRateIdentifier> ;
    sh:name "weight based shipping rate identifier" ;
    sh:description "Rate ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WeightBasedShippingRate/name> ;
    sh:name "name" ;
    sh:description "Rate name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WeightBasedShippingRate/price> ;
    sh:name "price" ;
    sh:description "Shipping rate price" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WeightBasedShippingRate/weightLow> ;
    sh:name "weight low" ;
    sh:description "Minimum weight for this rate" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WeightBasedShippingRate/weightHigh> ;
    sh:name "weight high" ;
    sh:description "Maximum weight for this rate" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WeightBasedShippingRate/shippingZone> ;
    sh:name "shipping zone" ;
    sh:description "ID of the shipping zone" ;
    sh:class shopify:ShippingZone ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Carrier Shipping Rate Provider
shopify:CarrierShippingRateProviderShape a sh:NodeShape ;
  sh:targetClass shopify:CarrierShippingRateProvider ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierShippingRateProvider/carrierShippingRateProviderIdentifier> ;
    sh:name "carrier shipping rate provider identifier" ;
    sh:description "Provider ID" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierShippingRateProvider/carrierServiceId> ;
    sh:name "carrier service id" ;
    sh:description "ID of the carrier service" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierShippingRateProvider/flatModifier> ;
    sh:name "flat modifier" ;
    sh:description "Flat fee added to the carrier rate" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierShippingRateProvider/percentModifier> ;
    sh:name "percent modifier" ;
    sh:description "Percentage added to the carrier rate" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierShippingRateProvider/serviceFilter> ;
    sh:name "service filter" ;
    sh:description "Service filter configuration" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierShippingRateProvider/shippingZone> ;
    sh:name "shipping zone" ;
    sh:description "ID of the shipping zone" ;
    sh:node shopify:ShippingZoneShape ;
    sh:class shopify:ShippingZone ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Carrier Service
shopify:CarrierServiceShape a sh:NodeShape ;
  sh:targetClass shopify:CarrierService ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierService/id> ;
    sh:name "id" ;
    sh:description "Carrier service ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierService/name> ;
    sh:name "name" ;
    sh:description "Name of the carrier service" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierService/callbackUrl> ;
    sh:name "callback url" ;
    sh:description "URL for rate requests" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierService/serviceDiscovery> ;
    sh:name "service discovery" ;
    sh:description "Whether the carrier service provides service discovery" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierService/active> ;
    sh:name "active" ;
    sh:description "Whether the carrier service is active" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierService/carrierServiceType> ;
    sh:name "carrier service type" ;
    sh:description "Type of carrier service: api or legacy" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierService/format> ;
    sh:name "format" ;
    sh:description "Format of the callback response: json or xml" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierService/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Theme
shopify:ThemeShape a sh:NodeShape ;
  sh:targetClass shopify:Theme ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/id> ;
    sh:name "id" ;
    sh:description "Theme ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/name> ;
    sh:name "name" ;
    sh:description "Name of the theme" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/role> ;
    sh:name "role" ;
    sh:description "Role of the theme: main, unpublished, demo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/previewable> ;
    sh:name "previewable" ;
    sh:description "Whether the theme can be previewed" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/processing> ;
    sh:name "processing" ;
    sh:description "Whether the theme is currently being processed" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/src> ;
    sh:name "src" ;
    sh:description "URL of a ZIP file containing the theme (for creation)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/themeStoreId> ;
    sh:name "theme store id" ;
    sh:description "ID of the theme in the Shopify Theme Store" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the theme was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the theme was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Theme/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Asset
shopify:AssetShape a sh:NodeShape ;
  sh:targetClass shopify:Asset ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/key> ;
    sh:name "key" ;
    sh:description "Path to the asset within the theme (e.g., 'templates/index.liquid')" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/publicUrl> ;
    sh:name "public url" ;
    sh:description "CDN URL for the asset" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/contentType> ;
    sh:name "content type" ;
    sh:description "MIME type of the asset" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/size> ;
    sh:name "size" ;
    sh:description "Size of the asset in bytes" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/theme> ;
    sh:name "theme" ;
    sh:description "ID of the theme the asset belongs to" ;
    sh:node shopify:ThemeShape ;
    sh:class shopify:Theme ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/value> ;
    sh:name "value" ;
    sh:description "Text content of the asset (for text-based assets)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/attachment> ;
    sh:name "attachment" ;
    sh:description "Base64-encoded binary content (for binary assets)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/sourceKey> ;
    sh:name "source key" ;
    sh:description "Key of another asset to use as the source (for copying)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/src> ;
    sh:name "src" ;
    sh:description "URL to fetch the asset content from (for URL-based creation)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the asset was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Asset/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the asset was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Script Tag
shopify:ScriptTagShape a sh:NodeShape ;
  sh:targetClass shopify:ScriptTag ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/id> ;
    sh:name "id" ;
    sh:description "Script tag ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/src> ;
    sh:name "src" ;
    sh:description "URL of the remote script" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/event> ;
    sh:name "event" ;
    sh:description "Event that triggers script loading: onload" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/displayScope> ;
    sh:name "display scope" ;
    sh:description "Pages where the script should load: online_store, order_status, all" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/cache> ;
    sh:name "cache" ;
    sh:description "Additional properties for Content Security Policy" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTag/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Page
shopify:PageShape a sh:NodeShape ;
  sh:targetClass shopify:Page ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/id> ;
    sh:name "id" ;
    sh:description "Page ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/title> ;
    sh:name "title" ;
    sh:description "Page title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/bodyHtml> ;
    sh:name "body html" ;
    sh:description "HTML content of the page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/author> ;
    sh:name "author" ;
    sh:description "Author of the page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template for the page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the page was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/published> ;
    sh:name "published" ;
    sh:description "Whether the page is published" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/shop> ;
    sh:name "shop" ;
    sh:description "ID of the shop" ;
    sh:node shopify:ShopShape ;
    sh:class shopify:Shop ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/body> ;
    sh:name "body" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/bodySummary> ;
    sh:name "body summary" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/defaultCursor> ;
    sh:name "default cursor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/isPublished> ;
    sh:name "is published" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Page/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Blog
shopify:BlogShape a sh:NodeShape ;
  sh:targetClass shopify:Blog ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/id> ;
    sh:name "id" ;
    sh:description "Blog ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/title> ;
    sh:name "title" ;
    sh:description "Blog title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/commentable> ;
    sh:name "commentable" ;
    sh:description "Indicates whether readers can post comments: no, moderate, yes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the blog" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/feedburner> ;
    sh:name "feedburner" ;
    sh:description "URL of the FeedBurner feed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/feedburnerLocation> ;
    sh:name "feedburner location" ;
    sh:description "URL for the FeedBurner location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/articles> ;
    sh:name "articles" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/articlesCount> ;
    sh:name "articles count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/commentPolicy> ;
    sh:name "comment policy" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/feed> ;
    sh:name "feed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Blog/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Article
shopify:ArticleShape a sh:NodeShape ;
  sh:targetClass shopify:Article ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/id> ;
    sh:name "id" ;
    sh:description "Article ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/blog> ;
    sh:name "blog" ;
    sh:description "ID of the parent blog" ;
    sh:node shopify:BlogShape ;
    sh:class shopify:Blog ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/title> ;
    sh:name "title" ;
    sh:description "Article title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/bodyHtml> ;
    sh:name "body html" ;
    sh:description "HTML content of the article" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/author> ;
    sh:name "author" ;
    sh:description "Author of the article" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the article (comma-separated)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the article was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/published> ;
    sh:name "published" ;
    sh:description "Whether the article is published" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/summaryHtml> ;
    sh:name "summary html" ;
    sh:description "Summary/excerpt of the article in HTML" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/image> ;
    sh:name "image" ;
    sh:description "Article image" ;
    sh:node shopify:ArticleImageShape ;
    sh:class shopify:ArticleImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/user> ;
    sh:name "user" ;
    sh:description "ID of the author user" ;
    sh:node shopify:UserShape ;
    sh:class shopify:User ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/body> ;
    sh:name "body" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/defaultCursor> ;
    sh:name "default cursor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/isPublished> ;
    sh:name "is published" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/summary> ;
    sh:name "summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/comments> ;
    sh:name "comments" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/commentsCount> ;
    sh:name "comments count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Article/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Article Image
shopify:ArticleImageShape a sh:NodeShape ;
  sh:targetClass shopify:ArticleImage ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ArticleImage/src> ;
    sh:name "src" ;
    sh:description "Image URL" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ArticleImage/alt> ;
    sh:name "alt" ;
    sh:description "Image alt text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ArticleImage/width> ;
    sh:name "width" ;
    sh:description "Width in pixels" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ArticleImage/height> ;
    sh:name "height" ;
    sh:description "Height in pixels" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ArticleImage/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the image was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Webhook
shopify:WebhookShape a sh:NodeShape ;
  sh:targetClass shopify:Webhook ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/id> ;
    sh:name "id" ;
    sh:description "Webhook ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/address> ;
    sh:name "address" ;
    sh:description "URI where the webhook sends the POST request" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/topic> ;
    sh:name "topic" ;
    sh:description "Event topic (e.g., orders/create)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/format> ;
    sh:name "format" ;
    sh:description "Response format: json or xml" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "json" "xml" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/fields> ;
    sh:name "fields" ;
    sh:description "Optional array of fields to include in the webhook body" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/metafieldNamespaces> ;
    sh:name "metafield namespaces" ;
    sh:description "Optional array of metafield namespaces to include" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/apiVersion> ;
    sh:name "api version" ;
    sh:description "API version for the webhook payload" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/privateMetafieldNamespaces> ;
    sh:name "private metafield namespaces" ;
    sh:description "Optional array of private metafield namespaces to include" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the webhook was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the webhook was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Webhook/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Currency
shopify:CurrencyShape a sh:NodeShape ;
  sh:targetClass shopify:Currency ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Currency/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Currency/rateUpdatedAt> ;
    sh:name "rate updated at" ;
    sh:description "Date and time when the exchange rate was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Currency/enabled> ;
    sh:name "enabled" ;
    sh:description "Whether the currency is enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Policy
shopify:PolicyShape a sh:NodeShape ;
  sh:targetClass shopify:Policy ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Policy/title> ;
    sh:name "title" ;
    sh:description "Policy title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Policy/body> ;
    sh:name "body" ;
    sh:description "Policy body in HTML" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Policy/url> ;
    sh:name "url" ;
    sh:description "Public URL of the policy" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Policy/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Policy/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the policy was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Policy/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the policy was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Redirect
shopify:RedirectShape a sh:NodeShape ;
  sh:targetClass shopify:Redirect ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Redirect/id> ;
    sh:name "id" ;
    sh:description "Redirect ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Redirect/path> ;
    sh:name "path" ;
    sh:description "The old path to redirect from" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Redirect/target> ;
    sh:name "target" ;
    sh:description "The target URL to redirect to" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Market
shopify:MarketShape a sh:NodeShape ;
  sh:targetClass shopify:Market ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/id> ;
    sh:name "id" ;
    sh:description "Market ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/name> ;
    sh:name "name" ;
    sh:description "Name of the market" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/enabled> ;
    sh:name "enabled" ;
    sh:description "Whether the market is enabled" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/primary> ;
    sh:name "primary" ;
    sh:description "Whether the market is the primary market" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/regions> ;
    sh:name "regions" ;
    sh:description "Regions associated with the market" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the market was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the market was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/assignedCustomization> ;
    sh:name "assigned customization" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/catalogs> ;
    sh:name "catalogs" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/catalogsCount> ;
    sh:name "catalogs count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/conditions> ;
    sh:name "conditions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/currencySettings> ;
    sh:name "currency settings" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/priceInclusions> ;
    sh:name "price inclusions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/priceList> ;
    sh:name "price list" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/status> ;
    sh:name "status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/webPresence> ;
    sh:name "web presence" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/webPresences> ;
    sh:name "web presences" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Metafield Definition
shopify:MetafieldDefinitionShape a sh:NodeShape ;
  sh:targetClass shopify:MetafieldDefinition ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/id> ;
    sh:name "id" ;
    sh:description "Metafield definition ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/name> ;
    sh:name "name" ;
    sh:description "Human-readable name of the definition" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/namespace> ;
    sh:name "namespace" ;
    sh:description "Namespace for the metafield definition" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/key> ;
    sh:name "key" ;
    sh:description "Key for the metafield definition" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/description> ;
    sh:name "description" ;
    sh:description "Description of the metafield definition" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/type> ;
    sh:name "type" ;
    sh:description "Type definition for the metafield" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/ownerType> ;
    sh:name "owner type" ;
    sh:description "Resource type that owns the metafield (e.g., PRODUCT, CUSTOMER)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/pinnedPosition> ;
    sh:name "pinned position" ;
    sh:description "Position of the definition in the pinned list" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the definition was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the definition was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/metafieldsCount> ;
    sh:name "metafields count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/useAsCollectionCondition> ;
    sh:name "use as collection condition" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/access> ;
    sh:name "access" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/capabilities> ;
    sh:name "capabilities" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/constraints> ;
    sh:name "constraints" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/standardTemplate> ;
    sh:name "standard template" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/validationStatus> ;
    sh:name "validation status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/validations> ;
    sh:name "validations" ;
    sh:node shopify:MetafieldDefinitionValidationShape ;
    sh:class shopify:MetafieldDefinitionValidation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Metafield Definition Validation
shopify:MetafieldDefinitionValidationShape a sh:NodeShape ;
  sh:targetClass shopify:MetafieldDefinitionValidation ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinitionValidation/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinitionValidation/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinitionValidation/value> ;
    sh:name "value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Deprecated Api Call Entry
shopify:DeprecatedApiCallEntryShape a sh:NodeShape ;
  sh:targetClass shopify:DeprecatedApiCallEntry ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallEntry/apiType> ;
    sh:name "api type" ;
    sh:description "The type of API that the call was made to (e.g., REST, Webhook)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallEntry/description> ;
    sh:name "description" ;
    sh:description "A description of the deprecation and what to use instead" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallEntry/documentationUrl> ;
    sh:name "documentation url" ;
    sh:description "URL to the documentation about the deprecation" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallEntry/endpoint> ;
    sh:name "endpoint" ;
    sh:description "The deprecated API endpoint that was called" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallEntry/lastCallAt> ;
    sh:name "last call at" ;
    sh:description "Date and time of the most recent call to the deprecated API" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallEntry/migrationDeadline> ;
    sh:name "migration deadline" ;
    sh:description "Date and time by which the app should have migrated from the deprecated API" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallEntry/graphqlSchemaName> ;
    sh:name "graphql schema name" ;
    sh:description "The name of the GraphQL schema that replaces the deprecated endpoint" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallEntry/version> ;
    sh:name "version" ;
    sh:description "The API version that the deprecated call was made to" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Deprecated Api Call
shopify:DeprecatedApiCallShape a sh:NodeShape ;
  sh:targetClass shopify:DeprecatedApiCall ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCall/dataUpdatedAt> ;
    sh:name "data updated at" ;
    sh:description "Date and time when the deprecated API call data was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCall/deprecatedApiCalls> ;
    sh:name "deprecated api calls" ;
    sh:description "List of deprecated API calls made by the app" ;
    sh:node shopify:DeprecatedApiCallEntryShape ;
    sh:class shopify:DeprecatedApiCallEntry ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Event
shopify:EventShape a sh:NodeShape ;
  sh:targetClass shopify:Event ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/id> ;
    sh:name "id" ;
    sh:description "Event ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/subjectId> ;
    sh:name "subject id" ;
    sh:description "ID of the resource that generated the event" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/subjectType> ;
    sh:name "subject type" ;
    sh:description "Type of the resource that generated the event (e.g., Order, Product)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/verb> ;
    sh:name "verb" ;
    sh:description "The type of event that occurred (e.g., confirmed, placed)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/arguments> ;
    sh:name "arguments" ;
    sh:description "Additional arguments for the event" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/body> ;
    sh:name "body" ;
    sh:description "Undocumented body field" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/description> ;
    sh:name "description" ;
    sh:description "Human-readable description of the event" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/path> ;
    sh:name "path" ;
    sh:description "Relative path to the resource on the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/message> ;
    sh:name "message" ;
    sh:description "Human-readable message describing the event" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/author> ;
    sh:name "author" ;
    sh:description "Author of the event, if applicable" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the event was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/action> ;
    sh:name "action" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/appTitle> ;
    sh:name "app title" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/attributeToApp> ;
    sh:name "attribute to app" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/attributeToUser> ;
    sh:name "attribute to user" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Event/criticalAlert> ;
    sh:name "critical alert" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Collection Listing
shopify:CollectionListingShape a sh:NodeShape ;
  sh:targetClass shopify:CollectionListing ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/collectionId> ;
    sh:name "collection id" ;
    sh:description "ID of the collection" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/bodyHtml> ;
    sh:name "body html" ;
    sh:description "Description of the collection in HTML" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/defaultProductImage> ;
    sh:name "default product image" ;
    sh:description "Default product image for the collection" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/image> ;
    sh:name "image" ;
    sh:description "Image associated with the collection listing" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/title> ;
    sh:name "title" ;
    sh:description "Title of the collection listing" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/sortOrder> ;
    sh:name "sort order" ;
    sh:description "Sort order for the collection listing" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the collection listing was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the collection listing was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Listing
shopify:ProductListingShape a sh:NodeShape ;
  sh:targetClass shopify:ProductListing ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/productId> ;
    sh:name "product id" ;
    sh:description "ID of the product" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/bodyHtml> ;
    sh:name "body html" ;
    sh:description "Description of the product in HTML" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/title> ;
    sh:name "title" ;
    sh:description "Title of the product listing" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/variants> ;
    sh:name "variants" ;
    sh:description "Variants associated with the product listing" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/images> ;
    sh:name "images" ;
    sh:description "Images associated with the product listing" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the product listing was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the product listing was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the product listing was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Checkout
shopify:CheckoutShape a sh:NodeShape ;
  sh:targetClass shopify:Checkout ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/token> ;
    sh:name "token" ;
    sh:description "Unique token for the checkout" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/cartToken> ;
    sh:name "cart token" ;
    sh:description "Token of the cart associated with the checkout" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/email> ;
    sh:name "email" ;
    sh:description "Customer's email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address for the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address for the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/shippingLine> ;
    sh:name "shipping line" ;
    sh:description "Selected shipping rate for the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the checkout including taxes and shipping" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Subtotal of the checkout before taxes and shipping" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/totalTax> ;
    sh:name "total tax" ;
    sh:description "Total tax applied to the checkout" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the checkout was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the checkout was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/completedAt> ;
    sh:name "completed at" ;
    sh:description "Date and time when the checkout was completed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Shopify Payments Payout
shopify:ShopifyPaymentsPayoutShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsPayout ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/id> ;
    sh:name "id" ;
    sh:description "Payout ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/status> ;
    sh:name "status" ;
    sh:description "Status of the payout: scheduled, in_transit, paid, failed, canceled" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/amount> ;
    sh:name "amount" ;
    sh:description "Gross amount of the payout" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/date> ;
    sh:name "date" ;
    sh:description "Date (YYYY-MM-DD) when the payout was issued" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/issuedAt> ;
    sh:name "issued at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/bankAccount> ;
    sh:name "bank account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/businessEntity> ;
    sh:name "business entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/gross> ;
    sh:name "gross" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/net> ;
    sh:name "net" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/summary> ;
    sh:name "summary" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayout/transactionType> ;
    sh:name "transaction type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shopify Payments Balance
shopify:ShopifyPaymentsBalanceShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsBalance ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalance/currency> ;
    sh:name "currency" ;
    sh:description "Currencies in the balance" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalance/amount> ;
    sh:name "amount" ;
    sh:description "Balance amount" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shopify Payments Dispute
shopify:ShopifyPaymentsDisputeShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsDispute ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/id> ;
    sh:name "id" ;
    sh:description "Dispute ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/type> ;
    sh:name "type" ;
    sh:description "Type of the dispute: chargeback, inquiry, retrieval" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/amount> ;
    sh:name "amount" ;
    sh:description "Amount of the dispute" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/status> ;
    sh:name "status" ;
    sh:description "Status of the dispute" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/reason> ;
    sh:name "reason" ;
    sh:description "Reason for the dispute" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/evidenceDueBy> ;
    sh:name "evidence due by" ;
    sh:description "Deadline for submitting evidence" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/initiatedAt> ;
    sh:name "initiated at" ;
    sh:description "Date and time when the dispute was initiated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/evidenceSentOn> ;
    sh:name "evidence sent on" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/finalizedOn> ;
    sh:name "finalized on" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/order> ;
    sh:name "order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDispute/reasonDetails> ;
    sh:name "reason details" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shopify Payments Balance Transaction
shopify:ShopifyPaymentsBalanceTransactionShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsBalanceTransaction ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/id> ;
    sh:name "id" ;
    sh:description "Balance transaction ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/type> ;
    sh:name "type" ;
    sh:description "Type of the transaction" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/amount> ;
    sh:name "amount" ;
    sh:description "Amount of the transaction" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/fee> ;
    sh:name "fee" ;
    sh:description "Fee charged for the transaction" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/net> ;
    sh:name "net" ;
    sh:description "Net amount after fees" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/payout> ;
    sh:name "payout" ;
    sh:description "ID of the associated payout" ;
    sh:node shopify:ShopifyPaymentsPayoutShape ;
    sh:class shopify:ShopifyPaymentsPayout ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/payoutStatus> ;
    sh:name "payout status" ;
    sh:description "Status of the associated payout" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the transaction was processed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/adjustmentReason> ;
    sh:name "adjustment reason" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/test> ;
    sh:name "test" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/transactionDate> ;
    sh:name "transaction date" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/adjustmentsOrders> ;
    sh:name "adjustments orders" ;
    sh:node shopify:ShopifyPaymentsAdjustmentOrderShape ;
    sh:class shopify:ShopifyPaymentsAdjustmentOrder ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/associatedOrder> ;
    sh:name "associated order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/associatedPayout> ;
    sh:name "associated payout" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/sourceId> ;
    sh:name "source id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/sourceOrderTransactionId> ;
    sh:name "source order transaction id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransaction/sourceType> ;
    sh:name "source type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Shopify Payments Adjustment Order
shopify:ShopifyPaymentsAdjustmentOrderShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsAdjustmentOrder ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsAdjustmentOrder/amount> ;
    sh:name "amount" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsAdjustmentOrder/fees> ;
    sh:name "fees" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsAdjustmentOrder/link> ;
    sh:name "link" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsAdjustmentOrder/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsAdjustmentOrder/net> ;
    sh:name "net" ;
    sh:node shopify:MoneyShape ;
    sh:class shopify:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsAdjustmentOrder/orderTransactionId> ;
    sh:name "order transaction id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Access Scope
shopify:AccessScopeShape a sh:NodeShape ;
  sh:targetClass shopify:AccessScope ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AccessScope/handle> ;
    sh:name "handle" ;
    sh:description "The access scope handle (e.g., write_products, read_orders)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AccessScope/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Storefront Access Token
shopify:StorefrontAccessTokenShape a sh:NodeShape ;
  sh:targetClass shopify:StorefrontAccessToken ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessToken/id> ;
    sh:name "id" ;
    sh:description "Storefront access token ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessToken/accessToken> ;
    sh:name "access token" ;
    sh:description "The issued public access token" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessToken/accessScope> ;
    sh:name "access scope" ;
    sh:description "The access scope associated with the token" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessToken/title> ;
    sh:name "title" ;
    sh:description "Title describing the token" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessToken/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the token was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessToken/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessToken/updatedAt> ;
    sh:name "updated at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessToken/accessScopes> ;
    sh:name "access scopes" ;
    sh:node shopify:AccessScopeShape ;
    sh:class shopify:AccessScope ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Application Charge
shopify:ApplicationChargeShape a sh:NodeShape ;
  sh:targetClass shopify:ApplicationCharge ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/id> ;
    sh:name "id" ;
    sh:description "Application charge ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/name> ;
    sh:name "name" ;
    sh:description "Name of the charge" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/price> ;
    sh:name "price" ;
    sh:description "Price of the charge (e.g., \"1.00\")" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/status> ;
    sh:name "status" ;
    sh:description "Status of the charge: pending, accepted, active, declined, expired" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/returnUrl> ;
    sh:name "return url" ;
    sh:description "URL to redirect the merchant after accepting or declining the charge" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test charge" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/confirmationUrl> ;
    sh:name "confirmation url" ;
    sh:description "URL for the merchant to accept or decline the charge" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the charge was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCharge/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the charge was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Application Credit
shopify:ApplicationCreditShape a sh:NodeShape ;
  sh:targetClass shopify:ApplicationCredit ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCredit/id> ;
    sh:name "id" ;
    sh:description "Application credit ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCredit/amount> ;
    sh:name "amount" ;
    sh:description "Amount of the credit (e.g., \"5.00\")" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCredit/description> ;
    sh:name "description" ;
    sh:description "Description of the credit" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCredit/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test credit" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Recurring Application Charge
shopify:RecurringApplicationChargeShape a sh:NodeShape ;
  sh:targetClass shopify:RecurringApplicationCharge ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/id> ;
    sh:name "id" ;
    sh:description "Recurring application charge ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/name> ;
    sh:name "name" ;
    sh:description "Name of the recurring charge" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/price> ;
    sh:name "price" ;
    sh:description "Price of the recurring charge (e.g., \"10.00\")" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/status> ;
    sh:name "status" ;
    sh:description "Status of the charge: pending, accepted, active, declined, expired, frozen, cancelled" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/returnUrl> ;
    sh:name "return url" ;
    sh:description "URL to redirect the merchant after accepting or declining the charge" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test charge" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/cappedAmount> ;
    sh:name "capped amount" ;
    sh:description "Capped amount for usage charges associated with this recurring charge" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/terms> ;
    sh:name "terms" ;
    sh:description "Terms and conditions of the charge" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/trialDays> ;
    sh:name "trial days" ;
    sh:description "Number of trial days for the charge" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/activatedOn> ;
    sh:name "activated on" ;
    sh:description "Date the charge was activated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/billingOn> ;
    sh:name "billing on" ;
    sh:description "Date the merchant is next billed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/cancelledOn> ;
    sh:name "cancelled on" ;
    sh:description "Date the charge was cancelled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/confirmationUrl> ;
    sh:name "confirmation url" ;
    sh:description "URL for the merchant to accept or decline the charge" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the charge was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationCharge/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the charge was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Usage Charge
shopify:UsageChargeShape a sh:NodeShape ;
  sh:targetClass shopify:UsageCharge ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UsageCharge/id> ;
    sh:name "id" ;
    sh:description "Usage charge ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UsageCharge/description> ;
    sh:name "description" ;
    sh:description "Description of the usage charge" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UsageCharge/price> ;
    sh:name "price" ;
    sh:description "Price of the usage charge (e.g., \"1.00\")" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UsageCharge/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the usage charge was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Marketing Event
shopify:MarketingEventShape a sh:NodeShape ;
  sh:targetClass shopify:MarketingEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/id> ;
    sh:name "id" ;
    sh:description "Marketing event ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/eventType> ;
    sh:name "event type" ;
    sh:description "The type of marketing event (e.g., ad, post, message)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/remoteId> ;
    sh:name "remote id" ;
    sh:description "Remote identifier for the marketing event on the external platform" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/startedAt> ;
    sh:name "started at" ;
    sh:description "Date and time when the marketing event started" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/endedAt> ;
    sh:name "ended at" ;
    sh:description "Date and time when the marketing event ended" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/scheduledToEndAt> ;
    sh:name "scheduled to end at" ;
    sh:description "Date and time when the marketing event is scheduled to end" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/budget> ;
    sh:name "budget" ;
    sh:description "Budget for the marketing event" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/budgetType> ;
    sh:name "budget type" ;
    sh:description "Budget type (e.g., daily, lifetime)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/currency> ;
    sh:name "currency" ;
    sh:description "Currency code for the budget (ISO 4217)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/manageUrl> ;
    sh:name "manage url" ;
    sh:description "URL to manage the marketing event on the external platform" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/previewUrl> ;
    sh:name "preview url" ;
    sh:description "URL to preview the marketing event" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/utmCampaign> ;
    sh:name "utm campaign" ;
    sh:description "UTM campaign parameter for tracking" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/utmSource> ;
    sh:name "utm source" ;
    sh:description "UTM source parameter for tracking" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/utmMedium> ;
    sh:name "utm medium" ;
    sh:description "UTM medium parameter for tracking" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/description> ;
    sh:name "description" ;
    sh:description "Description of the marketing event" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/marketedResources> ;
    sh:name "marketed resources" ;
    sh:description "List of resources marketed by this event" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the marketing event was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the marketing event was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/channelHandle> ;
    sh:name "channel handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/sourceAndMedium> ;
    sh:name "source and medium" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/targetTypeDisplayText> ;
    sh:name "target type display text" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/channel> ;
    sh:name "channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/marketingChannelType> ;
    sh:name "marketing channel type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Abandoned Checkout
shopify:AbandonedCheckoutShape a sh:NodeShape ;
  sh:targetClass shopify:AbandonedCheckout ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/id> ;
    sh:name "id" ;
    sh:description "Abandoned checkout ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/token> ;
    sh:name "token" ;
    sh:description "Unique token for the checkout" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/cartToken> ;
    sh:name "cart token" ;
    sh:description "Token for the cart associated with the checkout" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/buyerAcceptsMarketing> ;
    sh:name "buyer accepts marketing" ;
    sh:description "Whether the buyer has opted in to marketing" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the checkout" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Subtotal price of the checkout before shipping and taxes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/totalTax> ;
    sh:name "total tax" ;
    sh:description "Total tax amount for the checkout" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/currency> ;
    sh:name "currency" ;
    sh:description "Currency code for the checkout (ISO 4217)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address for the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address for the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount codes applied to the checkout" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/completedAt> ;
    sh:name "completed at" ;
    sh:description "Date and time when the checkout was completed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/abandonedCheckoutUrl> ;
    sh:name "abandoned checkout url" ;
    sh:description "URL to recover the abandoned checkout" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the checkout was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the checkout was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/closedAt> ;
    sh:name "closed at" ;
    sh:description "Date and time when the checkout was closed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/defaultCursor> ;
    sh:name "default cursor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/lineItemsQuantity> ;
    sh:name "line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/note> ;
    sh:name "note" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/taxLines> ;
    sh:name "tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/totalDiscountSet> ;
    sh:name "total discount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/totalDutiesSet> ;
    sh:name "total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/totalPriceSet> ;
    sh:name "total price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Comment
shopify:CommentShape a sh:NodeShape ;
  sh:targetClass shopify:Comment ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/id> ;
    sh:name "id" ;
    sh:description "Comment ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/body> ;
    sh:name "body" ;
    sh:description "The text content of the comment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/bodyHtml> ;
    sh:name "body html" ;
    sh:description "The HTML-rendered body of the comment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/author> ;
    sh:name "author" ;
    sh:description "The name of the comment author" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/email> ;
    sh:name "email" ;
    sh:description "The email address of the comment author" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/article> ;
    sh:name "article" ;
    sh:description "ID of the article the comment belongs to" ;
    sh:node shopify:ArticleShape ;
    sh:class shopify:Article ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/blog> ;
    sh:name "blog" ;
    sh:description "ID of the blog the comment belongs to" ;
    sh:node shopify:BlogShape ;
    sh:class shopify:Blog ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/status> ;
    sh:name "status" ;
    sh:description "Status of the comment: pending, published, unapproved, spam, removed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/ip> ;
    sh:name "ip" ;
    sh:description "The IP address of the comment poster" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/userAgent> ;
    sh:name "user agent" ;
    sh:description "The user agent string of the comment poster" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the comment was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the comment was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the comment was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/isPublished> ;
    sh:name "is published" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Comment/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Report
shopify:ReportShape a sh:NodeShape ;
  sh:targetClass shopify:Report ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Report/id> ;
    sh:name "id" ;
    sh:description "Report ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Report/name> ;
    sh:name "name" ;
    sh:description "The name of the report" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Report/shopifyQl> ;
    sh:name "shopify ql" ;
    sh:description "The ShopifyQL query for the report" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Report/category> ;
    sh:name "category" ;
    sh:description "The category of the report" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Report/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the report was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Resource Feedback
shopify:ResourceFeedbackShape a sh:NodeShape ;
  sh:targetClass shopify:ResourceFeedback ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/resourceId> ;
    sh:name "resource id" ;
    sh:description "ID of the resource that the feedback is for" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/resourceType> ;
    sh:name "resource type" ;
    sh:description "Type of the resource that the feedback is for" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/state> ;
    sh:name "state" ;
    sh:description "The state of the feedback: requires_action or success" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/messages> ;
    sh:name "messages" ;
    sh:description "Messages associated with the feedback (required when state is requires_action)" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/feedbackGeneratedAt> ;
    sh:name "feedback generated at" ;
    sh:description "Date and time when the feedback was generated (ISO 8601)" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the feedback was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the feedback was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/summary> ;
    sh:name "summary" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/appFeedback> ;
    sh:name "app feedback" ;
    sh:node shopify:AppFeedbackShape ;
    sh:class shopify:AppFeedback ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedback/details> ;
    sh:name "details" ;
    sh:node shopify:AppFeedbackShape ;
    sh:class shopify:AppFeedback ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for App Feedback
shopify:AppFeedbackShape a sh:NodeShape ;
  sh:targetClass shopify:AppFeedback ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AppFeedback/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AppFeedback/feedbackGeneratedAt> ;
    sh:name "feedback generated at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AppFeedback/link> ;
    sh:name "link" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AppFeedback/messages> ;
    sh:name "messages" ;
    sh:node shopify:UserErrorShape ;
    sh:class shopify:UserError ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AppFeedback/state> ;
    sh:name "state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Tender Transaction
shopify:TenderTransactionShape a sh:NodeShape ;
  sh:targetClass shopify:TenderTransaction ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/id> ;
    sh:name "id" ;
    sh:description "Tender transaction ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/order> ;
    sh:name "order" ;
    sh:description "ID of the order associated with the tender transaction" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/amount> ;
    sh:name "amount" ;
    sh:description "Amount of the tender transaction" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/currency> ;
    sh:name "currency" ;
    sh:description "Currency of the tender transaction (ISO 4217)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test transaction" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/user> ;
    sh:name "user" ;
    sh:description "ID of the user who processed the transaction" ;
    sh:node shopify:UserShape ;
    sh:class shopify:User ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/paymentMethod> ;
    sh:name "payment method" ;
    sh:description "Payment method used for the transaction" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/remoteReference> ;
    sh:name "remote reference" ;
    sh:description "Remote reference for the transaction from the payment provider" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/paymentDetails> ;
    sh:name "payment details" ;
    sh:description "Details about the payment method" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the transaction was processed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/transactionDetails> ;
    sh:name "transaction details" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Response
shopify:ProductResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductResponse/product> ;
    sh:name "product" ;
    sh:description "Product" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Products Response
shopify:ProductsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductsResponse/products> ;
    sh:name "products" ;
    sh:description "List of products" ;
    sh:class shopify:Product ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Count Response
shopify:ProductCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductCountResponse/count> ;
    sh:name "count" ;
    sh:description "Product count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Variant Response
shopify:ProductVariantResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductVariantResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariantResponse/variant> ;
    sh:name "variant" ;
    sh:description "Product variant" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Variants Response
shopify:ProductVariantsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductVariantsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariantsResponse/variants> ;
    sh:name "variants" ;
    sh:description "List of product variants" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Image Response
shopify:ProductImageResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductImageResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImageResponse/image> ;
    sh:name "image" ;
    sh:description "Product image" ;
    sh:node shopify:ProductImageShape ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Images Response
shopify:ProductImagesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductImagesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductImagesResponse/images> ;
    sh:name "images" ;
    sh:description "List of product images" ;
    sh:node shopify:ProductImageShape ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Order Response
shopify:OrderResponseShape a sh:NodeShape ;
  sh:targetClass shopify:OrderResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderResponse/order> ;
    sh:name "order" ;
    sh:description "Order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Orders Response
shopify:OrdersResponseShape a sh:NodeShape ;
  sh:targetClass shopify:OrdersResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrdersResponse/orders> ;
    sh:name "orders" ;
    sh:description "List of orders" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Order Count Response
shopify:OrderCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:OrderCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderCountResponse/count> ;
    sh:name "count" ;
    sh:description "Order count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Transaction Response
shopify:TransactionResponseShape a sh:NodeShape ;
  sh:targetClass shopify:TransactionResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionResponse/transaction> ;
    sh:name "transaction" ;
    sh:description "Transaction" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Transactions Response
shopify:TransactionsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:TransactionsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TransactionsResponse/transactions> ;
    sh:name "transactions" ;
    sh:description "List of transactions" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Refund Response
shopify:RefundResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RefundResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundResponse/refund> ;
    sh:name "refund" ;
    sh:description "Refund" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Refunds Response
shopify:RefundsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RefundsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RefundsResponse/refunds> ;
    sh:name "refunds" ;
    sh:description "List of refunds" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Risk Response
shopify:RiskResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RiskResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RiskResponse/risk> ;
    sh:name "risk" ;
    sh:description "Order risk" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Risks Response
shopify:RisksResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RisksResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RisksResponse/risks> ;
    sh:name "risks" ;
    sh:description "List of order risks" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Customer Response
shopify:CustomerResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerResponse/customer> ;
    sh:name "customer" ;
    sh:description "Customer" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customers Response
shopify:CustomersResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomersResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomersResponse/customers> ;
    sh:name "customers" ;
    sh:description "List of customers" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Customer Count Response
shopify:CustomerCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerCountResponse/count> ;
    sh:name "count" ;
    sh:description "Customer count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Address Response
shopify:CustomerAddressResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerAddressResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddressResponse/customerAddress> ;
    sh:name "customer address" ;
    sh:description "Customer address" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Addresses Response
shopify:CustomerAddressesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerAddressesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerAddressesResponse/addresses> ;
    sh:name "addresses" ;
    sh:description "List of addresses" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Custom Collection Response
shopify:CustomCollectionResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomCollectionResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollectionResponse/customCollection> ;
    sh:name "custom collection" ;
    sh:description "Custom collection" ;
    sh:node shopify:CustomCollectionShape ;
    sh:class shopify:CustomCollection ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Custom Collections Response
shopify:CustomCollectionsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomCollectionsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomCollectionsResponse/customCollections> ;
    sh:name "custom collections" ;
    sh:description "List of custom collections" ;
    sh:node shopify:CustomCollectionShape ;
    sh:class shopify:CustomCollection ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Smart Collection Response
shopify:SmartCollectionResponseShape a sh:NodeShape ;
  sh:targetClass shopify:SmartCollectionResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollectionResponse/smartCollection> ;
    sh:name "smart collection" ;
    sh:description "Smart collection" ;
    sh:node shopify:SmartCollectionShape ;
    sh:class shopify:SmartCollection ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Smart Collections Response
shopify:SmartCollectionsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:SmartCollectionsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.SmartCollectionsResponse/smartCollections> ;
    sh:name "smart collections" ;
    sh:description "List of smart collections" ;
    sh:node shopify:SmartCollectionShape ;
    sh:class shopify:SmartCollection ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Collect Response
shopify:CollectResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CollectResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectResponse/collect> ;
    sh:name "collect" ;
    sh:description "Collect" ;
    sh:node shopify:CollectShape ;
    sh:class shopify:Collect ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Collects Response
shopify:CollectsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CollectsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectsResponse/collects> ;
    sh:name "collects" ;
    sh:description "List of collects" ;
    sh:node shopify:CollectShape ;
    sh:class shopify:Collect ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Collection Count Response
shopify:CollectionCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CollectionCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionCountResponse/count> ;
    sh:name "count" ;
    sh:description "Collection count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Generic Collection Response
shopify:GenericCollectionResponseShape a sh:NodeShape ;
  sh:targetClass shopify:GenericCollectionResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GenericCollectionResponse/collection> ;
    sh:name "collection" ;
    sh:description "Collection" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Item Response
shopify:InventoryItemResponseShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryItemResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItemResponse/inventoryItem> ;
    sh:name "inventory item" ;
    sh:description "Inventory item" ;
    sh:node shopify:InventoryItemShape ;
    sh:class shopify:InventoryItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Items Response
shopify:InventoryItemsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryItemsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryItemsResponse/inventoryItems> ;
    sh:name "inventory items" ;
    sh:description "List of inventory items" ;
    sh:node shopify:InventoryItemShape ;
    sh:class shopify:InventoryItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Inventory Level Response
shopify:InventoryLevelResponseShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryLevelResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevelResponse/inventoryLevel> ;
    sh:name "inventory level" ;
    sh:description "Inventory level" ;
    sh:node shopify:InventoryLevelShape ;
    sh:class shopify:InventoryLevel ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Levels Response
shopify:InventoryLevelsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryLevelsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.InventoryLevelsResponse/inventoryLevels> ;
    sh:name "inventory levels" ;
    sh:description "List of inventory levels" ;
    sh:node shopify:InventoryLevelShape ;
    sh:class shopify:InventoryLevel ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Location Response
shopify:LocationResponseShape a sh:NodeShape ;
  sh:targetClass shopify:LocationResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationResponse/location> ;
    sh:name "location" ;
    sh:description "Location" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Locations Response
shopify:LocationsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:LocationsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationsResponse/locations> ;
    sh:name "locations" ;
    sh:description "List of locations" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Location Count Response
shopify:LocationCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:LocationCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.LocationCountResponse/count> ;
    sh:name "count" ;
    sh:description "Location count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Response
shopify:FulfillmentResponseShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentResponse/fulfillment> ;
    sh:name "fulfillment" ;
    sh:description "Fulfillment" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillments Response
shopify:FulfillmentsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentsResponse/fulfillments> ;
    sh:name "fulfillments" ;
    sh:description "List of fulfillments" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Fulfillment Count Response
shopify:FulfillmentCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentCountResponse/count> ;
    sh:name "count" ;
    sh:description "Fulfillment count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Order Response
shopify:FulfillmentOrderResponseShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentOrderResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrderResponse/fulfillmentOrder> ;
    sh:name "fulfillment order" ;
    sh:description "Fulfillment order" ;
    sh:node shopify:FulfillmentOrderShape ;
    sh:class shopify:FulfillmentOrder ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Orders Response
shopify:FulfillmentOrdersResponseShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentOrdersResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrdersResponse/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:description "List of fulfillment orders" ;
    sh:node shopify:FulfillmentOrderShape ;
    sh:class shopify:FulfillmentOrder ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Fulfillment Service Response
shopify:FulfillmentServiceResponseShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentServiceResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentServiceResponse/fulfillmentService> ;
    sh:name "fulfillment service" ;
    sh:description "Fulfillment service" ;
    sh:node shopify:FulfillmentServiceShape ;
    sh:class shopify:FulfillmentService ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Services Response
shopify:FulfillmentServicesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentServicesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentServicesResponse/fulfillmentServices> ;
    sh:name "fulfillment services" ;
    sh:description "List of fulfillment services" ;
    sh:node shopify:FulfillmentServiceShape ;
    sh:class shopify:FulfillmentService ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Draft Order Response
shopify:DraftOrderResponseShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderResponse/draftOrder> ;
    sh:name "draft order" ;
    sh:description "Draft order" ;
    sh:class shopify:DraftOrder ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Orders Response
shopify:DraftOrdersResponseShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrdersResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrdersResponse/draftOrders> ;
    sh:name "draft orders" ;
    sh:description "List of draft orders" ;
    sh:class shopify:DraftOrder ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Draft Order Count Response
shopify:DraftOrderCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderCountResponse/count> ;
    sh:name "count" ;
    sh:description "Draft order count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order Invoice Request
shopify:DraftOrderInvoiceRequestShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderInvoiceRequest ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceRequest/draftOrderInvoice> ;
    sh:name "draft order invoice" ;
    sh:description "Invoice details" ;
    sh:node <https://relay.inferal.com/ontology/shopify/inline/Shopify.DraftOrderInvoiceRequest/draftOrderInvoiceShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/inline/Shopify.DraftOrderInvoiceRequest/draftOrderInvoice> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order Invoice Response
shopify:DraftOrderInvoiceResponseShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderInvoiceResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceResponse/draftOrderInvoice> ;
    sh:name "draft order invoice" ;
    sh:description "Sent invoice details" ;
    sh:node <https://relay.inferal.com/ontology/shopify/inline/Shopify.DraftOrderInvoiceResponse/draftOrderInvoiceShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/inline/Shopify.DraftOrderInvoiceResponse/draftOrderInvoice> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Gift Card Response
shopify:GiftCardResponseShape a sh:NodeShape ;
  sh:targetClass shopify:GiftCardResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCardResponse/giftCard> ;
    sh:name "gift card" ;
    sh:description "Gift card" ;
    sh:class shopify:GiftCard ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Gift Cards Response
shopify:GiftCardsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:GiftCardsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCardsResponse/giftCards> ;
    sh:name "gift cards" ;
    sh:description "List of gift cards" ;
    sh:class shopify:GiftCard ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Gift Card Count Response
shopify:GiftCardCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:GiftCardCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.GiftCardCountResponse/count> ;
    sh:name "count" ;
    sh:description "Gift card count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Price Rule Response
shopify:PriceRuleResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PriceRuleResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleResponse/priceRule> ;
    sh:name "price rule" ;
    sh:description "Price rule" ;
    sh:node shopify:PriceRuleShape ;
    sh:class shopify:PriceRule ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Price Rules Response
shopify:PriceRulesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PriceRulesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRulesResponse/priceRules> ;
    sh:name "price rules" ;
    sh:description "List of price rules" ;
    sh:node shopify:PriceRuleShape ;
    sh:class shopify:PriceRule ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Price Rule Count Response
shopify:PriceRuleCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PriceRuleCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PriceRuleCountResponse/count> ;
    sh:name "count" ;
    sh:description "Price rule count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Discount Code Response
shopify:DiscountCodeResponseShape a sh:NodeShape ;
  sh:targetClass shopify:DiscountCodeResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountCodeResponse/discountCode> ;
    sh:name "discount code" ;
    sh:description "Discount code" ;
    sh:class shopify:PriceRuleDiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Discount Codes Response
shopify:DiscountCodesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:DiscountCodesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountCodesResponse/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "List of discount codes" ;
    sh:class shopify:PriceRuleDiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Discount Code Count Response
shopify:DiscountCodeCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:DiscountCodeCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DiscountCodeCountResponse/count> ;
    sh:name "count" ;
    sh:description "Discount code count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shipping Zones Response
shopify:ShippingZonesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShippingZonesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingZonesResponse/shippingZones> ;
    sh:name "shipping zones" ;
    sh:description "List of shipping zones" ;
    sh:node shopify:ShippingZoneShape ;
    sh:class shopify:ShippingZone ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Carrier Service Response
shopify:CarrierServiceResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CarrierServiceResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierServiceResponse/carrierService> ;
    sh:name "carrier service" ;
    sh:description "Carrier service" ;
    sh:node shopify:CarrierServiceShape ;
    sh:class shopify:CarrierService ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Carrier Services Response
shopify:CarrierServicesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CarrierServicesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierServicesResponse/carrierServices> ;
    sh:name "carrier services" ;
    sh:description "List of carrier services" ;
    sh:node shopify:CarrierServiceShape ;
    sh:class shopify:CarrierService ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Theme Response
shopify:ThemeResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ThemeResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ThemeResponse/theme> ;
    sh:name "theme" ;
    sh:description "Theme" ;
    sh:node shopify:ThemeShape ;
    sh:class shopify:Theme ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Themes Response
shopify:ThemesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ThemesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ThemesResponse/themes> ;
    sh:name "themes" ;
    sh:description "List of themes" ;
    sh:node shopify:ThemeShape ;
    sh:class shopify:Theme ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Asset Response
shopify:AssetResponseShape a sh:NodeShape ;
  sh:targetClass shopify:AssetResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssetResponse/asset> ;
    sh:name "asset" ;
    sh:description "Asset" ;
    sh:node shopify:AssetShape ;
    sh:class shopify:Asset ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Assets Response
shopify:AssetsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:AssetsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AssetsResponse/assets> ;
    sh:name "assets" ;
    sh:description "List of assets" ;
    sh:node shopify:AssetShape ;
    sh:class shopify:Asset ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Script Tag Response
shopify:ScriptTagResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ScriptTagResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTagResponse/scriptTag> ;
    sh:name "script tag" ;
    sh:description "Script tag" ;
    sh:node shopify:ScriptTagShape ;
    sh:class shopify:ScriptTag ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Script Tags Response
shopify:ScriptTagsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ScriptTagsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTagsResponse/scriptTags> ;
    sh:name "script tags" ;
    sh:description "List of script tags" ;
    sh:node shopify:ScriptTagShape ;
    sh:class shopify:ScriptTag ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Script Tag Count Response
shopify:ScriptTagCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ScriptTagCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ScriptTagCountResponse/count> ;
    sh:name "count" ;
    sh:description "Script tag count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Page Response
shopify:PageResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PageResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PageResponse/page> ;
    sh:name "page" ;
    sh:description "Page" ;
    sh:node shopify:PageShape ;
    sh:class shopify:Page ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Pages Response
shopify:PagesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PagesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PagesResponse/pages> ;
    sh:name "pages" ;
    sh:description "List of pages" ;
    sh:node shopify:PageShape ;
    sh:class shopify:Page ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Page Count Response
shopify:PageCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PageCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PageCountResponse/count> ;
    sh:name "count" ;
    sh:description "Page count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Blog Response
shopify:BlogResponseShape a sh:NodeShape ;
  sh:targetClass shopify:BlogResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.BlogResponse/blog> ;
    sh:name "blog" ;
    sh:description "Blog" ;
    sh:node shopify:BlogShape ;
    sh:class shopify:Blog ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Blogs Response
shopify:BlogsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:BlogsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.BlogsResponse/blogs> ;
    sh:name "blogs" ;
    sh:description "List of blogs" ;
    sh:node shopify:BlogShape ;
    sh:class shopify:Blog ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Blog Count Response
shopify:BlogCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:BlogCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.BlogCountResponse/count> ;
    sh:name "count" ;
    sh:description "Blog count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Article Response
shopify:ArticleResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ArticleResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ArticleResponse/article> ;
    sh:name "article" ;
    sh:description "Article" ;
    sh:node shopify:ArticleShape ;
    sh:class shopify:Article ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Articles Response
shopify:ArticlesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ArticlesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ArticlesResponse/articles> ;
    sh:name "articles" ;
    sh:description "List of articles" ;
    sh:node shopify:ArticleShape ;
    sh:class shopify:Article ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Article Count Response
shopify:ArticleCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ArticleCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ArticleCountResponse/count> ;
    sh:name "count" ;
    sh:description "Article count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Webhook Response
shopify:WebhookResponseShape a sh:NodeShape ;
  sh:targetClass shopify:WebhookResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WebhookResponse/webhook> ;
    sh:name "webhook" ;
    sh:description "Webhook" ;
    sh:node shopify:WebhookShape ;
    sh:class shopify:Webhook ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Webhooks Response
shopify:WebhooksResponseShape a sh:NodeShape ;
  sh:targetClass shopify:WebhooksResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WebhooksResponse/webhooks> ;
    sh:name "webhooks" ;
    sh:description "List of webhooks" ;
    sh:node shopify:WebhookShape ;
    sh:class shopify:Webhook ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Webhook Count Response
shopify:WebhookCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:WebhookCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.WebhookCountResponse/count> ;
    sh:name "count" ;
    sh:description "Webhook count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shop Response
shopify:ShopResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShopResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopResponse/shop> ;
    sh:name "shop" ;
    sh:description "Shop" ;
    sh:node shopify:ShopShape ;
    sh:class shopify:Shop ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Country Response
shopify:CountryResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CountryResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CountryResponse/country> ;
    sh:name "country" ;
    sh:description "Country" ;
    sh:node shopify:CountryShape ;
    sh:class shopify:Country ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Countries Response
shopify:CountriesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CountriesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CountriesResponse/countries> ;
    sh:name "countries" ;
    sh:description "List of countries" ;
    sh:node shopify:CountryShape ;
    sh:class shopify:Country ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Country Count Response
shopify:CountryCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CountryCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CountryCountResponse/count> ;
    sh:name "count" ;
    sh:description "Country count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Province Response
shopify:ProvinceResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProvinceResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProvinceResponse/province> ;
    sh:name "province" ;
    sh:description "Province" ;
    sh:node shopify:ProvinceShape ;
    sh:class shopify:Province ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Provinces Response
shopify:ProvincesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProvincesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProvincesResponse/provinces> ;
    sh:name "provinces" ;
    sh:description "List of provinces" ;
    sh:node shopify:ProvinceShape ;
    sh:class shopify:Province ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Province Count Response
shopify:ProvinceCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProvinceCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProvinceCountResponse/count> ;
    sh:name "count" ;
    sh:description "Province count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Currencies Response
shopify:CurrenciesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CurrenciesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CurrenciesResponse/currencies> ;
    sh:name "currencies" ;
    sh:description "List of currencies" ;
    sh:node shopify:CurrencyShape ;
    sh:class shopify:Currency ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Policies Response
shopify:PoliciesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PoliciesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PoliciesResponse/policies> ;
    sh:name "policies" ;
    sh:description "List of policies" ;
    sh:node shopify:PolicyShape ;
    sh:class shopify:Policy ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Redirect Response
shopify:RedirectResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RedirectResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RedirectResponse/redirect> ;
    sh:name "redirect" ;
    sh:description "Redirect" ;
    sh:node shopify:RedirectShape ;
    sh:class shopify:Redirect ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Redirects Response
shopify:RedirectsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RedirectsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RedirectsResponse/redirects> ;
    sh:name "redirects" ;
    sh:description "List of redirects" ;
    sh:node shopify:RedirectShape ;
    sh:class shopify:Redirect ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Redirect Count Response
shopify:RedirectCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RedirectCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RedirectCountResponse/count> ;
    sh:name "count" ;
    sh:description "Redirect count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Market Response
shopify:MarketResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketResponse/market> ;
    sh:name "market" ;
    sh:description "Market" ;
    sh:node shopify:MarketShape ;
    sh:class shopify:Market ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Markets Response
shopify:MarketsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketsResponse/markets> ;
    sh:name "markets" ;
    sh:description "List of markets" ;
    sh:node shopify:MarketShape ;
    sh:class shopify:Market ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Market List Success Response
shopify:MarketListSuccessResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketListSuccessResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketListSuccessResponse/statusCode> ;
    sh:name "status code" ;
    sh:datatype xsd:integer ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "200"^^xsd:integer ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketListSuccessResponse/markets> ;
    sh:name "markets" ;
    sh:node shopify:MarketsResponseShape ;
    sh:class shopify:MarketsResponse ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Market Create Success Response
shopify:MarketCreateSuccessResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketCreateSuccessResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketCreateSuccessResponse/statusCode> ;
    sh:name "status code" ;
    sh:datatype xsd:integer ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "201"^^xsd:integer ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketCreateSuccessResponse/market> ;
    sh:name "market" ;
    sh:node shopify:MarketResponseShape ;
    sh:class shopify:MarketResponse ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Market Get Success Response
shopify:MarketGetSuccessResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketGetSuccessResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketGetSuccessResponse/statusCode> ;
    sh:name "status code" ;
    sh:datatype xsd:integer ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "200"^^xsd:integer ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketGetSuccessResponse/market> ;
    sh:name "market" ;
    sh:node shopify:MarketResponseShape ;
    sh:class shopify:MarketResponse ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Market Delete Success Response
shopify:MarketDeleteSuccessResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketDeleteSuccessResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketDeleteSuccessResponse/statusCode> ;
    sh:name "status code" ;
    sh:datatype xsd:integer ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "200"^^xsd:integer ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketDeleteSuccessResponse/body> ;
    sh:name "body" ;
    sh:node <https://relay.inferal.com/ontology/shopify/inline/Shopify.MarketDeleteSuccessResponse/bodyShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/inline/Shopify.MarketDeleteSuccessResponse/body> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Metafield Definition Response
shopify:MetafieldDefinitionResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MetafieldDefinitionResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinitionResponse/metafieldDefinition> ;
    sh:name "metafield definition" ;
    sh:description "Metafield definition" ;
    sh:node shopify:MetafieldDefinitionShape ;
    sh:class shopify:MetafieldDefinition ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Metafield Definitions Response
shopify:MetafieldDefinitionsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MetafieldDefinitionsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinitionsResponse/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:description "List of metafield definitions" ;
    sh:node shopify:MetafieldDefinitionShape ;
    sh:class shopify:MetafieldDefinition ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Metafield Definition Count Response
shopify:MetafieldDefinitionCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MetafieldDefinitionCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinitionCountResponse/count> ;
    sh:name "count" ;
    sh:description "Metafield definition count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Deprecated Api Calls Response
shopify:DeprecatedApiCallsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:DeprecatedApiCallsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallsResponse/dataUpdatedAt> ;
    sh:name "data updated at" ;
    sh:description "Date and time when the data was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DeprecatedApiCallsResponse/deprecatedApiCalls> ;
    sh:name "deprecated api calls" ;
    sh:description "List of deprecated API calls" ;
    sh:node shopify:DeprecatedApiCallEntryShape ;
    sh:class shopify:DeprecatedApiCallEntry ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Event Response
shopify:EventResponseShape a sh:NodeShape ;
  sh:targetClass shopify:EventResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EventResponse/event> ;
    sh:name "event" ;
    sh:description "Event" ;
    sh:node shopify:EventShape ;
    sh:class shopify:Event ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Events Response
shopify:EventsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:EventsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EventsResponse/events> ;
    sh:name "events" ;
    sh:description "List of events" ;
    sh:node shopify:EventShape ;
    sh:class shopify:Event ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Event Count Response
shopify:EventCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:EventCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.EventCountResponse/count> ;
    sh:name "count" ;
    sh:description "Event count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Metafield Response
shopify:MetafieldResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MetafieldResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldResponse/metafield> ;
    sh:name "metafield" ;
    sh:description "Metafield" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Metafields Response
shopify:MetafieldsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MetafieldsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldsResponse/metafields> ;
    sh:name "metafields" ;
    sh:description "List of metafields" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Metafield Count Response
shopify:MetafieldCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MetafieldCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldCountResponse/count> ;
    sh:name "count" ;
    sh:description "Metafield count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Collection Listing Response
shopify:CollectionListingResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CollectionListingResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListingResponse/collectionListing> ;
    sh:name "collection listing" ;
    sh:description "Collection listing" ;
    sh:node shopify:CollectionListingShape ;
    sh:class shopify:CollectionListing ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Collection Listings Response
shopify:CollectionListingsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CollectionListingsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListingsResponse/collectionListings> ;
    sh:name "collection listings" ;
    sh:description "List of collection listings" ;
    sh:node shopify:CollectionListingShape ;
    sh:class shopify:CollectionListing ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Listing Response
shopify:ProductListingResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductListingResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListingResponse/productListing> ;
    sh:name "product listing" ;
    sh:description "Product listing" ;
    sh:node shopify:ProductListingShape ;
    sh:class shopify:ProductListing ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Listings Response
shopify:ProductListingsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductListingsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListingsResponse/productListings> ;
    sh:name "product listings" ;
    sh:description "List of product listings" ;
    sh:node shopify:ProductListingShape ;
    sh:class shopify:ProductListing ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Listing Count Response
shopify:ProductListingCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ProductListingCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListingCountResponse/count> ;
    sh:name "count" ;
    sh:description "Product listing count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Checkout Response
shopify:CheckoutResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CheckoutResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CheckoutResponse/checkout> ;
    sh:name "checkout" ;
    sh:description "Checkout" ;
    sh:node shopify:CheckoutShape ;
    sh:class shopify:Checkout ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shipping Rates Response
shopify:ShippingRatesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShippingRatesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingRatesResponse/shippingRates> ;
    sh:name "shipping rates" ;
    sh:description "List of available shipping rates" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Payment Response
shopify:PaymentResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PaymentResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PaymentResponse/payment> ;
    sh:name "payment" ;
    sh:description "Payment" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Payments Response
shopify:PaymentsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:PaymentsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.PaymentsResponse/payments> ;
    sh:name "payments" ;
    sh:description "List of payments" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Shopify Payments Payout Response
shopify:ShopifyPaymentsPayoutResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsPayoutResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayoutResponse/payout> ;
    sh:name "payout" ;
    sh:description "Payout" ;
    sh:node shopify:ShopifyPaymentsPayoutShape ;
    sh:class shopify:ShopifyPaymentsPayout ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shopify Payments Payouts Response
shopify:ShopifyPaymentsPayoutsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsPayoutsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsPayoutsResponse/payouts> ;
    sh:name "payouts" ;
    sh:description "List of payouts" ;
    sh:node shopify:ShopifyPaymentsPayoutShape ;
    sh:class shopify:ShopifyPaymentsPayout ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Shopify Payments Balance Response
shopify:ShopifyPaymentsBalanceResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsBalanceResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceResponse/balance> ;
    sh:name "balance" ;
    sh:description "Balance" ;
    sh:node shopify:ShopifyPaymentsBalanceShape ;
    sh:class shopify:ShopifyPaymentsBalance ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Shopify Payments Dispute Response
shopify:ShopifyPaymentsDisputeResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsDisputeResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDisputeResponse/dispute> ;
    sh:name "dispute" ;
    sh:description "Dispute" ;
    sh:node shopify:ShopifyPaymentsDisputeShape ;
    sh:class shopify:ShopifyPaymentsDispute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Shopify Payments Disputes Response
shopify:ShopifyPaymentsDisputesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsDisputesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsDisputesResponse/disputes> ;
    sh:name "disputes" ;
    sh:description "List of disputes" ;
    sh:node shopify:ShopifyPaymentsDisputeShape ;
    sh:class shopify:ShopifyPaymentsDispute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Shopify Payments Balance Transactions Response
shopify:ShopifyPaymentsBalanceTransactionsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ShopifyPaymentsBalanceTransactionsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyPaymentsBalanceTransactionsResponse/balanceTransactions> ;
    sh:name "balance transactions" ;
    sh:description "List of balance transactions" ;
    sh:node shopify:ShopifyPaymentsBalanceTransactionShape ;
    sh:class shopify:ShopifyPaymentsBalanceTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Access Scopes Response
shopify:AccessScopesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:AccessScopesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AccessScopesResponse/accessScopes> ;
    sh:name "access scopes" ;
    sh:description "List of access scopes" ;
    sh:node shopify:AccessScopeShape ;
    sh:class shopify:AccessScope ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Storefront Access Token Response
shopify:StorefrontAccessTokenResponseShape a sh:NodeShape ;
  sh:targetClass shopify:StorefrontAccessTokenResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessTokenResponse/storefrontAccessToken> ;
    sh:name "storefront access token" ;
    sh:description "Storefront access token" ;
    sh:node shopify:StorefrontAccessTokenShape ;
    sh:class shopify:StorefrontAccessToken ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Storefront Access Tokens Response
shopify:StorefrontAccessTokensResponseShape a sh:NodeShape ;
  sh:targetClass shopify:StorefrontAccessTokensResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.StorefrontAccessTokensResponse/storefrontAccessTokens> ;
    sh:name "storefront access tokens" ;
    sh:description "List of storefront access tokens" ;
    sh:node shopify:StorefrontAccessTokenShape ;
    sh:class shopify:StorefrontAccessToken ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Application Charge Response
shopify:ApplicationChargeResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ApplicationChargeResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationChargeResponse/applicationCharge> ;
    sh:name "application charge" ;
    sh:description "Application charge" ;
    sh:node shopify:ApplicationChargeShape ;
    sh:class shopify:ApplicationCharge ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Application Charges Response
shopify:ApplicationChargesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ApplicationChargesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationChargesResponse/applicationCharges> ;
    sh:name "application charges" ;
    sh:description "List of application charges" ;
    sh:node shopify:ApplicationChargeShape ;
    sh:class shopify:ApplicationCharge ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Application Credit Response
shopify:ApplicationCreditResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ApplicationCreditResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCreditResponse/applicationCredit> ;
    sh:name "application credit" ;
    sh:description "Application credit" ;
    sh:node shopify:ApplicationCreditShape ;
    sh:class shopify:ApplicationCredit ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Application Credits Response
shopify:ApplicationCreditsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ApplicationCreditsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ApplicationCreditsResponse/applicationCredits> ;
    sh:name "application credits" ;
    sh:description "List of application credits" ;
    sh:node shopify:ApplicationCreditShape ;
    sh:class shopify:ApplicationCredit ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Recurring Application Charge Response
shopify:RecurringApplicationChargeResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RecurringApplicationChargeResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationChargeResponse/recurringApplicationCharge> ;
    sh:name "recurring application charge" ;
    sh:description "Recurring application charge" ;
    sh:node shopify:RecurringApplicationChargeShape ;
    sh:class shopify:RecurringApplicationCharge ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Recurring Application Charges Response
shopify:RecurringApplicationChargesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:RecurringApplicationChargesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.RecurringApplicationChargesResponse/recurringApplicationCharges> ;
    sh:name "recurring application charges" ;
    sh:description "List of recurring application charges" ;
    sh:node shopify:RecurringApplicationChargeShape ;
    sh:class shopify:RecurringApplicationCharge ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Usage Charge Response
shopify:UsageChargeResponseShape a sh:NodeShape ;
  sh:targetClass shopify:UsageChargeResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UsageChargeResponse/usageCharge> ;
    sh:name "usage charge" ;
    sh:description "Usage charge" ;
    sh:node shopify:UsageChargeShape ;
    sh:class shopify:UsageCharge ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Usage Charges Response
shopify:UsageChargesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:UsageChargesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UsageChargesResponse/usageCharges> ;
    sh:name "usage charges" ;
    sh:description "List of usage charges" ;
    sh:node shopify:UsageChargeShape ;
    sh:class shopify:UsageCharge ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Customer Saved Search Response
shopify:CustomerSavedSearchResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerSavedSearchResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerSavedSearchResponse/customerSavedSearch> ;
    sh:name "customer saved search" ;
    sh:description "Customer saved search" ;
    sh:node shopify:CustomerSavedSearchShape ;
    sh:class shopify:CustomerSavedSearch ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Saved Searches Response
shopify:CustomerSavedSearchesResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerSavedSearchesResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerSavedSearchesResponse/customerSavedSearches> ;
    sh:name "customer saved searches" ;
    sh:description "List of customer saved searches" ;
    sh:node shopify:CustomerSavedSearchShape ;
    sh:class shopify:CustomerSavedSearch ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Customer Saved Search Count Response
shopify:CustomerSavedSearchCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerSavedSearchCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CustomerSavedSearchCountResponse/count> ;
    sh:name "count" ;
    sh:description "Customer saved search count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Marketing Event Response
shopify:MarketingEventResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketingEventResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEventResponse/marketingEvent> ;
    sh:name "marketing event" ;
    sh:description "Marketing event" ;
    sh:node shopify:MarketingEventShape ;
    sh:class shopify:MarketingEvent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Marketing Events Response
shopify:MarketingEventsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketingEventsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEventsResponse/marketingEvents> ;
    sh:name "marketing events" ;
    sh:description "List of marketing events" ;
    sh:node shopify:MarketingEventShape ;
    sh:class shopify:MarketingEvent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Marketing Event Count Response
shopify:MarketingEventCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:MarketingEventCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEventCountResponse/count> ;
    sh:name "count" ;
    sh:description "Marketing event count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Abandoned Checkouts Response
shopify:AbandonedCheckoutsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:AbandonedCheckoutsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckoutsResponse/checkouts> ;
    sh:name "checkouts" ;
    sh:description "List of abandoned checkouts" ;
    sh:node shopify:AbandonedCheckoutShape ;
    sh:class shopify:AbandonedCheckout ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Abandoned Checkout Count Response
shopify:AbandonedCheckoutCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:AbandonedCheckoutCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckoutCountResponse/count> ;
    sh:name "count" ;
    sh:description "Abandoned checkout count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Comment Response
shopify:CommentResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CommentResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CommentResponse/comment> ;
    sh:name "comment" ;
    sh:description "Comment" ;
    sh:class shopify:Comment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Comments Response
shopify:CommentsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CommentsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CommentsResponse/comments> ;
    sh:name "comments" ;
    sh:description "List of comments" ;
    sh:class shopify:Comment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Comment Count Response
shopify:CommentCountResponseShape a sh:NodeShape ;
  sh:targetClass shopify:CommentCountResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.CommentCountResponse/count> ;
    sh:name "count" ;
    sh:description "Comment count" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Report Response
shopify:ReportResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ReportResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ReportResponse/report> ;
    sh:name "report" ;
    sh:description "Report" ;
    sh:node shopify:ReportShape ;
    sh:class shopify:Report ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Reports Response
shopify:ReportsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ReportsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ReportsResponse/reports> ;
    sh:name "reports" ;
    sh:description "List of reports" ;
    sh:node shopify:ReportShape ;
    sh:class shopify:Report ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Resource Feedback Response
shopify:ResourceFeedbackResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ResourceFeedbackResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedbackResponse/resourceFeedback> ;
    sh:name "resource feedback" ;
    sh:description "Resource feedback" ;
    sh:node shopify:ResourceFeedbackShape ;
    sh:class shopify:ResourceFeedback ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Resource Feedback List Response
shopify:ResourceFeedbackListResponseShape a sh:NodeShape ;
  sh:targetClass shopify:ResourceFeedbackListResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.ResourceFeedbackListResponse/resourceFeedback> ;
    sh:name "resource feedback" ;
    sh:description "List of resource feedback" ;
    sh:node shopify:ResourceFeedbackShape ;
    sh:class shopify:ResourceFeedback ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Tender Transactions Response
shopify:TenderTransactionsResponseShape a sh:NodeShape ;
  sh:targetClass shopify:TenderTransactionsResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransactionsResponse/tenderTransactions> ;
    sh:name "tender transactions" ;
    sh:description "List of tender transactions" ;
    sh:node shopify:TenderTransactionShape ;
    sh:class shopify:TenderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for User Response
shopify:UserResponseShape a sh:NodeShape ;
  sh:targetClass shopify:UserResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UserResponse/user> ;
    sh:name "user" ;
    sh:description "User" ;
    sh:node shopify:UserShape ;
    sh:class shopify:User ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Users Response
shopify:UsersResponseShape a sh:NodeShape ;
  sh:targetClass shopify:UsersResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.UsersResponse/users> ;
    sh:name "users" ;
    sh:description "List of users" ;
    sh:node shopify:UserShape ;
    sh:class shopify:User ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Created Event
shopify:ProductCreatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:ProductCreatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/id> ;
    sh:name "id" ;
    sh:description "Product ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/title> ;
    sh:name "title" ;
    sh:description "Product title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/bodyHtml> ;
    sh:name "body html" ;
    sh:description "Description of the product in HTML" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/vendor> ;
    sh:name "vendor" ;
    sh:description "Name of the product vendor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/productType> ;
    sh:name "product type" ;
    sh:description "Categorization of the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/status> ;
    sh:name "status" ;
    sh:description "Product status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "active" "archived" "draft" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/tags> ;
    sh:name "tags" ;
    sh:description "Comma-separated list of tags" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template for the product page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publishedScope> ;
    sh:name "published scope" ;
    sh:description "Whether the product is published to the Point of Sale channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the product was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the product was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the product was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/variants> ;
    sh:name "variants" ;
    sh:description "Product variants" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/options> ;
    sh:name "options" ;
    sh:description "Product options" ;
    sh:node shopify:ProductOptionShape ;
    sh:class shopify:ProductOption ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/images> ;
    sh:name "images" ;
    sh:description "Product images" ;
    sh:node shopify:ProductImageShape ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/image> ;
    sh:name "image" ;
    sh:description "Primary product image" ;
    sh:node shopify:ProductImageShape ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/description> ;
    sh:name "description" ;
    sh:description "Plaintext description of the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/descriptionPlainSummary> ;
    sh:name "description plain summary" ;
    sh:description "Truncated plaintext description for summaries" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/customProductType> ;
    sh:name "custom product type" ;
    sh:description "Custom product type specified by the merchant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/defaultCursor> ;
    sh:name "default cursor" ;
    sh:description "Default cursor for paginating through connections" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/giftCardTemplateSuffix> ;
    sh:name "gift card template suffix" ;
    sh:description "Suffix of the Liquid template for gift card products" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/hasOnlyDefaultVariant> ;
    sh:name "has only default variant" ;
    sh:description "Whether the product has only a single default variant" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/hasOutOfStockVariants> ;
    sh:name "has out of stock variants" ;
    sh:description "Whether the product has any variants that are out of stock" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/hasVariantsThatRequiresComponents> ;
    sh:name "has variants that requires components" ;
    sh:description "Whether the product has variants that require components" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/isGiftCard> ;
    sh:name "is gift card" ;
    sh:description "Whether the product is a gift card" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/requiresSellingPlan> ;
    sh:name "requires selling plan" ;
    sh:description "Whether a selling plan is required to purchase this product" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/tracksInventory> ;
    sh:name "tracks inventory" ;
    sh:description "Whether inventory is tracked for this product" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/totalInventory> ;
    sh:name "total inventory" ;
    sh:description "Total quantity of inventory across all variants and locations" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/totalVariants> ;
    sh:name "total variants" ;
    sh:description "Total number of variants for this product" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:description "Legacy resource ID for backwards compatibility" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/onlineStorePreviewUrl> ;
    sh:name "online store preview url" ;
    sh:description "Preview URL for the product on the online store" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/onlineStoreUrl> ;
    sh:name "online store url" ;
    sh:description "URL for the product on the online store" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/storefrontId> ;
    sh:name "storefront id" ;
    sh:description "Storefront API ID for the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/availablePublicationsCount> ;
    sh:name "available publications count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/graphqlBodyHtml> ;
    sh:name "graphql body html" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/bundleComponents> ;
    sh:name "bundle components" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/category> ;
    sh:name "category" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/collections> ;
    sh:name "collections" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/combinedListing> ;
    sh:name "combined listing" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/combinedListingRole> ;
    sh:name "combined listing role" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/compareAtPriceRange> ;
    sh:name "compare at price range" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/contextualPricing> ;
    sh:name "contextual pricing" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/featuredImage> ;
    sh:name "featured image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/featuredMedia> ;
    sh:name "featured media" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/feedback> ;
    sh:name "feedback" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/inCollection> ;
    sh:name "in collection" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/media> ;
    sh:name "media" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/mediaCount> ;
    sh:name "media count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/priceRange> ;
    sh:name "price range" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/priceRangeV2> ;
    sh:name "price range v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/productCategory> ;
    sh:name "product category" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/productPublications> ;
    sh:name "product publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publicationCount> ;
    sh:name "publication count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publications> ;
    sh:name "publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publishedInContext> ;
    sh:name "published in context" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publishedOnChannel> ;
    sh:name "published on channel" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publishedOnCurrentChannel> ;
    sh:name "published on current channel" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publishedOnCurrentPublication> ;
    sh:name "published on current publication" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/publishedOnPublication> ;
    sh:name "published on publication" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/resourcePublicationOnCurrentPublication> ;
    sh:name "resource publication on current publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/resourcePublications> ;
    sh:name "resource publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/resourcePublicationsCount> ;
    sh:name "resource publications count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/resourcePublicationsV2> ;
    sh:name "resource publications v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/restrictedForResource> ;
    sh:name "restricted for resource" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/sellingPlanGroupCount> ;
    sh:name "selling plan group count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/sellingPlanGroups> ;
    sh:name "selling plan groups" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/sellingPlanGroupsCount> ;
    sh:name "selling plan groups count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/seo> ;
    sh:name "seo" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/standardizedProductType> ;
    sh:name "standardized product type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/unpublishedChannels> ;
    sh:name "unpublished channels" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/unpublishedPublications> ;
    sh:name "unpublished publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductCreatedEvent/variantsCount> ;
    sh:name "variants count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Updated Event
shopify:ProductUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:ProductUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/id> ;
    sh:name "id" ;
    sh:description "Product ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/title> ;
    sh:name "title" ;
    sh:description "Product title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/bodyHtml> ;
    sh:name "body html" ;
    sh:description "Description of the product in HTML" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/vendor> ;
    sh:name "vendor" ;
    sh:description "Name of the product vendor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/productType> ;
    sh:name "product type" ;
    sh:description "Categorization of the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly unique handle" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/status> ;
    sh:name "status" ;
    sh:description "Product status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "active" "archived" "draft" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/tags> ;
    sh:name "tags" ;
    sh:description "Comma-separated list of tags" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/templateSuffix> ;
    sh:name "template suffix" ;
    sh:description "Suffix of the Liquid template for the product page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publishedScope> ;
    sh:name "published scope" ;
    sh:description "Whether the product is published to the Point of Sale channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publishedAt> ;
    sh:name "published at" ;
    sh:description "Date and time when the product was published" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the product was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the product was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/variants> ;
    sh:name "variants" ;
    sh:description "Product variants" ;
    sh:node shopify:ProductVariantShape ;
    sh:class shopify:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/options> ;
    sh:name "options" ;
    sh:description "Product options" ;
    sh:node shopify:ProductOptionShape ;
    sh:class shopify:ProductOption ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/images> ;
    sh:name "images" ;
    sh:description "Product images" ;
    sh:node shopify:ProductImageShape ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/image> ;
    sh:name "image" ;
    sh:description "Primary product image" ;
    sh:node shopify:ProductImageShape ;
    sh:class shopify:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/description> ;
    sh:name "description" ;
    sh:description "Plaintext description of the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/descriptionPlainSummary> ;
    sh:name "description plain summary" ;
    sh:description "Truncated plaintext description for summaries" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/customProductType> ;
    sh:name "custom product type" ;
    sh:description "Custom product type specified by the merchant" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/defaultCursor> ;
    sh:name "default cursor" ;
    sh:description "Default cursor for paginating through connections" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/giftCardTemplateSuffix> ;
    sh:name "gift card template suffix" ;
    sh:description "Suffix of the Liquid template for gift card products" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/hasOnlyDefaultVariant> ;
    sh:name "has only default variant" ;
    sh:description "Whether the product has only a single default variant" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/hasOutOfStockVariants> ;
    sh:name "has out of stock variants" ;
    sh:description "Whether the product has any variants that are out of stock" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/hasVariantsThatRequiresComponents> ;
    sh:name "has variants that requires components" ;
    sh:description "Whether the product has variants that require components" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/isGiftCard> ;
    sh:name "is gift card" ;
    sh:description "Whether the product is a gift card" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/requiresSellingPlan> ;
    sh:name "requires selling plan" ;
    sh:description "Whether a selling plan is required to purchase this product" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/tracksInventory> ;
    sh:name "tracks inventory" ;
    sh:description "Whether inventory is tracked for this product" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/totalInventory> ;
    sh:name "total inventory" ;
    sh:description "Total quantity of inventory across all variants and locations" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/totalVariants> ;
    sh:name "total variants" ;
    sh:description "Total number of variants for this product" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:description "Legacy resource ID for backwards compatibility" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/onlineStorePreviewUrl> ;
    sh:name "online store preview url" ;
    sh:description "Preview URL for the product on the online store" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/onlineStoreUrl> ;
    sh:name "online store url" ;
    sh:description "URL for the product on the online store" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/storefrontId> ;
    sh:name "storefront id" ;
    sh:description "Storefront API ID for the product" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/availablePublicationsCount> ;
    sh:name "available publications count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/graphqlBodyHtml> ;
    sh:name "graphql body html" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/bundleComponents> ;
    sh:name "bundle components" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/category> ;
    sh:name "category" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/collections> ;
    sh:name "collections" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/combinedListing> ;
    sh:name "combined listing" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/combinedListingRole> ;
    sh:name "combined listing role" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/compareAtPriceRange> ;
    sh:name "compare at price range" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/contextualPricing> ;
    sh:name "contextual pricing" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/featuredImage> ;
    sh:name "featured image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/featuredMedia> ;
    sh:name "featured media" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/feedback> ;
    sh:name "feedback" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/inCollection> ;
    sh:name "in collection" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/media> ;
    sh:name "media" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/mediaCount> ;
    sh:name "media count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/priceRange> ;
    sh:name "price range" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/priceRangeV2> ;
    sh:name "price range v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/productCategory> ;
    sh:name "product category" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/productPublications> ;
    sh:name "product publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publicationCount> ;
    sh:name "publication count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publications> ;
    sh:name "publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publishedInContext> ;
    sh:name "published in context" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publishedOnChannel> ;
    sh:name "published on channel" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publishedOnCurrentChannel> ;
    sh:name "published on current channel" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publishedOnCurrentPublication> ;
    sh:name "published on current publication" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/publishedOnPublication> ;
    sh:name "published on publication" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/resourcePublicationOnCurrentPublication> ;
    sh:name "resource publication on current publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/resourcePublications> ;
    sh:name "resource publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/resourcePublicationsCount> ;
    sh:name "resource publications count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/resourcePublicationsV2> ;
    sh:name "resource publications v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/restrictedForResource> ;
    sh:name "restricted for resource" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/sellingPlanGroupCount> ;
    sh:name "selling plan group count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/sellingPlanGroups> ;
    sh:name "selling plan groups" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/sellingPlanGroupsCount> ;
    sh:name "selling plan groups count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/seo> ;
    sh:name "seo" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/standardizedProductType> ;
    sh:name "standardized product type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/translations> ;
    sh:name "translations" ;
    sh:node shopify:TranslationShape ;
    sh:class shopify:Translation ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/unpublishedChannels> ;
    sh:name "unpublished channels" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/unpublishedPublications> ;
    sh:name "unpublished publications" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductUpdatedEvent/variantsCount> ;
    sh:name "variants count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Deleted Event
shopify:ProductDeletedEventShape a sh:NodeShape ;
  sh:targetClass shopify:ProductDeletedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ProductDeletedEvent/id> ;
    sh:name "id" ;
    sh:description "Deleted product ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Created Event
shopify:OrderCreatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:OrderCreatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/id> ;
    sh:name "id" ;
    sh:description "Unique order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/orderNumber> ;
    sh:name "order number" ;
    sh:description "Shop-specific order number (e.g. 1001)" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/name> ;
    sh:name "name" ;
    sh:description "Order name including prefix (e.g. #1001)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/financialStatus> ;
    sh:name "financial status" ;
    sh:description "Financial status of the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "pending" "authorized" "partially_paid" "paid" "partially_refunded" "refunded" "voided" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment status of the order (null means unfulfilled)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fulfilled" "partial" "unfulfilled" "restocked" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the order including taxes and discounts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Price of the order after discounts but before shipping and taxes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalTax> ;
    sh:name "total tax" ;
    sh:description "Sum of all taxes applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalDiscounts> ;
    sh:name "total discounts" ;
    sh:description "Total discounts applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalLineItemsPrice> ;
    sh:name "total line items price" ;
    sh:description "Sum of all line item prices" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the order" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount codes applied to the order" ;
    sh:node shopify:DiscountCodeShape ;
    sh:class shopify:DiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines on the order" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/shippingLines> ;
    sh:name "shipping lines" ;
    sh:description "Shipping lines on the order" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/note> ;
    sh:name "note" ;
    sh:description "Optional note attached to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags attached to the order (comma-separated)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/cancelReason> ;
    sh:name "cancel reason" ;
    sh:description "Reason the order was cancelled: customer, fraud, inventory, declined, other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Date and time when the order was cancelled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/closedAt> ;
    sh:name "closed at" ;
    sh:description "Date and time when the order was closed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the order was processed" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the order was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the order was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/sourceName> ;
    sh:name "source name" ;
    sh:description "Where the order originated (e.g. web, pos, shopify_draft_order)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/gateway> ;
    sh:name "gateway" ;
    sh:description "Payment gateway used" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test order" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/confirmed> ;
    sh:name "confirmed" ;
    sh:description "Whether the order has been confirmed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/buyerAcceptsMarketing> ;
    sh:name "buyer accepts marketing" ;
    sh:description "Whether the buyer accepted marketing" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalWeight> ;
    sh:name "total weight" ;
    sh:description "Total weight of the order in grams" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/token> ;
    sh:name "token" ;
    sh:description "Unique token for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/appId> ;
    sh:name "app id" ;
    sh:description "ID of the app that created the order" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/browserIp> ;
    sh:name "browser ip" ;
    sh:description "IP address of the browser used to place the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/landingSite> ;
    sh:name "landing site" ;
    sh:description "URL of the page where the buyer landed when entering the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/referringSite> ;
    sh:name "referring site" ;
    sh:description "Website that referred the customer to the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/discountApplications> ;
    sh:name "discount applications" ;
    sh:description "Discount applications on the order" ;
    sh:node shopify:DiscountApplicationShape ;
    sh:class shopify:DiscountApplication ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/fulfillments> ;
    sh:name "fulfillments" ;
    sh:description "Fulfillments associated with the order" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/refunds> ;
    sh:name "refunds" ;
    sh:description "Refunds applied to the order" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalPrice> ;
    sh:name "current total price" ;
    sh:description "Current total price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentSubtotalPrice> ;
    sh:name "current subtotal price" ;
    sh:description "Current subtotal price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalTax> ;
    sh:name "current total tax" ;
    sh:description "Current total tax after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalDiscounts> ;
    sh:name "current total discounts" ;
    sh:description "Current total discounts after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalPriceSet> ;
    sh:name "current total price set" ;
    sh:description "Current total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentSubtotalPriceSet> ;
    sh:name "current subtotal price set" ;
    sh:description "Current subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalTaxSet> ;
    sh:name "current total tax set" ;
    sh:description "Current total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalDiscountsSet> ;
    sh:name "current total discounts set" ;
    sh:description "Current total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/paymentGatewayNames> ;
    sh:name "payment gateway names" ;
    sh:description "List of payment gateways used for the order" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/processingMethod> ;
    sh:name "processing method" ;
    sh:description "How the payment was processed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/clientDetails> ;
    sh:name "client details" ;
    sh:description "Details about the client that created the order" ;
    sh:node shopify:ClientDetailsShape ;
    sh:class shopify:ClientDetails ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the order subtotal" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/orderStatusUrl> ;
    sh:name "order status url" ;
    sh:description "URL for the order status page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalTipReceived> ;
    sh:name "total tip received" ;
    sh:description "Total tip amount received" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/number> ;
    sh:name "number" ;
    sh:description "Sequential order number for the shop" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/confirmationNumber> ;
    sh:name "confirmation number" ;
    sh:description "Confirmation number for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/canMarkAsPaid> ;
    sh:name "can mark as paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/canNotifyCustomer> ;
    sh:name "can notify customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/capturable> ;
    sh:name "capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/clientIp> ;
    sh:name "client ip" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/closed> ;
    sh:name "closed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentSubtotalLineItemsQuantity> ;
    sh:name "current subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalWeight> ;
    sh:name "current total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/customerAcceptsMarketing> ;
    sh:name "customer accepts marketing" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/customerLocale> ;
    sh:name "customer locale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/discountCode> ;
    sh:name "discount code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/dutiesIncluded> ;
    sh:name "duties included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/edited> ;
    sh:name "edited" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/estimatedTaxes> ;
    sh:name "estimated taxes" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/fulfillable> ;
    sh:name "fulfillable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/fullyPaid> ;
    sh:name "fully paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/landingPageDisplayText> ;
    sh:name "landing page display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/landingPageUrl> ;
    sh:name "landing page url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/merchantEditable> ;
    sh:name "merchant editable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/merchantEditableErrors> ;
    sh:name "merchant editable errors" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/referralCode> ;
    sh:name "referral code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/referrerDisplayText> ;
    sh:name "referrer display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/referrerUrl> ;
    sh:name "referrer url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/refundable> ;
    sh:name "refundable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/registeredSourceUrl> ;
    sh:name "registered source url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/restockable> ;
    sh:name "restockable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/sourceIdentifier> ;
    sh:name "source identifier" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/statusPageUrl> ;
    sh:name "status page url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/subtotalLineItemsQuantity> ;
    sh:name "subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/unpaid> ;
    sh:name "unpaid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/additionalFees> ;
    sh:name "additional fees" ;
    sh:node shopify:AdditionalFeeShape ;
    sh:class shopify:AdditionalFee ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/agreements> ;
    sh:name "agreements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/alerts> ;
    sh:name "alerts" ;
    sh:node shopify:ResourceAlertShape ;
    sh:class shopify:ResourceAlert ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/cancellation> ;
    sh:name "cancellation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/cartDiscountAmount> ;
    sh:name "cart discount amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/cartDiscountAmountSet> ;
    sh:name "cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/channel> ;
    sh:name "channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/channelInformation> ;
    sh:name "channel information" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentCartDiscountAmountSet> ;
    sh:name "current cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentShippingPriceSet> ;
    sh:name "current shipping price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTaxLines> ;
    sh:name "current tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalAdditionalFeesSet> ;
    sh:name "current total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/currentTotalDutiesSet> ;
    sh:name "current total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/customerJourney> ;
    sh:name "customer journey" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/customerJourneySummary> ;
    sh:name "customer journey summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/displayAddress> ;
    sh:name "display address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/displayFinancialStatus> ;
    sh:name "display financial status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/displayFulfillmentStatus> ;
    sh:name "display fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/disputes> ;
    sh:name "disputes" ;
    sh:node shopify:OrderDisputeSummaryShape ;
    sh:class shopify:OrderDisputeSummary ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/exchangeV2s> ;
    sh:name "exchange v2s" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/fulfillmentsCount> ;
    sh:name "fulfillments count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/merchantBusinessEntity> ;
    sh:name "merchant business entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/merchantOfRecordApp> ;
    sh:name "merchant of record app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/netPayment> ;
    sh:name "net payment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/netPaymentSet> ;
    sh:name "net payment set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/nonFulfillableLineItems> ;
    sh:name "non fulfillable line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/originalTotalAdditionalFeesSet> ;
    sh:name "original total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/originalTotalDutiesSet> ;
    sh:name "original total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/originalTotalPriceSet> ;
    sh:name "original total price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/paymentCollectionDetails> ;
    sh:name "payment collection details" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/paymentTerms> ;
    sh:name "payment terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/physicalLocation> ;
    sh:name "physical location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/publication> ;
    sh:name "publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/refundDiscrepancySet> ;
    sh:name "refund discrepancy set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/retailLocation> ;
    sh:name "retail location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/returnStatus> ;
    sh:name "return status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/returns> ;
    sh:name "returns" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/risk> ;
    sh:name "risk" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/riskLevel> ;
    sh:name "risk level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/risks> ;
    sh:name "risks" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/shippingLine> ;
    sh:name "shipping line" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/shopifyProtect> ;
    sh:name "shopify protect" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/suggestedRefund> ;
    sh:name "suggested refund" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalCapturable> ;
    sh:name "total capturable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalCapturableSet> ;
    sh:name "total capturable set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalCashRoundingAdjustment> ;
    sh:name "total cash rounding adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalOutstandingSet> ;
    sh:name "total outstanding set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalReceived> ;
    sh:name "total received" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalReceivedSet> ;
    sh:name "total received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalRefunded> ;
    sh:name "total refunded" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalRefundedSet> ;
    sh:name "total refunded set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalRefundedShippingSet> ;
    sh:name "total refunded shipping set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/totalTipReceivedSet> ;
    sh:name "total tip received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/transactions> ;
    sh:name "transactions" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCreatedEvent/transactionsCount> ;
    sh:name "transactions count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Updated Event
shopify:OrderUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:OrderUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/id> ;
    sh:name "id" ;
    sh:description "Unique order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/orderNumber> ;
    sh:name "order number" ;
    sh:description "Shop-specific order number (e.g. 1001)" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/name> ;
    sh:name "name" ;
    sh:description "Order name including prefix (e.g. #1001)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/financialStatus> ;
    sh:name "financial status" ;
    sh:description "Financial status of the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "pending" "authorized" "partially_paid" "paid" "partially_refunded" "refunded" "voided" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment status of the order (null means unfulfilled)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fulfilled" "partial" "unfulfilled" "restocked" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the order including taxes and discounts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Price of the order after discounts but before shipping and taxes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalTax> ;
    sh:name "total tax" ;
    sh:description "Sum of all taxes applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalDiscounts> ;
    sh:name "total discounts" ;
    sh:description "Total discounts applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalLineItemsPrice> ;
    sh:name "total line items price" ;
    sh:description "Sum of all line item prices" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the order" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount codes applied to the order" ;
    sh:node shopify:DiscountCodeShape ;
    sh:class shopify:DiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines on the order" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/shippingLines> ;
    sh:name "shipping lines" ;
    sh:description "Shipping lines on the order" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/note> ;
    sh:name "note" ;
    sh:description "Optional note attached to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags attached to the order (comma-separated)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/cancelReason> ;
    sh:name "cancel reason" ;
    sh:description "Reason the order was cancelled: customer, fraud, inventory, declined, other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Date and time when the order was cancelled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/closedAt> ;
    sh:name "closed at" ;
    sh:description "Date and time when the order was closed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the order was processed" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the order was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the order was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/sourceName> ;
    sh:name "source name" ;
    sh:description "Where the order originated (e.g. web, pos, shopify_draft_order)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/gateway> ;
    sh:name "gateway" ;
    sh:description "Payment gateway used" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test order" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/confirmed> ;
    sh:name "confirmed" ;
    sh:description "Whether the order has been confirmed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/buyerAcceptsMarketing> ;
    sh:name "buyer accepts marketing" ;
    sh:description "Whether the buyer accepted marketing" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalWeight> ;
    sh:name "total weight" ;
    sh:description "Total weight of the order in grams" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/token> ;
    sh:name "token" ;
    sh:description "Unique token for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/appId> ;
    sh:name "app id" ;
    sh:description "ID of the app that created the order" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/browserIp> ;
    sh:name "browser ip" ;
    sh:description "IP address of the browser used to place the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/landingSite> ;
    sh:name "landing site" ;
    sh:description "URL of the page where the buyer landed when entering the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/referringSite> ;
    sh:name "referring site" ;
    sh:description "Website that referred the customer to the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/discountApplications> ;
    sh:name "discount applications" ;
    sh:description "Discount applications on the order" ;
    sh:node shopify:DiscountApplicationShape ;
    sh:class shopify:DiscountApplication ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/fulfillments> ;
    sh:name "fulfillments" ;
    sh:description "Fulfillments associated with the order" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/refunds> ;
    sh:name "refunds" ;
    sh:description "Refunds applied to the order" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalPrice> ;
    sh:name "current total price" ;
    sh:description "Current total price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentSubtotalPrice> ;
    sh:name "current subtotal price" ;
    sh:description "Current subtotal price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalTax> ;
    sh:name "current total tax" ;
    sh:description "Current total tax after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalDiscounts> ;
    sh:name "current total discounts" ;
    sh:description "Current total discounts after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalPriceSet> ;
    sh:name "current total price set" ;
    sh:description "Current total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentSubtotalPriceSet> ;
    sh:name "current subtotal price set" ;
    sh:description "Current subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalTaxSet> ;
    sh:name "current total tax set" ;
    sh:description "Current total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalDiscountsSet> ;
    sh:name "current total discounts set" ;
    sh:description "Current total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/paymentGatewayNames> ;
    sh:name "payment gateway names" ;
    sh:description "List of payment gateways used for the order" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/processingMethod> ;
    sh:name "processing method" ;
    sh:description "How the payment was processed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/clientDetails> ;
    sh:name "client details" ;
    sh:description "Details about the client that created the order" ;
    sh:node shopify:ClientDetailsShape ;
    sh:class shopify:ClientDetails ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the order subtotal" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/orderStatusUrl> ;
    sh:name "order status url" ;
    sh:description "URL for the order status page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalTipReceived> ;
    sh:name "total tip received" ;
    sh:description "Total tip amount received" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/number> ;
    sh:name "number" ;
    sh:description "Sequential order number for the shop" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/confirmationNumber> ;
    sh:name "confirmation number" ;
    sh:description "Confirmation number for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/canMarkAsPaid> ;
    sh:name "can mark as paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/canNotifyCustomer> ;
    sh:name "can notify customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/capturable> ;
    sh:name "capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/clientIp> ;
    sh:name "client ip" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/closed> ;
    sh:name "closed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentSubtotalLineItemsQuantity> ;
    sh:name "current subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalWeight> ;
    sh:name "current total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/customerAcceptsMarketing> ;
    sh:name "customer accepts marketing" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/customerLocale> ;
    sh:name "customer locale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/discountCode> ;
    sh:name "discount code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/dutiesIncluded> ;
    sh:name "duties included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/edited> ;
    sh:name "edited" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/estimatedTaxes> ;
    sh:name "estimated taxes" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/fulfillable> ;
    sh:name "fulfillable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/fullyPaid> ;
    sh:name "fully paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/landingPageDisplayText> ;
    sh:name "landing page display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/landingPageUrl> ;
    sh:name "landing page url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/merchantEditable> ;
    sh:name "merchant editable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/merchantEditableErrors> ;
    sh:name "merchant editable errors" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/referralCode> ;
    sh:name "referral code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/referrerDisplayText> ;
    sh:name "referrer display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/referrerUrl> ;
    sh:name "referrer url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/refundable> ;
    sh:name "refundable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/registeredSourceUrl> ;
    sh:name "registered source url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/restockable> ;
    sh:name "restockable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/sourceIdentifier> ;
    sh:name "source identifier" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/statusPageUrl> ;
    sh:name "status page url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/subtotalLineItemsQuantity> ;
    sh:name "subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/unpaid> ;
    sh:name "unpaid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/additionalFees> ;
    sh:name "additional fees" ;
    sh:node shopify:AdditionalFeeShape ;
    sh:class shopify:AdditionalFee ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/agreements> ;
    sh:name "agreements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/alerts> ;
    sh:name "alerts" ;
    sh:node shopify:ResourceAlertShape ;
    sh:class shopify:ResourceAlert ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/cancellation> ;
    sh:name "cancellation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/cartDiscountAmount> ;
    sh:name "cart discount amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/cartDiscountAmountSet> ;
    sh:name "cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/channel> ;
    sh:name "channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/channelInformation> ;
    sh:name "channel information" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentCartDiscountAmountSet> ;
    sh:name "current cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentShippingPriceSet> ;
    sh:name "current shipping price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTaxLines> ;
    sh:name "current tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalAdditionalFeesSet> ;
    sh:name "current total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/currentTotalDutiesSet> ;
    sh:name "current total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/customerJourney> ;
    sh:name "customer journey" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/customerJourneySummary> ;
    sh:name "customer journey summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/displayAddress> ;
    sh:name "display address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/displayFinancialStatus> ;
    sh:name "display financial status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/displayFulfillmentStatus> ;
    sh:name "display fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/disputes> ;
    sh:name "disputes" ;
    sh:node shopify:OrderDisputeSummaryShape ;
    sh:class shopify:OrderDisputeSummary ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/exchangeV2s> ;
    sh:name "exchange v2s" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/fulfillmentsCount> ;
    sh:name "fulfillments count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/merchantBusinessEntity> ;
    sh:name "merchant business entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/merchantOfRecordApp> ;
    sh:name "merchant of record app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/netPayment> ;
    sh:name "net payment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/netPaymentSet> ;
    sh:name "net payment set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/nonFulfillableLineItems> ;
    sh:name "non fulfillable line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/originalTotalAdditionalFeesSet> ;
    sh:name "original total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/originalTotalDutiesSet> ;
    sh:name "original total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/originalTotalPriceSet> ;
    sh:name "original total price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/paymentCollectionDetails> ;
    sh:name "payment collection details" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/paymentTerms> ;
    sh:name "payment terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/physicalLocation> ;
    sh:name "physical location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/publication> ;
    sh:name "publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/refundDiscrepancySet> ;
    sh:name "refund discrepancy set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/retailLocation> ;
    sh:name "retail location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/returnStatus> ;
    sh:name "return status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/returns> ;
    sh:name "returns" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/risk> ;
    sh:name "risk" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/riskLevel> ;
    sh:name "risk level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/risks> ;
    sh:name "risks" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/shippingLine> ;
    sh:name "shipping line" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/shopifyProtect> ;
    sh:name "shopify protect" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/suggestedRefund> ;
    sh:name "suggested refund" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalCapturable> ;
    sh:name "total capturable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalCapturableSet> ;
    sh:name "total capturable set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalCashRoundingAdjustment> ;
    sh:name "total cash rounding adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalOutstandingSet> ;
    sh:name "total outstanding set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalReceived> ;
    sh:name "total received" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalReceivedSet> ;
    sh:name "total received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalRefunded> ;
    sh:name "total refunded" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalRefundedSet> ;
    sh:name "total refunded set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalRefundedShippingSet> ;
    sh:name "total refunded shipping set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/totalTipReceivedSet> ;
    sh:name "total tip received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/transactions> ;
    sh:name "transactions" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderUpdatedEvent/transactionsCount> ;
    sh:name "transactions count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Cancelled Event
shopify:OrderCancelledEventShape a sh:NodeShape ;
  sh:targetClass shopify:OrderCancelledEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/id> ;
    sh:name "id" ;
    sh:description "Unique order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/orderNumber> ;
    sh:name "order number" ;
    sh:description "Shop-specific order number (e.g. 1001)" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/name> ;
    sh:name "name" ;
    sh:description "Order name including prefix (e.g. #1001)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/financialStatus> ;
    sh:name "financial status" ;
    sh:description "Financial status of the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "pending" "authorized" "partially_paid" "paid" "partially_refunded" "refunded" "voided" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment status of the order (null means unfulfilled)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fulfilled" "partial" "unfulfilled" "restocked" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the order including taxes and discounts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Price of the order after discounts but before shipping and taxes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalTax> ;
    sh:name "total tax" ;
    sh:description "Sum of all taxes applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalDiscounts> ;
    sh:name "total discounts" ;
    sh:description "Total discounts applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalLineItemsPrice> ;
    sh:name "total line items price" ;
    sh:description "Sum of all line item prices" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the order" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount codes applied to the order" ;
    sh:node shopify:DiscountCodeShape ;
    sh:class shopify:DiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines on the order" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/shippingLines> ;
    sh:name "shipping lines" ;
    sh:description "Shipping lines on the order" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/note> ;
    sh:name "note" ;
    sh:description "Optional note attached to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags attached to the order (comma-separated)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/cancelReason> ;
    sh:name "cancel reason" ;
    sh:description "Reason the order was cancelled: customer, fraud, inventory, declined, other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Date and time when the order was cancelled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/closedAt> ;
    sh:name "closed at" ;
    sh:description "Date and time when the order was closed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the order was processed" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the order was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the order was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/sourceName> ;
    sh:name "source name" ;
    sh:description "Where the order originated (e.g. web, pos, shopify_draft_order)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/gateway> ;
    sh:name "gateway" ;
    sh:description "Payment gateway used" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test order" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/confirmed> ;
    sh:name "confirmed" ;
    sh:description "Whether the order has been confirmed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/buyerAcceptsMarketing> ;
    sh:name "buyer accepts marketing" ;
    sh:description "Whether the buyer accepted marketing" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalWeight> ;
    sh:name "total weight" ;
    sh:description "Total weight of the order in grams" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/token> ;
    sh:name "token" ;
    sh:description "Unique token for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/appId> ;
    sh:name "app id" ;
    sh:description "ID of the app that created the order" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/browserIp> ;
    sh:name "browser ip" ;
    sh:description "IP address of the browser used to place the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/landingSite> ;
    sh:name "landing site" ;
    sh:description "URL of the page where the buyer landed when entering the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/referringSite> ;
    sh:name "referring site" ;
    sh:description "Website that referred the customer to the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/discountApplications> ;
    sh:name "discount applications" ;
    sh:description "Discount applications on the order" ;
    sh:node shopify:DiscountApplicationShape ;
    sh:class shopify:DiscountApplication ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/fulfillments> ;
    sh:name "fulfillments" ;
    sh:description "Fulfillments associated with the order" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/refunds> ;
    sh:name "refunds" ;
    sh:description "Refunds applied to the order" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalPrice> ;
    sh:name "current total price" ;
    sh:description "Current total price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentSubtotalPrice> ;
    sh:name "current subtotal price" ;
    sh:description "Current subtotal price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalTax> ;
    sh:name "current total tax" ;
    sh:description "Current total tax after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalDiscounts> ;
    sh:name "current total discounts" ;
    sh:description "Current total discounts after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalPriceSet> ;
    sh:name "current total price set" ;
    sh:description "Current total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentSubtotalPriceSet> ;
    sh:name "current subtotal price set" ;
    sh:description "Current subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalTaxSet> ;
    sh:name "current total tax set" ;
    sh:description "Current total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalDiscountsSet> ;
    sh:name "current total discounts set" ;
    sh:description "Current total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/paymentGatewayNames> ;
    sh:name "payment gateway names" ;
    sh:description "List of payment gateways used for the order" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/processingMethod> ;
    sh:name "processing method" ;
    sh:description "How the payment was processed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/clientDetails> ;
    sh:name "client details" ;
    sh:description "Details about the client that created the order" ;
    sh:node shopify:ClientDetailsShape ;
    sh:class shopify:ClientDetails ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the order subtotal" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/orderStatusUrl> ;
    sh:name "order status url" ;
    sh:description "URL for the order status page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalTipReceived> ;
    sh:name "total tip received" ;
    sh:description "Total tip amount received" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/number> ;
    sh:name "number" ;
    sh:description "Sequential order number for the shop" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/confirmationNumber> ;
    sh:name "confirmation number" ;
    sh:description "Confirmation number for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/canMarkAsPaid> ;
    sh:name "can mark as paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/canNotifyCustomer> ;
    sh:name "can notify customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/capturable> ;
    sh:name "capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/clientIp> ;
    sh:name "client ip" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/closed> ;
    sh:name "closed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentSubtotalLineItemsQuantity> ;
    sh:name "current subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalWeight> ;
    sh:name "current total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/customerAcceptsMarketing> ;
    sh:name "customer accepts marketing" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/customerLocale> ;
    sh:name "customer locale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/discountCode> ;
    sh:name "discount code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/dutiesIncluded> ;
    sh:name "duties included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/edited> ;
    sh:name "edited" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/estimatedTaxes> ;
    sh:name "estimated taxes" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/fulfillable> ;
    sh:name "fulfillable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/fullyPaid> ;
    sh:name "fully paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/landingPageDisplayText> ;
    sh:name "landing page display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/landingPageUrl> ;
    sh:name "landing page url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/merchantEditable> ;
    sh:name "merchant editable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/merchantEditableErrors> ;
    sh:name "merchant editable errors" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/referralCode> ;
    sh:name "referral code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/referrerDisplayText> ;
    sh:name "referrer display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/referrerUrl> ;
    sh:name "referrer url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/refundable> ;
    sh:name "refundable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/registeredSourceUrl> ;
    sh:name "registered source url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/restockable> ;
    sh:name "restockable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/sourceIdentifier> ;
    sh:name "source identifier" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/statusPageUrl> ;
    sh:name "status page url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/subtotalLineItemsQuantity> ;
    sh:name "subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/unpaid> ;
    sh:name "unpaid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/additionalFees> ;
    sh:name "additional fees" ;
    sh:node shopify:AdditionalFeeShape ;
    sh:class shopify:AdditionalFee ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/agreements> ;
    sh:name "agreements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/alerts> ;
    sh:name "alerts" ;
    sh:node shopify:ResourceAlertShape ;
    sh:class shopify:ResourceAlert ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/cancellation> ;
    sh:name "cancellation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/cartDiscountAmount> ;
    sh:name "cart discount amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/cartDiscountAmountSet> ;
    sh:name "cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/channel> ;
    sh:name "channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/channelInformation> ;
    sh:name "channel information" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentCartDiscountAmountSet> ;
    sh:name "current cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentShippingPriceSet> ;
    sh:name "current shipping price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTaxLines> ;
    sh:name "current tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalAdditionalFeesSet> ;
    sh:name "current total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/currentTotalDutiesSet> ;
    sh:name "current total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/customerJourney> ;
    sh:name "customer journey" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/customerJourneySummary> ;
    sh:name "customer journey summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/displayAddress> ;
    sh:name "display address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/displayFinancialStatus> ;
    sh:name "display financial status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/displayFulfillmentStatus> ;
    sh:name "display fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/disputes> ;
    sh:name "disputes" ;
    sh:node shopify:OrderDisputeSummaryShape ;
    sh:class shopify:OrderDisputeSummary ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/exchangeV2s> ;
    sh:name "exchange v2s" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/fulfillmentsCount> ;
    sh:name "fulfillments count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/merchantBusinessEntity> ;
    sh:name "merchant business entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/merchantOfRecordApp> ;
    sh:name "merchant of record app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/netPayment> ;
    sh:name "net payment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/netPaymentSet> ;
    sh:name "net payment set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/nonFulfillableLineItems> ;
    sh:name "non fulfillable line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/originalTotalAdditionalFeesSet> ;
    sh:name "original total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/originalTotalDutiesSet> ;
    sh:name "original total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/originalTotalPriceSet> ;
    sh:name "original total price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/paymentCollectionDetails> ;
    sh:name "payment collection details" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/paymentTerms> ;
    sh:name "payment terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/physicalLocation> ;
    sh:name "physical location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/publication> ;
    sh:name "publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/refundDiscrepancySet> ;
    sh:name "refund discrepancy set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/retailLocation> ;
    sh:name "retail location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/returnStatus> ;
    sh:name "return status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/returns> ;
    sh:name "returns" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/risk> ;
    sh:name "risk" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/riskLevel> ;
    sh:name "risk level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/risks> ;
    sh:name "risks" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/shippingLine> ;
    sh:name "shipping line" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/shopifyProtect> ;
    sh:name "shopify protect" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/suggestedRefund> ;
    sh:name "suggested refund" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalCapturable> ;
    sh:name "total capturable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalCapturableSet> ;
    sh:name "total capturable set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalCashRoundingAdjustment> ;
    sh:name "total cash rounding adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalOutstandingSet> ;
    sh:name "total outstanding set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalReceived> ;
    sh:name "total received" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalReceivedSet> ;
    sh:name "total received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalRefunded> ;
    sh:name "total refunded" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalRefundedSet> ;
    sh:name "total refunded set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalRefundedShippingSet> ;
    sh:name "total refunded shipping set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/totalTipReceivedSet> ;
    sh:name "total tip received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/transactions> ;
    sh:name "transactions" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderCancelledEvent/transactionsCount> ;
    sh:name "transactions count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Fulfilled Event
shopify:OrderFulfilledEventShape a sh:NodeShape ;
  sh:targetClass shopify:OrderFulfilledEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/id> ;
    sh:name "id" ;
    sh:description "Unique order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/orderNumber> ;
    sh:name "order number" ;
    sh:description "Shop-specific order number (e.g. 1001)" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/name> ;
    sh:name "name" ;
    sh:description "Order name including prefix (e.g. #1001)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/financialStatus> ;
    sh:name "financial status" ;
    sh:description "Financial status of the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "pending" "authorized" "partially_paid" "paid" "partially_refunded" "refunded" "voided" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment status of the order (null means unfulfilled)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fulfilled" "partial" "unfulfilled" "restocked" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the order including taxes and discounts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Price of the order after discounts but before shipping and taxes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalTax> ;
    sh:name "total tax" ;
    sh:description "Sum of all taxes applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalDiscounts> ;
    sh:name "total discounts" ;
    sh:description "Total discounts applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalLineItemsPrice> ;
    sh:name "total line items price" ;
    sh:description "Sum of all line item prices" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the order" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount codes applied to the order" ;
    sh:node shopify:DiscountCodeShape ;
    sh:class shopify:DiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines on the order" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/shippingLines> ;
    sh:name "shipping lines" ;
    sh:description "Shipping lines on the order" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/note> ;
    sh:name "note" ;
    sh:description "Optional note attached to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags attached to the order (comma-separated)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/cancelReason> ;
    sh:name "cancel reason" ;
    sh:description "Reason the order was cancelled: customer, fraud, inventory, declined, other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Date and time when the order was cancelled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/closedAt> ;
    sh:name "closed at" ;
    sh:description "Date and time when the order was closed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the order was processed" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the order was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the order was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/sourceName> ;
    sh:name "source name" ;
    sh:description "Where the order originated (e.g. web, pos, shopify_draft_order)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/gateway> ;
    sh:name "gateway" ;
    sh:description "Payment gateway used" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test order" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/confirmed> ;
    sh:name "confirmed" ;
    sh:description "Whether the order has been confirmed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/buyerAcceptsMarketing> ;
    sh:name "buyer accepts marketing" ;
    sh:description "Whether the buyer accepted marketing" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalWeight> ;
    sh:name "total weight" ;
    sh:description "Total weight of the order in grams" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/token> ;
    sh:name "token" ;
    sh:description "Unique token for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/appId> ;
    sh:name "app id" ;
    sh:description "ID of the app that created the order" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/browserIp> ;
    sh:name "browser ip" ;
    sh:description "IP address of the browser used to place the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/landingSite> ;
    sh:name "landing site" ;
    sh:description "URL of the page where the buyer landed when entering the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/referringSite> ;
    sh:name "referring site" ;
    sh:description "Website that referred the customer to the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/discountApplications> ;
    sh:name "discount applications" ;
    sh:description "Discount applications on the order" ;
    sh:node shopify:DiscountApplicationShape ;
    sh:class shopify:DiscountApplication ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/fulfillments> ;
    sh:name "fulfillments" ;
    sh:description "Fulfillments associated with the order" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/refunds> ;
    sh:name "refunds" ;
    sh:description "Refunds applied to the order" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalPrice> ;
    sh:name "current total price" ;
    sh:description "Current total price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentSubtotalPrice> ;
    sh:name "current subtotal price" ;
    sh:description "Current subtotal price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalTax> ;
    sh:name "current total tax" ;
    sh:description "Current total tax after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalDiscounts> ;
    sh:name "current total discounts" ;
    sh:description "Current total discounts after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalPriceSet> ;
    sh:name "current total price set" ;
    sh:description "Current total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentSubtotalPriceSet> ;
    sh:name "current subtotal price set" ;
    sh:description "Current subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalTaxSet> ;
    sh:name "current total tax set" ;
    sh:description "Current total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalDiscountsSet> ;
    sh:name "current total discounts set" ;
    sh:description "Current total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/paymentGatewayNames> ;
    sh:name "payment gateway names" ;
    sh:description "List of payment gateways used for the order" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/processingMethod> ;
    sh:name "processing method" ;
    sh:description "How the payment was processed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/clientDetails> ;
    sh:name "client details" ;
    sh:description "Details about the client that created the order" ;
    sh:node shopify:ClientDetailsShape ;
    sh:class shopify:ClientDetails ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the order subtotal" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/orderStatusUrl> ;
    sh:name "order status url" ;
    sh:description "URL for the order status page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalTipReceived> ;
    sh:name "total tip received" ;
    sh:description "Total tip amount received" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/number> ;
    sh:name "number" ;
    sh:description "Sequential order number for the shop" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/confirmationNumber> ;
    sh:name "confirmation number" ;
    sh:description "Confirmation number for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/canMarkAsPaid> ;
    sh:name "can mark as paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/canNotifyCustomer> ;
    sh:name "can notify customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/capturable> ;
    sh:name "capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/clientIp> ;
    sh:name "client ip" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/closed> ;
    sh:name "closed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentSubtotalLineItemsQuantity> ;
    sh:name "current subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalWeight> ;
    sh:name "current total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/customerAcceptsMarketing> ;
    sh:name "customer accepts marketing" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/customerLocale> ;
    sh:name "customer locale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/discountCode> ;
    sh:name "discount code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/dutiesIncluded> ;
    sh:name "duties included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/edited> ;
    sh:name "edited" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/estimatedTaxes> ;
    sh:name "estimated taxes" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/fulfillable> ;
    sh:name "fulfillable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/fullyPaid> ;
    sh:name "fully paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/landingPageDisplayText> ;
    sh:name "landing page display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/landingPageUrl> ;
    sh:name "landing page url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/merchantEditable> ;
    sh:name "merchant editable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/merchantEditableErrors> ;
    sh:name "merchant editable errors" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/referralCode> ;
    sh:name "referral code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/referrerDisplayText> ;
    sh:name "referrer display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/referrerUrl> ;
    sh:name "referrer url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/refundable> ;
    sh:name "refundable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/registeredSourceUrl> ;
    sh:name "registered source url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/restockable> ;
    sh:name "restockable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/sourceIdentifier> ;
    sh:name "source identifier" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/statusPageUrl> ;
    sh:name "status page url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/subtotalLineItemsQuantity> ;
    sh:name "subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/unpaid> ;
    sh:name "unpaid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/additionalFees> ;
    sh:name "additional fees" ;
    sh:node shopify:AdditionalFeeShape ;
    sh:class shopify:AdditionalFee ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/agreements> ;
    sh:name "agreements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/alerts> ;
    sh:name "alerts" ;
    sh:node shopify:ResourceAlertShape ;
    sh:class shopify:ResourceAlert ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/cancellation> ;
    sh:name "cancellation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/cartDiscountAmount> ;
    sh:name "cart discount amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/cartDiscountAmountSet> ;
    sh:name "cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/channel> ;
    sh:name "channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/channelInformation> ;
    sh:name "channel information" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentCartDiscountAmountSet> ;
    sh:name "current cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentShippingPriceSet> ;
    sh:name "current shipping price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTaxLines> ;
    sh:name "current tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalAdditionalFeesSet> ;
    sh:name "current total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/currentTotalDutiesSet> ;
    sh:name "current total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/customerJourney> ;
    sh:name "customer journey" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/customerJourneySummary> ;
    sh:name "customer journey summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/displayAddress> ;
    sh:name "display address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/displayFinancialStatus> ;
    sh:name "display financial status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/displayFulfillmentStatus> ;
    sh:name "display fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/disputes> ;
    sh:name "disputes" ;
    sh:node shopify:OrderDisputeSummaryShape ;
    sh:class shopify:OrderDisputeSummary ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/exchangeV2s> ;
    sh:name "exchange v2s" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/fulfillmentsCount> ;
    sh:name "fulfillments count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/merchantBusinessEntity> ;
    sh:name "merchant business entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/merchantOfRecordApp> ;
    sh:name "merchant of record app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/netPayment> ;
    sh:name "net payment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/netPaymentSet> ;
    sh:name "net payment set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/nonFulfillableLineItems> ;
    sh:name "non fulfillable line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/originalTotalAdditionalFeesSet> ;
    sh:name "original total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/originalTotalDutiesSet> ;
    sh:name "original total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/originalTotalPriceSet> ;
    sh:name "original total price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/paymentCollectionDetails> ;
    sh:name "payment collection details" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/paymentTerms> ;
    sh:name "payment terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/physicalLocation> ;
    sh:name "physical location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/publication> ;
    sh:name "publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/refundDiscrepancySet> ;
    sh:name "refund discrepancy set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/retailLocation> ;
    sh:name "retail location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/returnStatus> ;
    sh:name "return status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/returns> ;
    sh:name "returns" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/risk> ;
    sh:name "risk" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/riskLevel> ;
    sh:name "risk level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/risks> ;
    sh:name "risks" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/shippingLine> ;
    sh:name "shipping line" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/shopifyProtect> ;
    sh:name "shopify protect" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/suggestedRefund> ;
    sh:name "suggested refund" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalCapturable> ;
    sh:name "total capturable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalCapturableSet> ;
    sh:name "total capturable set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalCashRoundingAdjustment> ;
    sh:name "total cash rounding adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalOutstandingSet> ;
    sh:name "total outstanding set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalReceived> ;
    sh:name "total received" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalReceivedSet> ;
    sh:name "total received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalRefunded> ;
    sh:name "total refunded" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalRefundedSet> ;
    sh:name "total refunded set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalRefundedShippingSet> ;
    sh:name "total refunded shipping set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/totalTipReceivedSet> ;
    sh:name "total tip received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/transactions> ;
    sh:name "transactions" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderFulfilledEvent/transactionsCount> ;
    sh:name "transactions count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Paid Event
shopify:OrderPaidEventShape a sh:NodeShape ;
  sh:targetClass shopify:OrderPaidEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/id> ;
    sh:name "id" ;
    sh:description "Unique order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/orderNumber> ;
    sh:name "order number" ;
    sh:description "Shop-specific order number (e.g. 1001)" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/name> ;
    sh:name "name" ;
    sh:description "Order name including prefix (e.g. #1001)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/financialStatus> ;
    sh:name "financial status" ;
    sh:description "Financial status of the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "pending" "authorized" "partially_paid" "paid" "partially_refunded" "refunded" "voided" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment status of the order (null means unfulfilled)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fulfilled" "partial" "unfulfilled" "restocked" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the order including taxes and discounts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Price of the order after discounts but before shipping and taxes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalTax> ;
    sh:name "total tax" ;
    sh:description "Sum of all taxes applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalDiscounts> ;
    sh:name "total discounts" ;
    sh:description "Total discounts applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalLineItemsPrice> ;
    sh:name "total line items price" ;
    sh:description "Sum of all line item prices" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the order" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount codes applied to the order" ;
    sh:node shopify:DiscountCodeShape ;
    sh:class shopify:DiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines on the order" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/shippingLines> ;
    sh:name "shipping lines" ;
    sh:description "Shipping lines on the order" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/note> ;
    sh:name "note" ;
    sh:description "Optional note attached to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags attached to the order (comma-separated)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/cancelReason> ;
    sh:name "cancel reason" ;
    sh:description "Reason the order was cancelled: customer, fraud, inventory, declined, other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Date and time when the order was cancelled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/closedAt> ;
    sh:name "closed at" ;
    sh:description "Date and time when the order was closed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the order was processed" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the order was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the order was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/sourceName> ;
    sh:name "source name" ;
    sh:description "Where the order originated (e.g. web, pos, shopify_draft_order)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/gateway> ;
    sh:name "gateway" ;
    sh:description "Payment gateway used" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test order" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/confirmed> ;
    sh:name "confirmed" ;
    sh:description "Whether the order has been confirmed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/buyerAcceptsMarketing> ;
    sh:name "buyer accepts marketing" ;
    sh:description "Whether the buyer accepted marketing" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalWeight> ;
    sh:name "total weight" ;
    sh:description "Total weight of the order in grams" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/token> ;
    sh:name "token" ;
    sh:description "Unique token for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/appId> ;
    sh:name "app id" ;
    sh:description "ID of the app that created the order" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/browserIp> ;
    sh:name "browser ip" ;
    sh:description "IP address of the browser used to place the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/landingSite> ;
    sh:name "landing site" ;
    sh:description "URL of the page where the buyer landed when entering the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/referringSite> ;
    sh:name "referring site" ;
    sh:description "Website that referred the customer to the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/discountApplications> ;
    sh:name "discount applications" ;
    sh:description "Discount applications on the order" ;
    sh:node shopify:DiscountApplicationShape ;
    sh:class shopify:DiscountApplication ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/fulfillments> ;
    sh:name "fulfillments" ;
    sh:description "Fulfillments associated with the order" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/refunds> ;
    sh:name "refunds" ;
    sh:description "Refunds applied to the order" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalPrice> ;
    sh:name "current total price" ;
    sh:description "Current total price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentSubtotalPrice> ;
    sh:name "current subtotal price" ;
    sh:description "Current subtotal price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalTax> ;
    sh:name "current total tax" ;
    sh:description "Current total tax after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalDiscounts> ;
    sh:name "current total discounts" ;
    sh:description "Current total discounts after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalPriceSet> ;
    sh:name "current total price set" ;
    sh:description "Current total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentSubtotalPriceSet> ;
    sh:name "current subtotal price set" ;
    sh:description "Current subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalTaxSet> ;
    sh:name "current total tax set" ;
    sh:description "Current total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalDiscountsSet> ;
    sh:name "current total discounts set" ;
    sh:description "Current total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/paymentGatewayNames> ;
    sh:name "payment gateway names" ;
    sh:description "List of payment gateways used for the order" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/processingMethod> ;
    sh:name "processing method" ;
    sh:description "How the payment was processed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/clientDetails> ;
    sh:name "client details" ;
    sh:description "Details about the client that created the order" ;
    sh:node shopify:ClientDetailsShape ;
    sh:class shopify:ClientDetails ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the order subtotal" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/orderStatusUrl> ;
    sh:name "order status url" ;
    sh:description "URL for the order status page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalTipReceived> ;
    sh:name "total tip received" ;
    sh:description "Total tip amount received" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/number> ;
    sh:name "number" ;
    sh:description "Sequential order number for the shop" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/confirmationNumber> ;
    sh:name "confirmation number" ;
    sh:description "Confirmation number for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/canMarkAsPaid> ;
    sh:name "can mark as paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/canNotifyCustomer> ;
    sh:name "can notify customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/capturable> ;
    sh:name "capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/clientIp> ;
    sh:name "client ip" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/closed> ;
    sh:name "closed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentSubtotalLineItemsQuantity> ;
    sh:name "current subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalWeight> ;
    sh:name "current total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/customerAcceptsMarketing> ;
    sh:name "customer accepts marketing" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/customerLocale> ;
    sh:name "customer locale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/discountCode> ;
    sh:name "discount code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/dutiesIncluded> ;
    sh:name "duties included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/edited> ;
    sh:name "edited" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/estimatedTaxes> ;
    sh:name "estimated taxes" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/fulfillable> ;
    sh:name "fulfillable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/fullyPaid> ;
    sh:name "fully paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/landingPageDisplayText> ;
    sh:name "landing page display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/landingPageUrl> ;
    sh:name "landing page url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/merchantEditable> ;
    sh:name "merchant editable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/merchantEditableErrors> ;
    sh:name "merchant editable errors" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/referralCode> ;
    sh:name "referral code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/referrerDisplayText> ;
    sh:name "referrer display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/referrerUrl> ;
    sh:name "referrer url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/refundable> ;
    sh:name "refundable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/registeredSourceUrl> ;
    sh:name "registered source url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/restockable> ;
    sh:name "restockable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/sourceIdentifier> ;
    sh:name "source identifier" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/statusPageUrl> ;
    sh:name "status page url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/subtotalLineItemsQuantity> ;
    sh:name "subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/unpaid> ;
    sh:name "unpaid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/additionalFees> ;
    sh:name "additional fees" ;
    sh:node shopify:AdditionalFeeShape ;
    sh:class shopify:AdditionalFee ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/agreements> ;
    sh:name "agreements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/alerts> ;
    sh:name "alerts" ;
    sh:node shopify:ResourceAlertShape ;
    sh:class shopify:ResourceAlert ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/cancellation> ;
    sh:name "cancellation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/cartDiscountAmount> ;
    sh:name "cart discount amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/cartDiscountAmountSet> ;
    sh:name "cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/channel> ;
    sh:name "channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/channelInformation> ;
    sh:name "channel information" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentCartDiscountAmountSet> ;
    sh:name "current cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentShippingPriceSet> ;
    sh:name "current shipping price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTaxLines> ;
    sh:name "current tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalAdditionalFeesSet> ;
    sh:name "current total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/currentTotalDutiesSet> ;
    sh:name "current total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/customerJourney> ;
    sh:name "customer journey" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/customerJourneySummary> ;
    sh:name "customer journey summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/displayAddress> ;
    sh:name "display address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/displayFinancialStatus> ;
    sh:name "display financial status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/displayFulfillmentStatus> ;
    sh:name "display fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/disputes> ;
    sh:name "disputes" ;
    sh:node shopify:OrderDisputeSummaryShape ;
    sh:class shopify:OrderDisputeSummary ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/exchangeV2s> ;
    sh:name "exchange v2s" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/fulfillmentsCount> ;
    sh:name "fulfillments count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/merchantBusinessEntity> ;
    sh:name "merchant business entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/merchantOfRecordApp> ;
    sh:name "merchant of record app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/netPayment> ;
    sh:name "net payment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/netPaymentSet> ;
    sh:name "net payment set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/nonFulfillableLineItems> ;
    sh:name "non fulfillable line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/originalTotalAdditionalFeesSet> ;
    sh:name "original total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/originalTotalDutiesSet> ;
    sh:name "original total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/originalTotalPriceSet> ;
    sh:name "original total price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/paymentCollectionDetails> ;
    sh:name "payment collection details" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/paymentTerms> ;
    sh:name "payment terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/physicalLocation> ;
    sh:name "physical location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/publication> ;
    sh:name "publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/refundDiscrepancySet> ;
    sh:name "refund discrepancy set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/retailLocation> ;
    sh:name "retail location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/returnStatus> ;
    sh:name "return status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/returns> ;
    sh:name "returns" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/risk> ;
    sh:name "risk" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/riskLevel> ;
    sh:name "risk level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/risks> ;
    sh:name "risks" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/shippingLine> ;
    sh:name "shipping line" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/shopifyProtect> ;
    sh:name "shopify protect" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/suggestedRefund> ;
    sh:name "suggested refund" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalCapturable> ;
    sh:name "total capturable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalCapturableSet> ;
    sh:name "total capturable set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalCashRoundingAdjustment> ;
    sh:name "total cash rounding adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalOutstandingSet> ;
    sh:name "total outstanding set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalReceived> ;
    sh:name "total received" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalReceivedSet> ;
    sh:name "total received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalRefunded> ;
    sh:name "total refunded" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalRefundedSet> ;
    sh:name "total refunded set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalRefundedShippingSet> ;
    sh:name "total refunded shipping set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/totalTipReceivedSet> ;
    sh:name "total tip received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/transactions> ;
    sh:name "transactions" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPaidEvent/transactionsCount> ;
    sh:name "transactions count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Order Partially Fulfilled Event
shopify:OrderPartiallyFulfilledEventShape a sh:NodeShape ;
  sh:targetClass shopify:OrderPartiallyFulfilledEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/id> ;
    sh:name "id" ;
    sh:description "Unique order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/orderNumber> ;
    sh:name "order number" ;
    sh:description "Shop-specific order number (e.g. 1001)" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/name> ;
    sh:name "name" ;
    sh:description "Order name including prefix (e.g. #1001)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/financialStatus> ;
    sh:name "financial status" ;
    sh:description "Financial status of the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "pending" "authorized" "partially_paid" "paid" "partially_refunded" "refunded" "voided" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment status of the order (null means unfulfilled)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fulfilled" "partial" "unfulfilled" "restocked" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price of the order including taxes and discounts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Price of the order after discounts but before shipping and taxes" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalTax> ;
    sh:name "total tax" ;
    sh:description "Sum of all taxes applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalDiscounts> ;
    sh:name "total discounts" ;
    sh:description "Total discounts applied to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalLineItemsPrice> ;
    sh:name "total line items price" ;
    sh:description "Sum of all line item prices" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the order" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount codes applied to the order" ;
    sh:node shopify:DiscountCodeShape ;
    sh:class shopify:DiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines on the order" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/shippingLines> ;
    sh:name "shipping lines" ;
    sh:description "Shipping lines on the order" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/note> ;
    sh:name "note" ;
    sh:description "Optional note attached to the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags attached to the order (comma-separated)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/cancelReason> ;
    sh:name "cancel reason" ;
    sh:description "Reason the order was cancelled: customer, fraud, inventory, declined, other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Date and time when the order was cancelled" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/closedAt> ;
    sh:name "closed at" ;
    sh:description "Date and time when the order was closed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/processedAt> ;
    sh:name "processed at" ;
    sh:description "Date and time when the order was processed" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the order was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the order was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/sourceName> ;
    sh:name "source name" ;
    sh:description "Where the order originated (e.g. web, pos, shopify_draft_order)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/gateway> ;
    sh:name "gateway" ;
    sh:description "Payment gateway used" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/test> ;
    sh:name "test" ;
    sh:description "Whether this is a test order" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/confirmed> ;
    sh:name "confirmed" ;
    sh:description "Whether the order has been confirmed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/buyerAcceptsMarketing> ;
    sh:name "buyer accepts marketing" ;
    sh:description "Whether the buyer accepted marketing" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalWeight> ;
    sh:name "total weight" ;
    sh:description "Total weight of the order in grams" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/token> ;
    sh:name "token" ;
    sh:description "Unique token for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/appId> ;
    sh:name "app id" ;
    sh:description "ID of the app that created the order" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/browserIp> ;
    sh:name "browser ip" ;
    sh:description "IP address of the browser used to place the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/landingSite> ;
    sh:name "landing site" ;
    sh:description "URL of the page where the buyer landed when entering the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/referringSite> ;
    sh:name "referring site" ;
    sh:description "Website that referred the customer to the shop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/discountApplications> ;
    sh:name "discount applications" ;
    sh:description "Discount applications on the order" ;
    sh:node shopify:DiscountApplicationShape ;
    sh:class shopify:DiscountApplication ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/fulfillments> ;
    sh:name "fulfillments" ;
    sh:description "Fulfillments associated with the order" ;
    sh:class shopify:Fulfillment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/refunds> ;
    sh:name "refunds" ;
    sh:description "Refunds applied to the order" ;
    sh:class shopify:Refund ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalPrice> ;
    sh:name "current total price" ;
    sh:description "Current total price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentSubtotalPrice> ;
    sh:name "current subtotal price" ;
    sh:description "Current subtotal price after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalTax> ;
    sh:name "current total tax" ;
    sh:description "Current total tax after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalDiscounts> ;
    sh:name "current total discounts" ;
    sh:description "Current total discounts after edits, refunds, etc." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalPriceSet> ;
    sh:name "current total price set" ;
    sh:description "Current total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentSubtotalPriceSet> ;
    sh:name "current subtotal price set" ;
    sh:description "Current subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalTaxSet> ;
    sh:name "current total tax set" ;
    sh:description "Current total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalDiscountsSet> ;
    sh:name "current total discounts set" ;
    sh:description "Current total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/paymentGatewayNames> ;
    sh:name "payment gateway names" ;
    sh:description "List of payment gateways used for the order" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/processingMethod> ;
    sh:name "processing method" ;
    sh:description "How the payment was processed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/clientDetails> ;
    sh:name "client details" ;
    sh:description "Details about the client that created the order" ;
    sh:node shopify:ClientDetailsShape ;
    sh:class shopify:ClientDetails ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the order subtotal" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/orderStatusUrl> ;
    sh:name "order status url" ;
    sh:description "URL for the order status page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalTipReceived> ;
    sh:name "total tip received" ;
    sh:description "Total tip amount received" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/number> ;
    sh:name "number" ;
    sh:description "Sequential order number for the shop" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/confirmationNumber> ;
    sh:name "confirmation number" ;
    sh:description "Confirmation number for the order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/canMarkAsPaid> ;
    sh:name "can mark as paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/canNotifyCustomer> ;
    sh:name "can notify customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/capturable> ;
    sh:name "capturable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/clientIp> ;
    sh:name "client ip" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/closed> ;
    sh:name "closed" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentSubtotalLineItemsQuantity> ;
    sh:name "current subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalWeight> ;
    sh:name "current total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/customerAcceptsMarketing> ;
    sh:name "customer accepts marketing" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/customerLocale> ;
    sh:name "customer locale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/discountCode> ;
    sh:name "discount code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/dutiesIncluded> ;
    sh:name "duties included" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/edited> ;
    sh:name "edited" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/estimatedTaxes> ;
    sh:name "estimated taxes" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/fulfillable> ;
    sh:name "fulfillable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/fullyPaid> ;
    sh:name "fully paid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/landingPageDisplayText> ;
    sh:name "landing page display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/landingPageUrl> ;
    sh:name "landing page url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/merchantEditable> ;
    sh:name "merchant editable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/merchantEditableErrors> ;
    sh:name "merchant editable errors" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/referralCode> ;
    sh:name "referral code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/referrerDisplayText> ;
    sh:name "referrer display text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/referrerUrl> ;
    sh:name "referrer url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/refundable> ;
    sh:name "refundable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/registeredSourceUrl> ;
    sh:name "registered source url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/restockable> ;
    sh:name "restockable" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/sourceIdentifier> ;
    sh:name "source identifier" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/statusPageUrl> ;
    sh:name "status page url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/subtotalLineItemsQuantity> ;
    sh:name "subtotal line items quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/unpaid> ;
    sh:name "unpaid" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/additionalFees> ;
    sh:name "additional fees" ;
    sh:node shopify:AdditionalFeeShape ;
    sh:class shopify:AdditionalFee ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/agreements> ;
    sh:name "agreements" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/alerts> ;
    sh:name "alerts" ;
    sh:node shopify:ResourceAlertShape ;
    sh:class shopify:ResourceAlert ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/app> ;
    sh:name "app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/cancellation> ;
    sh:name "cancellation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/cartDiscountAmount> ;
    sh:name "cart discount amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/cartDiscountAmountSet> ;
    sh:name "cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/channel> ;
    sh:name "channel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/channelInformation> ;
    sh:name "channel information" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentCartDiscountAmountSet> ;
    sh:name "current cart discount amount set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentShippingPriceSet> ;
    sh:name "current shipping price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTaxLines> ;
    sh:name "current tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalAdditionalFeesSet> ;
    sh:name "current total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/currentTotalDutiesSet> ;
    sh:name "current total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/customerJourney> ;
    sh:name "customer journey" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/customerJourneySummary> ;
    sh:name "customer journey summary" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/displayAddress> ;
    sh:name "display address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/displayFinancialStatus> ;
    sh:name "display financial status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/displayFulfillmentStatus> ;
    sh:name "display fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/disputes> ;
    sh:name "disputes" ;
    sh:node shopify:OrderDisputeSummaryShape ;
    sh:class shopify:OrderDisputeSummary ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/exchangeV2s> ;
    sh:name "exchange v2s" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/fulfillmentsCount> ;
    sh:name "fulfillments count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/merchantBusinessEntity> ;
    sh:name "merchant business entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/merchantOfRecordApp> ;
    sh:name "merchant of record app" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/netPayment> ;
    sh:name "net payment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/netPaymentSet> ;
    sh:name "net payment set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/nonFulfillableLineItems> ;
    sh:name "non fulfillable line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/originalTotalAdditionalFeesSet> ;
    sh:name "original total additional fees set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/originalTotalDutiesSet> ;
    sh:name "original total duties set" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/originalTotalPriceSet> ;
    sh:name "original total price set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/paymentCollectionDetails> ;
    sh:name "payment collection details" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/paymentTerms> ;
    sh:name "payment terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/physicalLocation> ;
    sh:name "physical location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/publication> ;
    sh:name "publication" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/refundDiscrepancySet> ;
    sh:name "refund discrepancy set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/retailLocation> ;
    sh:name "retail location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/returnStatus> ;
    sh:name "return status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/returns> ;
    sh:name "returns" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/risk> ;
    sh:name "risk" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/riskLevel> ;
    sh:name "risk level" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/risks> ;
    sh:name "risks" ;
    sh:node shopify:OrderRiskShape ;
    sh:class shopify:OrderRisk ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/shippingLine> ;
    sh:name "shipping line" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/shopifyProtect> ;
    sh:name "shopify protect" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/staffMember> ;
    sh:name "staff member" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/suggestedRefund> ;
    sh:name "suggested refund" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalCapturable> ;
    sh:name "total capturable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalCapturableSet> ;
    sh:name "total capturable set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalCashRoundingAdjustment> ;
    sh:name "total cash rounding adjustment" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalOutstandingSet> ;
    sh:name "total outstanding set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalReceived> ;
    sh:name "total received" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalReceivedSet> ;
    sh:name "total received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalRefunded> ;
    sh:name "total refunded" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalRefundedSet> ;
    sh:name "total refunded set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalRefundedShippingSet> ;
    sh:name "total refunded shipping set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/totalTipReceivedSet> ;
    sh:name "total tip received set" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/transactions> ;
    sh:name "transactions" ;
    sh:node shopify:OrderTransactionShape ;
    sh:class shopify:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.OrderPartiallyFulfilledEvent/transactionsCount> ;
    sh:name "transactions count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Created Event
shopify:CustomerCreatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerCreatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/id> ;
    sh:name "id" ;
    sh:description "Customer ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/firstName> ;
    sh:name "first name" ;
    sh:description "Customer first name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/lastName> ;
    sh:name "last name" ;
    sh:description "Customer last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/addresses> ;
    sh:name "addresses" ;
    sh:description "Customer addresses" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/defaultAddress> ;
    sh:name "default address" ;
    sh:description "Default address for the customer" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/ordersCount> ;
    sh:name "orders count" ;
    sh:description "Number of orders placed by the customer" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/totalSpent> ;
    sh:name "total spent" ;
    sh:description "Total amount spent by the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/state> ;
    sh:name "state" ;
    sh:description "Customer account state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "disabled" "invited" "enabled" "declined" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/verifiedEmail> ;
    sh:name "verified email" ;
    sh:description "Whether the email address has been verified" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/emailMarketingConsent> ;
    sh:name "email marketing consent" ;
    sh:description "Email marketing consent information" ;
    sh:node shopify:EmailMarketingConsentShape ;
    sh:class shopify:EmailMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/smsMarketingConsent> ;
    sh:name "sms marketing consent" ;
    sh:description "SMS marketing consent information" ;
    sh:node shopify:SmsMarketingConsentShape ;
    sh:class shopify:SmsMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/note> ;
    sh:name "note" ;
    sh:description "Note about the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Whether the customer is tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/taxExemptions> ;
    sh:name "tax exemptions" ;
    sh:description "Tax exemptions applicable to the customer" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/currency> ;
    sh:name "currency" ;
    sh:description "Customer currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/acceptsMarketing> ;
    sh:name "accepts marketing" ;
    sh:description "Whether the customer has consented to marketing (deprecated, use email_marketing_consent)" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/acceptsMarketingUpdatedAt> ;
    sh:name "accepts marketing updated at" ;
    sh:description "Date when marketing consent was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/marketingOptInLevel> ;
    sh:name "marketing opt in level" ;
    sh:description "Marketing opt-in level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/multipassIdentifier> ;
    sh:name "multipass identifier" ;
    sh:description "Multipass identifier for the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/lastOrder> ;
    sh:name "last order" ;
    sh:description "ID of the customer's last order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/lastOrderName> ;
    sh:name "last order name" ;
    sh:description "Name of the customer's last order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the customer was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the customer was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/canDelete> ;
    sh:name "can delete" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/dataSaleOptOut> ;
    sh:name "data sale opt out" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/displayName> ;
    sh:name "display name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/lifetimeDuration> ;
    sh:name "lifetime duration" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/locale> ;
    sh:name "locale" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/numberOfOrders> ;
    sh:name "number of orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/unsubscribeUrl> ;
    sh:name "unsubscribe url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/validEmailAddress> ;
    sh:name "valid email address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/addressesV2> ;
    sh:name "addresses v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/amountSpent> ;
    sh:name "amount spent" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/companyContactProfiles> ;
    sh:name "company contact profiles" ;
    sh:node shopify:CompanyContactShape ;
    sh:class shopify:CompanyContact ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/defaultEmailAddress> ;
    sh:name "default email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/defaultPhoneNumber> ;
    sh:name "default phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/market> ;
    sh:name "market" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/mergeable> ;
    sh:name "mergeable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/orders> ;
    sh:name "orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/paymentMethods> ;
    sh:name "payment methods" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/productSubscriberStatus> ;
    sh:name "product subscriber status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/statistics> ;
    sh:name "statistics" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/storeCreditAccounts> ;
    sh:name "store credit accounts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerCreatedEvent/subscriptionContracts> ;
    sh:name "subscription contracts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Updated Event
shopify:CustomerUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/id> ;
    sh:name "id" ;
    sh:description "Customer ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/firstName> ;
    sh:name "first name" ;
    sh:description "Customer first name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/lastName> ;
    sh:name "last name" ;
    sh:description "Customer last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/addresses> ;
    sh:name "addresses" ;
    sh:description "Customer addresses" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/defaultAddress> ;
    sh:name "default address" ;
    sh:description "Default address for the customer" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/ordersCount> ;
    sh:name "orders count" ;
    sh:description "Number of orders placed by the customer" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/totalSpent> ;
    sh:name "total spent" ;
    sh:description "Total amount spent by the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/state> ;
    sh:name "state" ;
    sh:description "Customer account state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "disabled" "invited" "enabled" "declined" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/verifiedEmail> ;
    sh:name "verified email" ;
    sh:description "Whether the email address has been verified" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/emailMarketingConsent> ;
    sh:name "email marketing consent" ;
    sh:description "Email marketing consent information" ;
    sh:node shopify:EmailMarketingConsentShape ;
    sh:class shopify:EmailMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/smsMarketingConsent> ;
    sh:name "sms marketing consent" ;
    sh:description "SMS marketing consent information" ;
    sh:node shopify:SmsMarketingConsentShape ;
    sh:class shopify:SmsMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/note> ;
    sh:name "note" ;
    sh:description "Note about the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Whether the customer is tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/taxExemptions> ;
    sh:name "tax exemptions" ;
    sh:description "Tax exemptions applicable to the customer" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/currency> ;
    sh:name "currency" ;
    sh:description "Customer currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/acceptsMarketing> ;
    sh:name "accepts marketing" ;
    sh:description "Whether the customer has consented to marketing (deprecated, use email_marketing_consent)" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/acceptsMarketingUpdatedAt> ;
    sh:name "accepts marketing updated at" ;
    sh:description "Date when marketing consent was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/marketingOptInLevel> ;
    sh:name "marketing opt in level" ;
    sh:description "Marketing opt-in level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/multipassIdentifier> ;
    sh:name "multipass identifier" ;
    sh:description "Multipass identifier for the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/lastOrder> ;
    sh:name "last order" ;
    sh:description "ID of the customer's last order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/lastOrderName> ;
    sh:name "last order name" ;
    sh:description "Name of the customer's last order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the customer was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the customer was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/canDelete> ;
    sh:name "can delete" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/dataSaleOptOut> ;
    sh:name "data sale opt out" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/displayName> ;
    sh:name "display name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/lifetimeDuration> ;
    sh:name "lifetime duration" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/locale> ;
    sh:name "locale" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/numberOfOrders> ;
    sh:name "number of orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/unsubscribeUrl> ;
    sh:name "unsubscribe url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/validEmailAddress> ;
    sh:name "valid email address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/addressesV2> ;
    sh:name "addresses v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/amountSpent> ;
    sh:name "amount spent" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/companyContactProfiles> ;
    sh:name "company contact profiles" ;
    sh:node shopify:CompanyContactShape ;
    sh:class shopify:CompanyContact ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/defaultEmailAddress> ;
    sh:name "default email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/defaultPhoneNumber> ;
    sh:name "default phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/market> ;
    sh:name "market" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/mergeable> ;
    sh:name "mergeable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/orders> ;
    sh:name "orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/paymentMethods> ;
    sh:name "payment methods" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/productSubscriberStatus> ;
    sh:name "product subscriber status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/statistics> ;
    sh:name "statistics" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/storeCreditAccounts> ;
    sh:name "store credit accounts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerUpdatedEvent/subscriptionContracts> ;
    sh:name "subscription contracts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Deleted Event
shopify:CustomerDeletedEventShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerDeletedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDeletedEvent/id> ;
    sh:name "id" ;
    sh:description "Deleted customer ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Enabled Event
shopify:CustomerEnabledEventShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerEnabledEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/id> ;
    sh:name "id" ;
    sh:description "Customer ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/firstName> ;
    sh:name "first name" ;
    sh:description "Customer first name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/lastName> ;
    sh:name "last name" ;
    sh:description "Customer last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/addresses> ;
    sh:name "addresses" ;
    sh:description "Customer addresses" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/defaultAddress> ;
    sh:name "default address" ;
    sh:description "Default address for the customer" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/ordersCount> ;
    sh:name "orders count" ;
    sh:description "Number of orders placed by the customer" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/totalSpent> ;
    sh:name "total spent" ;
    sh:description "Total amount spent by the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/state> ;
    sh:name "state" ;
    sh:description "Customer account state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "disabled" "invited" "enabled" "declined" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/verifiedEmail> ;
    sh:name "verified email" ;
    sh:description "Whether the email address has been verified" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/emailMarketingConsent> ;
    sh:name "email marketing consent" ;
    sh:description "Email marketing consent information" ;
    sh:node shopify:EmailMarketingConsentShape ;
    sh:class shopify:EmailMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/smsMarketingConsent> ;
    sh:name "sms marketing consent" ;
    sh:description "SMS marketing consent information" ;
    sh:node shopify:SmsMarketingConsentShape ;
    sh:class shopify:SmsMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/note> ;
    sh:name "note" ;
    sh:description "Note about the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Whether the customer is tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/taxExemptions> ;
    sh:name "tax exemptions" ;
    sh:description "Tax exemptions applicable to the customer" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/currency> ;
    sh:name "currency" ;
    sh:description "Customer currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/acceptsMarketing> ;
    sh:name "accepts marketing" ;
    sh:description "Whether the customer has consented to marketing (deprecated, use email_marketing_consent)" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/acceptsMarketingUpdatedAt> ;
    sh:name "accepts marketing updated at" ;
    sh:description "Date when marketing consent was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/marketingOptInLevel> ;
    sh:name "marketing opt in level" ;
    sh:description "Marketing opt-in level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/multipassIdentifier> ;
    sh:name "multipass identifier" ;
    sh:description "Multipass identifier for the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/lastOrder> ;
    sh:name "last order" ;
    sh:description "ID of the customer's last order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/lastOrderName> ;
    sh:name "last order name" ;
    sh:description "Name of the customer's last order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the customer was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the customer was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/canDelete> ;
    sh:name "can delete" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/dataSaleOptOut> ;
    sh:name "data sale opt out" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/displayName> ;
    sh:name "display name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/lifetimeDuration> ;
    sh:name "lifetime duration" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/locale> ;
    sh:name "locale" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/numberOfOrders> ;
    sh:name "number of orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/unsubscribeUrl> ;
    sh:name "unsubscribe url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/validEmailAddress> ;
    sh:name "valid email address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/addressesV2> ;
    sh:name "addresses v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/amountSpent> ;
    sh:name "amount spent" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/companyContactProfiles> ;
    sh:name "company contact profiles" ;
    sh:node shopify:CompanyContactShape ;
    sh:class shopify:CompanyContact ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/defaultEmailAddress> ;
    sh:name "default email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/defaultPhoneNumber> ;
    sh:name "default phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/market> ;
    sh:name "market" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/mergeable> ;
    sh:name "mergeable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/orders> ;
    sh:name "orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/paymentMethods> ;
    sh:name "payment methods" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/productSubscriberStatus> ;
    sh:name "product subscriber status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/statistics> ;
    sh:name "statistics" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/storeCreditAccounts> ;
    sh:name "store credit accounts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerEnabledEvent/subscriptionContracts> ;
    sh:name "subscription contracts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Disabled Event
shopify:CustomerDisabledEventShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerDisabledEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/id> ;
    sh:name "id" ;
    sh:description "Customer ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/email> ;
    sh:name "email" ;
    sh:description "Customer email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/firstName> ;
    sh:name "first name" ;
    sh:description "Customer first name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/lastName> ;
    sh:name "last name" ;
    sh:description "Customer last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/addresses> ;
    sh:name "addresses" ;
    sh:description "Customer addresses" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/defaultAddress> ;
    sh:name "default address" ;
    sh:description "Default address for the customer" ;
    sh:node shopify:CustomerAddressShape ;
    sh:class shopify:CustomerAddress ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/ordersCount> ;
    sh:name "orders count" ;
    sh:description "Number of orders placed by the customer" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/totalSpent> ;
    sh:name "total spent" ;
    sh:description "Total amount spent by the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/state> ;
    sh:name "state" ;
    sh:description "Customer account state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "disabled" "invited" "enabled" "declined" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/verifiedEmail> ;
    sh:name "verified email" ;
    sh:description "Whether the email address has been verified" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/emailMarketingConsent> ;
    sh:name "email marketing consent" ;
    sh:description "Email marketing consent information" ;
    sh:node shopify:EmailMarketingConsentShape ;
    sh:class shopify:EmailMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/smsMarketingConsent> ;
    sh:name "sms marketing consent" ;
    sh:description "SMS marketing consent information" ;
    sh:node shopify:SmsMarketingConsentShape ;
    sh:class shopify:SmsMarketingConsent ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/note> ;
    sh:name "note" ;
    sh:description "Note about the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Whether the customer is tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/taxExemptions> ;
    sh:name "tax exemptions" ;
    sh:description "Tax exemptions applicable to the customer" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/currency> ;
    sh:name "currency" ;
    sh:description "Customer currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/acceptsMarketing> ;
    sh:name "accepts marketing" ;
    sh:description "Whether the customer has consented to marketing (deprecated, use email_marketing_consent)" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/acceptsMarketingUpdatedAt> ;
    sh:name "accepts marketing updated at" ;
    sh:description "Date when marketing consent was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/marketingOptInLevel> ;
    sh:name "marketing opt in level" ;
    sh:description "Marketing opt-in level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/multipassIdentifier> ;
    sh:name "multipass identifier" ;
    sh:description "Multipass identifier for the customer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/lastOrder> ;
    sh:name "last order" ;
    sh:description "ID of the customer's last order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/lastOrderName> ;
    sh:name "last order name" ;
    sh:description "Name of the customer's last order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the customer was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the customer was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields associated with the resource" ;
    sh:node shopify:MetafieldShape ;
    sh:class shopify:Metafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/canDelete> ;
    sh:name "can delete" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/dataSaleOptOut> ;
    sh:name "data sale opt out" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/displayName> ;
    sh:name "display name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/lifetimeDuration> ;
    sh:name "lifetime duration" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/locale> ;
    sh:name "locale" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/numberOfOrders> ;
    sh:name "number of orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/unsubscribeUrl> ;
    sh:name "unsubscribe url" ;
    sh:datatype xsd:anyURI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/validEmailAddress> ;
    sh:name "valid email address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/addressesV2> ;
    sh:name "addresses v2" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/amountSpent> ;
    sh:name "amount spent" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/companyContactProfiles> ;
    sh:name "company contact profiles" ;
    sh:node shopify:CompanyContactShape ;
    sh:class shopify:CompanyContact ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/defaultEmailAddress> ;
    sh:name "default email address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/defaultPhoneNumber> ;
    sh:name "default phone number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/market> ;
    sh:name "market" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/mergeable> ;
    sh:name "mergeable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/metafieldDefinitions> ;
    sh:name "metafield definitions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/orders> ;
    sh:name "orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/paymentMethods> ;
    sh:name "payment methods" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/productSubscriberStatus> ;
    sh:name "product subscriber status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/statistics> ;
    sh:name "statistics" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/storeCreditAccounts> ;
    sh:name "store credit accounts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDisabledEvent/subscriptionContracts> ;
    sh:name "subscription contracts" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Fulfillment Created Event
shopify:FulfillmentCreatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentCreatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/id> ;
    sh:name "id" ;
    sh:description "Fulfillment ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/order> ;
    sh:name "order" ;
    sh:description "ID of the associated order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/status> ;
    sh:name "status" ;
    sh:description "Fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "pending" "open" "success" "cancelled" "error" "failure" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/trackingCompany> ;
    sh:name "tracking company" ;
    sh:description "Name of the tracking company" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/trackingNumber> ;
    sh:name "tracking number" ;
    sh:description "Tracking number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/trackingNumbers> ;
    sh:name "tracking numbers" ;
    sh:description "List of tracking numbers" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/trackingUrl> ;
    sh:name "tracking url" ;
    sh:description "Tracking URL" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/trackingUrls> ;
    sh:name "tracking urls" ;
    sh:description "List of tracking URLs" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Fulfilled line items" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/shipmentStatus> ;
    sh:name "shipment status" ;
    sh:description "Current shipment status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "label_purchased" "label_printed" "attempted_delivery" "ready_for_pickup" "picked_up" "confirmed" "in_transit" "out_for_delivery" "delivered" "failure" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/location> ;
    sh:name "location" ;
    sh:description "ID of the location the fulfillment was processed at" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/notifyCustomer> ;
    sh:name "notify customer" ;
    sh:description "Whether the customer was notified" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/service> ;
    sh:name "service" ;
    sh:description "Service used for fulfillment" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/name> ;
    sh:name "name" ;
    sh:description "Fulfillment name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/receipt> ;
    sh:name "receipt" ;
    sh:description "Fulfillment receipt" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the fulfillment was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the fulfillment was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/originAddress> ;
    sh:name "origin address" ;
    sh:description "Origin address from which items were fulfilled" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/deliveredAt> ;
    sh:name "delivered at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/estimatedDeliveryAt> ;
    sh:name "estimated delivery at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/inTransitAt> ;
    sh:name "in transit at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/totalQuantity> ;
    sh:name "total quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/displayStatus> ;
    sh:name "display status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/fulfillmentLineItems> ;
    sh:name "fulfillment line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/trackingInfo> ;
    sh:name "tracking info" ;
    sh:node shopify:FulfillmentTrackingInfoShape ;
    sh:class shopify:FulfillmentTrackingInfo ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Fulfillment Updated Event
shopify:FulfillmentUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:FulfillmentUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/id> ;
    sh:name "id" ;
    sh:description "Fulfillment ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/order> ;
    sh:name "order" ;
    sh:description "ID of the associated order" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/status> ;
    sh:name "status" ;
    sh:description "Fulfillment status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "pending" "open" "success" "cancelled" "error" "failure" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/trackingCompany> ;
    sh:name "tracking company" ;
    sh:description "Name of the tracking company" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/trackingNumber> ;
    sh:name "tracking number" ;
    sh:description "Tracking number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/trackingNumbers> ;
    sh:name "tracking numbers" ;
    sh:description "List of tracking numbers" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/trackingUrl> ;
    sh:name "tracking url" ;
    sh:description "Tracking URL" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/trackingUrls> ;
    sh:name "tracking urls" ;
    sh:description "List of tracking URLs" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Fulfilled line items" ;
    sh:node shopify:OrderLineItemShape ;
    sh:class shopify:OrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/shipmentStatus> ;
    sh:name "shipment status" ;
    sh:description "Current shipment status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "label_purchased" "label_printed" "attempted_delivery" "ready_for_pickup" "picked_up" "confirmed" "in_transit" "out_for_delivery" "delivered" "failure" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/location> ;
    sh:name "location" ;
    sh:description "ID of the location the fulfillment was processed at" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/notifyCustomer> ;
    sh:name "notify customer" ;
    sh:description "Whether the customer was notified" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/service> ;
    sh:name "service" ;
    sh:description "Service used for fulfillment" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/name> ;
    sh:name "name" ;
    sh:description "Fulfillment name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/receipt> ;
    sh:name "receipt" ;
    sh:description "Fulfillment receipt" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the fulfillment was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the fulfillment was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/originAddress> ;
    sh:name "origin address" ;
    sh:description "Origin address from which items were fulfilled" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/deliveredAt> ;
    sh:name "delivered at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/estimatedDeliveryAt> ;
    sh:name "estimated delivery at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/inTransitAt> ;
    sh:name "in transit at" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/totalQuantity> ;
    sh:name "total quantity" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/displayStatus> ;
    sh:name "display status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/fulfillmentLineItems> ;
    sh:name "fulfillment line items" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/fulfillmentOrders> ;
    sh:name "fulfillment orders" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/trackingInfo> ;
    sh:name "tracking info" ;
    sh:node shopify:FulfillmentTrackingInfoShape ;
    sh:class shopify:FulfillmentTrackingInfo ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Inventory Item Created Event
shopify:InventoryItemCreatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryItemCreatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/id> ;
    sh:name "id" ;
    sh:description "Inventory item ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/sku> ;
    sh:name "sku" ;
    sh:description "Stock Keeping Unit" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/cost> ;
    sh:name "cost" ;
    sh:description "Unit cost of the item" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/countryCodeOfOrigin> ;
    sh:name "country code of origin" ;
    sh:description "Two-letter ISO 3166-1 country code of origin" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/provinceCodeOfOrigin> ;
    sh:name "province code of origin" ;
    sh:description "Province code of origin" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/harmonizedSystemCode> ;
    sh:name "harmonized system code" ;
    sh:description "Harmonized System code for customs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/tracked> ;
    sh:name "tracked" ;
    sh:description "Whether inventory quantities are tracked" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:description "Whether the item requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/countryHarmonizedSystemCodes> ;
    sh:name "country harmonized system codes" ;
    sh:description "Country-specific harmonized system codes" ;
    sh:node shopify:CountryHarmonizedSystemCodeShape ;
    sh:class shopify:CountryHarmonizedSystemCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the item was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the item was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/duplicateSkuCount> ;
    sh:name "duplicate sku count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/inventoryHistoryUrl> ;
    sh:name "inventory history url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/inventoryLevel> ;
    sh:name "inventory level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/inventoryLevels> ;
    sh:name "inventory levels" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/locationsCount> ;
    sh:name "locations count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/measurement> ;
    sh:name "measurement" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/trackedEditable> ;
    sh:name "tracked editable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/unitCost> ;
    sh:name "unit cost" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemCreatedEvent/variant> ;
    sh:name "variant" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Item Updated Event
shopify:InventoryItemUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryItemUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/id> ;
    sh:name "id" ;
    sh:description "Inventory item ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/sku> ;
    sh:name "sku" ;
    sh:description "Stock Keeping Unit" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/cost> ;
    sh:name "cost" ;
    sh:description "Unit cost of the item" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/countryCodeOfOrigin> ;
    sh:name "country code of origin" ;
    sh:description "Two-letter ISO 3166-1 country code of origin" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/provinceCodeOfOrigin> ;
    sh:name "province code of origin" ;
    sh:description "Province code of origin" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/harmonizedSystemCode> ;
    sh:name "harmonized system code" ;
    sh:description "Harmonized System code for customs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/tracked> ;
    sh:name "tracked" ;
    sh:description "Whether inventory quantities are tracked" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/requiresShipping> ;
    sh:name "requires shipping" ;
    sh:description "Whether the item requires shipping" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/countryHarmonizedSystemCodes> ;
    sh:name "country harmonized system codes" ;
    sh:description "Country-specific harmonized system codes" ;
    sh:node shopify:CountryHarmonizedSystemCodeShape ;
    sh:class shopify:CountryHarmonizedSystemCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the item was created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the item was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/duplicateSkuCount> ;
    sh:name "duplicate sku count" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/inventoryHistoryUrl> ;
    sh:name "inventory history url" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/inventoryLevel> ;
    sh:name "inventory level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/inventoryLevels> ;
    sh:name "inventory levels" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/locationsCount> ;
    sh:name "locations count" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/measurement> ;
    sh:name "measurement" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/trackedEditable> ;
    sh:name "tracked editable" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/unitCost> ;
    sh:name "unit cost" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemUpdatedEvent/variant> ;
    sh:name "variant" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Item Deleted Event
shopify:InventoryItemDeletedEventShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryItemDeletedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryItemDeletedEvent/id> ;
    sh:name "id" ;
    sh:description "Deleted inventory item ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Level Updated Event
shopify:InventoryLevelUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryLevelUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/inventoryItem> ;
    sh:name "inventory item" ;
    sh:description "ID of the inventory item" ;
    sh:node shopify:InventoryItemShape ;
    sh:class shopify:InventoryItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/location> ;
    sh:name "location" ;
    sh:description "ID of the location" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/available> ;
    sh:name "available" ;
    sh:description "Available quantity at the location" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the level was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/canDeactivate> ;
    sh:name "can deactivate" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/deactivationAlert> ;
    sh:name "deactivation alert" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/item> ;
    sh:name "item" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/quantities> ;
    sh:name "quantities" ;
    sh:node shopify:InventoryQuantityShape ;
    sh:class shopify:InventoryQuantity ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelUpdatedEvent/scheduledChanges> ;
    sh:name "scheduled changes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Level Connected Event
shopify:InventoryLevelConnectedEventShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryLevelConnectedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/inventoryItem> ;
    sh:name "inventory item" ;
    sh:description "ID of the inventory item" ;
    sh:node shopify:InventoryItemShape ;
    sh:class shopify:InventoryItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/location> ;
    sh:name "location" ;
    sh:description "ID of the location" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/available> ;
    sh:name "available" ;
    sh:description "Available quantity at the location" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the level was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/canDeactivate> ;
    sh:name "can deactivate" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/deactivationAlert> ;
    sh:name "deactivation alert" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/item> ;
    sh:name "item" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/quantities> ;
    sh:name "quantities" ;
    sh:node shopify:InventoryQuantityShape ;
    sh:class shopify:InventoryQuantity ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelConnectedEvent/scheduledChanges> ;
    sh:name "scheduled changes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Inventory Level Disconnected Event
shopify:InventoryLevelDisconnectedEventShape a sh:NodeShape ;
  sh:targetClass shopify:InventoryLevelDisconnectedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/inventoryItem> ;
    sh:name "inventory item" ;
    sh:description "ID of the inventory item" ;
    sh:node shopify:InventoryItemShape ;
    sh:class shopify:InventoryItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/location> ;
    sh:name "location" ;
    sh:description "ID of the location" ;
    sh:node shopify:LocationShape ;
    sh:class shopify:Location ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/available> ;
    sh:name "available" ;
    sh:description "Available quantity at the location" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the level was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/canDeactivate> ;
    sh:name "can deactivate" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/deactivationAlert> ;
    sh:name "deactivation alert" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/item> ;
    sh:name "item" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/quantities> ;
    sh:name "quantities" ;
    sh:node shopify:InventoryQuantityShape ;
    sh:class shopify:InventoryQuantity ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.InventoryLevelDisconnectedEvent/scheduledChanges> ;
    sh:name "scheduled changes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order Created Event
shopify:DraftOrderCreatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderCreatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/id> ;
    sh:name "id" ;
    sh:description "Draft order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/order> ;
    sh:name "order" ;
    sh:description "ID of the order created from this draft (when completed)" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/name> ;
    sh:name "name" ;
    sh:description "Name of the draft order (e.g., #D1)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the draft order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/email> ;
    sh:name "email" ;
    sh:description "Email address for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the draft order" ;
    sh:node shopify:DraftOrderLineItemShape ;
    sh:class shopify:DraftOrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/note> ;
    sh:name "note" ;
    sh:description "Note for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Whether the draft order is tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/shippingLine> ;
    sh:name "shipping line" ;
    sh:description "Shipping line" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Subtotal price (before shipping and taxes)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price (including taxes and shipping)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalTax> ;
    sh:name "total tax" ;
    sh:description "Total tax amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/status> ;
    sh:name "status" ;
    sh:description "Draft order status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "open" "invoice_sent" "completed" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/invoiceUrl> ;
    sh:name "invoice url" ;
    sh:description "URL for the invoice" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/invoiceSentAt> ;
    sh:name "invoice sent at" ;
    sh:description "Date when the invoice was last sent" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the draft order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/appliedDiscount> ;
    sh:name "applied discount" ;
    sh:description "Discount applied to the draft order" ;
    sh:node shopify:DraftOrderDiscountShape ;
    sh:class shopify:DraftOrderDiscount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the line item prices" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/completedAt> ;
    sh:name "completed at" ;
    sh:description "Date when the draft order was completed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/paymentTerms> ;
    sh:name "payment terms" ;
    sh:description "Payment terms for the draft order" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalAdditionalFeesSet> ;
    sh:name "total additional fees set" ;
    sh:description "Total additional fees in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalDutiesSet> ;
    sh:name "total duties set" ;
    sh:description "Total duties in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/amountDueNowSet> ;
    sh:name "amount due now set" ;
    sh:description "Amount due now in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/amountDueLaterSet> ;
    sh:name "amount due later set" ;
    sh:description "Amount due later in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/acceptAutomaticDiscounts> ;
    sh:name "accept automatic discounts" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/allVariantPricesOverridden> ;
    sh:name "all variant prices overridden" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/allowDiscountCodesInCheckout> ;
    sh:name "allow discount codes in checkout" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/anyVariantPricesOverridden> ;
    sh:name "any variant prices overridden" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/defaultCursor> ;
    sh:name "default cursor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/discountCodes> ;
    sh:name "discount codes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/invoiceEmailTemplateSubject> ;
    sh:name "invoice email template subject" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/marketName> ;
    sh:name "market name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/marketRegionCountryCode> ;
    sh:name "market region country code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/note2> ;
    sh:name "note2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/phone> ;
    sh:name "phone" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/ready> ;
    sh:name "ready" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/reserveInventoryUntil> ;
    sh:name "reserve inventory until" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalQuantityOfLineItems> ;
    sh:name "total quantity of line items" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalWeight> ;
    sh:name "total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/transformerFingerprint> ;
    sh:name "transformer fingerprint" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/visibleToCustomer> ;
    sh:name "visible to customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/lineItemsSubtotalPrice> ;
    sh:name "line items subtotal price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/platformDiscounts> ;
    sh:name "platform discounts" ;
    sh:node shopify:DraftOrderPlatformDiscountShape ;
    sh:class shopify:DraftOrderPlatformDiscount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/warnings> ;
    sh:name "warnings" ;
    sh:node shopify:DraftOrderWarningShape ;
    sh:class shopify:DraftOrderWarning ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Draft Order Updated Event
shopify:DraftOrderUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/id> ;
    sh:name "id" ;
    sh:description "Draft order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/order> ;
    sh:name "order" ;
    sh:description "ID of the order created from this draft (when completed)" ;
    sh:class shopify:Order ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/name> ;
    sh:name "name" ;
    sh:description "Name of the draft order (e.g., #D1)" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer associated with the draft order" ;
    sh:node shopify:CustomerShape ;
    sh:class shopify:Customer ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/email> ;
    sh:name "email" ;
    sh:description "Email address for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/lineItems> ;
    sh:name "line items" ;
    sh:description "Line items in the draft order" ;
    sh:node shopify:DraftOrderLineItemShape ;
    sh:class shopify:DraftOrderLineItem ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/shippingAddress> ;
    sh:name "shipping address" ;
    sh:description "Shipping address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/billingAddress> ;
    sh:name "billing address" ;
    sh:description "Billing address" ;
    sh:node shopify:AddressShape ;
    sh:class shopify:Address ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/note> ;
    sh:name "note" ;
    sh:description "Note for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/tags> ;
    sh:name "tags" ;
    sh:description "Tags associated with the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Whether the draft order is tax exempt" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/taxLines> ;
    sh:name "tax lines" ;
    sh:description "Tax lines" ;
    sh:node shopify:TaxLineShape ;
    sh:class shopify:TaxLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/shippingLine> ;
    sh:name "shipping line" ;
    sh:description "Shipping line" ;
    sh:node shopify:ShippingLineShape ;
    sh:class shopify:ShippingLine ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/subtotalPrice> ;
    sh:name "subtotal price" ;
    sh:description "Subtotal price (before shipping and taxes)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total price (including taxes and shipping)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalTax> ;
    sh:name "total tax" ;
    sh:description "Total tax amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/currency> ;
    sh:name "currency" ;
    sh:description "Three-letter ISO 4217 currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/status> ;
    sh:name "status" ;
    sh:description "Draft order status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "open" "invoice_sent" "completed" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/invoiceUrl> ;
    sh:name "invoice url" ;
    sh:description "URL for the invoice" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/invoiceSentAt> ;
    sh:name "invoice sent at" ;
    sh:description "Date when the invoice was last sent" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/noteAttributes> ;
    sh:name "note attributes" ;
    sh:description "Custom attributes for the draft order" ;
    sh:node shopify:NoteAttributeShape ;
    sh:class shopify:NoteAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/appliedDiscount> ;
    sh:name "applied discount" ;
    sh:description "Discount applied to the draft order" ;
    sh:node shopify:DraftOrderDiscountShape ;
    sh:class shopify:DraftOrderDiscount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/taxesIncluded> ;
    sh:name "taxes included" ;
    sh:description "Whether taxes are included in the line item prices" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/completedAt> ;
    sh:name "completed at" ;
    sh:description "Date when the draft order was completed" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when created" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when last updated" ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms> ;
    sh:name "payment terms" ;
    sh:description "Payment terms for the draft order" ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/presentmentCurrency> ;
    sh:name "presentment currency" ;
    sh:description "Presentment currency for the draft order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalPriceSet> ;
    sh:name "total price set" ;
    sh:description "Total price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/subtotalPriceSet> ;
    sh:name "subtotal price set" ;
    sh:description "Subtotal price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalTaxSet> ;
    sh:name "total tax set" ;
    sh:description "Total tax in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalShippingPriceSet> ;
    sh:name "total shipping price set" ;
    sh:description "Total shipping price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalLineItemsPriceSet> ;
    sh:name "total line items price set" ;
    sh:description "Total line items price in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalDiscountsSet> ;
    sh:name "total discounts set" ;
    sh:description "Total discounts in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalAdditionalFeesSet> ;
    sh:name "total additional fees set" ;
    sh:description "Total additional fees in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalDutiesSet> ;
    sh:name "total duties set" ;
    sh:description "Total duties in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/amountDueNowSet> ;
    sh:name "amount due now set" ;
    sh:description "Amount due now in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/amountDueLaterSet> ;
    sh:name "amount due later set" ;
    sh:description "Amount due later in shop and presentment currencies" ;
    sh:node shopify:PriceSetShape ;
    sh:class shopify:PriceSet ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/acceptAutomaticDiscounts> ;
    sh:name "accept automatic discounts" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/allVariantPricesOverridden> ;
    sh:name "all variant prices overridden" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/allowDiscountCodesInCheckout> ;
    sh:name "allow discount codes in checkout" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/anyVariantPricesOverridden> ;
    sh:name "any variant prices overridden" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/billingAddressMatchesShippingAddress> ;
    sh:name "billing address matches shipping address" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/defaultCursor> ;
    sh:name "default cursor" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/discountCodes> ;
    sh:name "discount codes" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/hasTimelineComment> ;
    sh:name "has timeline comment" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/invoiceEmailTemplateSubject> ;
    sh:name "invoice email template subject" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/legacyResourceId> ;
    sh:name "legacy resource id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/marketName> ;
    sh:name "market name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/marketRegionCountryCode> ;
    sh:name "market region country code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/note2> ;
    sh:name "note2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/phone> ;
    sh:name "phone" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/poNumber> ;
    sh:name "po number" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/ready> ;
    sh:name "ready" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/reserveInventoryUntil> ;
    sh:name "reserve inventory until" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalQuantityOfLineItems> ;
    sh:name "total quantity of line items" ;
    sh:datatype xsd:int ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalWeight> ;
    sh:name "total weight" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/transformerFingerprint> ;
    sh:name "transformer fingerprint" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/visibleToCustomer> ;
    sh:name "visible to customer" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/customAttributes> ;
    sh:name "custom attributes" ;
    sh:node shopify:AttributeShape ;
    sh:class shopify:Attribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/events> ;
    sh:name "events" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/lineItemsSubtotalPrice> ;
    sh:name "line items subtotal price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/localizationExtensions> ;
    sh:name "localization extensions" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/localizedFields> ;
    sh:name "localized fields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/metafield> ;
    sh:name "metafield" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/metafields> ;
    sh:name "metafields" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/platformDiscounts> ;
    sh:name "platform discounts" ;
    sh:node shopify:DraftOrderPlatformDiscountShape ;
    sh:class shopify:DraftOrderPlatformDiscount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/presentmentCurrencyCode> ;
    sh:name "presentment currency code" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/purchasingEntity> ;
    sh:name "purchasing entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/totalShippingPrice> ;
    sh:name "total shipping price" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/warnings> ;
    sh:name "warnings" ;
    sh:node shopify:DraftOrderWarningShape ;
    sh:class shopify:DraftOrderWarning ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Draft Order Deleted Event
shopify:DraftOrderDeletedEventShape a sh:NodeShape ;
  sh:targetClass shopify:DraftOrderDeletedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderDeletedEvent/id> ;
    sh:name "id" ;
    sh:description "Deleted draft order ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Collection Created Event
shopify:CollectionCreatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:CollectionCreatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CollectionCreatedEvent/id> ;
    sh:name "id" ;
    sh:description "Collection ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CollectionCreatedEvent/title> ;
    sh:name "title" ;
    sh:description "Collection title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CollectionCreatedEvent/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Collection Updated Event
shopify:CollectionUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:CollectionUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CollectionUpdatedEvent/id> ;
    sh:name "id" ;
    sh:description "Collection ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CollectionUpdatedEvent/title> ;
    sh:name "title" ;
    sh:description "Collection title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CollectionUpdatedEvent/handle> ;
    sh:name "handle" ;
    sh:description "URL-friendly handle" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Collection Deleted Event
shopify:CollectionDeletedEventShape a sh:NodeShape ;
  sh:targetClass shopify:CollectionDeletedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CollectionDeletedEvent/id> ;
    sh:name "id" ;
    sh:description "Deleted collection ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Theme Published Event
shopify:ThemePublishedEventShape a sh:NodeShape ;
  sh:targetClass shopify:ThemePublishedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/id> ;
    sh:name "id" ;
    sh:description "Theme ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/name> ;
    sh:name "name" ;
    sh:description "Name of the theme" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/role> ;
    sh:name "role" ;
    sh:description "Role of the theme: main, unpublished, demo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/previewable> ;
    sh:name "previewable" ;
    sh:description "Whether the theme can be previewed" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/processing> ;
    sh:name "processing" ;
    sh:description "Whether the theme is currently being processed" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/src> ;
    sh:name "src" ;
    sh:description "URL of a ZIP file containing the theme (for creation)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/themeStoreId> ;
    sh:name "theme store id" ;
    sh:description "ID of the theme in the Shopify Theme Store" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the theme was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the theme was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemePublishedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Theme Updated Event
shopify:ThemeUpdatedEventShape a sh:NodeShape ;
  sh:targetClass shopify:ThemeUpdatedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/id> ;
    sh:name "id" ;
    sh:description "Theme ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/name> ;
    sh:name "name" ;
    sh:description "Name of the theme" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/role> ;
    sh:name "role" ;
    sh:description "Role of the theme: main, unpublished, demo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/previewable> ;
    sh:name "previewable" ;
    sh:description "Whether the theme can be previewed" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/processing> ;
    sh:name "processing" ;
    sh:description "Whether the theme is currently being processed" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/src> ;
    sh:name "src" ;
    sh:description "URL of a ZIP file containing the theme (for creation)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/themeStoreId> ;
    sh:name "theme store id" ;
    sh:description "ID of the theme in the Shopify Theme Store" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Date and time when the theme was created" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Date and time when the theme was last updated" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeUpdatedEvent/adminGraphqlApiId> ;
    sh:name "admin graphql api id" ;
    sh:description "GraphQL Admin API ID" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Theme Deleted Event
shopify:ThemeDeletedEventShape a sh:NodeShape ;
  sh:targetClass shopify:ThemeDeletedEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ThemeDeletedEvent/id> ;
    sh:name "id" ;
    sh:description "Deleted theme ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for App Uninstalled Event
shopify:AppUninstalledEventShape a sh:NodeShape ;
  sh:targetClass shopify:AppUninstalledEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.AppUninstalledEvent/id> ;
    sh:name "id" ;
    sh:description "Shop ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.AppUninstalledEvent/name> ;
    sh:name "name" ;
    sh:description "Shop name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.AppUninstalledEvent/email> ;
    sh:name "email" ;
    sh:description "Shop email" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.AppUninstalledEvent/domain> ;
    sh:name "domain" ;
    sh:description "Shop domain" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.AppUninstalledEvent/myshopifyDomain> ;
    sh:name "myshopify domain" ;
    sh:description "myshopify.com domain" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for App Scopes Update Event
shopify:AppScopesUpdateEventShape a sh:NodeShape ;
  sh:targetClass shopify:AppScopesUpdateEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.AppScopesUpdateEvent/id> ;
    sh:name "id" ;
    sh:description "Shop ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Data Request Event
shopify:CustomerDataRequestEventShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerDataRequestEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent/shopDomain> ;
    sh:name "shop domain" ;
    sh:description "Shop domain" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent/ordersRequested> ;
    sh:name "orders requested" ;
    sh:description "Order IDs requested for the customer" ;
    sh:datatype xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer information" ;
    sh:node <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerDataRequestEvent/customerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerDataRequestEvent/customer> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent/dataRequest> ;
    sh:name "data request" ;
    sh:description "Data request identifier" ;
    sh:node <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerDataRequestEvent/dataRequestShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerDataRequestEvent/dataRequest> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Redact Event
shopify:CustomerRedactEventShape a sh:NodeShape ;
  sh:targetClass shopify:CustomerRedactEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerRedactEvent/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerRedactEvent/shopDomain> ;
    sh:name "shop domain" ;
    sh:description "Shop domain" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerRedactEvent/customer> ;
    sh:name "customer" ;
    sh:description "Customer to redact" ;
    sh:node <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerRedactEvent/customerShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerRedactEvent/customer> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerRedactEvent/ordersToRedact> ;
    sh:name "orders to redact" ;
    sh:description "Order IDs to redact" ;
    sh:datatype xsd:long ;
  ] .

# Shape for Shop Redact Event
shopify:ShopRedactEventShape a sh:NodeShape ;
  sh:targetClass shopify:ShopRedactEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ShopRedactEvent/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.ShopRedactEvent/shopDomain> ;
    sh:name "shop domain" ;
    sh:description "Shop domain" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order Invoice
<https://relay.inferal.com/ontology/shopify/inline/Shopify.DraftOrderInvoiceRequest/draftOrderInvoiceShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/inline/Shopify.DraftOrderInvoiceRequest/draftOrderInvoice> ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceRequest.draftOrderInvoice/to> ;
    sh:name "to" ;
    sh:description "Email address to send the invoice to" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceRequest.draftOrderInvoice/from> ;
    sh:name "from" ;
    sh:description "Email sender address" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceRequest.draftOrderInvoice/bcc> ;
    sh:name "bcc" ;
    sh:description "Email BCC addresses" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceRequest.draftOrderInvoice/subject> ;
    sh:name "subject" ;
    sh:description "Email subject" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceRequest.draftOrderInvoice/customMessage> ;
    sh:name "custom message" ;
    sh:description "Custom message in the email body" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Draft Order Invoice
<https://relay.inferal.com/ontology/shopify/inline/Shopify.DraftOrderInvoiceResponse/draftOrderInvoiceShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/inline/Shopify.DraftOrderInvoiceResponse/draftOrderInvoice> ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceResponse.draftOrderInvoice/to> ;
    sh:name "to" ;
    sh:description "Recipient email" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceResponse.draftOrderInvoice/from> ;
    sh:name "from" ;
    sh:description "Sender email" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceResponse.draftOrderInvoice/bcc> ;
    sh:name "bcc" ;
    sh:description "BCC email addresses" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceResponse.draftOrderInvoice/subject> ;
    sh:name "subject" ;
    sh:description "Email subject" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrderInvoiceResponse.draftOrderInvoice/customMessage> ;
    sh:name "custom message" ;
    sh:description "Custom message" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer
<https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerDataRequestEvent/customerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerDataRequestEvent/customer> ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent.customer/id> ;
    sh:name "id" ;
    sh:description "Customer ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent.customer/email> ;
    sh:name "email" ;
    sh:description "Customer email" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent.customer/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Data Request
<https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerDataRequestEvent/dataRequestShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerDataRequestEvent/dataRequest> ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerDataRequestEvent.dataRequest/id> ;
    sh:name "id" ;
    sh:description "Request ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer
<https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerRedactEvent/customerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/inline/Shopify.Events.CustomerRedactEvent/customer> ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerRedactEvent.customer/id> ;
    sh:name "id" ;
    sh:description "Customer ID" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerRedactEvent.customer/email> ;
    sh:name "email" ;
    sh:description "Customer email" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.CustomerRedactEvent.customer/phone> ;
    sh:name "phone" ;
    sh:description "Customer phone" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Body
<https://relay.inferal.com/ontology/shopify/inline/Shopify.MarketDeleteSuccessResponse/bodyShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/inline/Shopify.MarketDeleteSuccessResponse/body> .

# Generated Record container shape for Shopify.AbandonedCheckout.billingAddress
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/billingAddress> ] ;
    sh:class shopify:AbandonedCheckout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.AbandonedCheckout.billingAddress
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/billingAddress/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.AbandonedCheckout.customer
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/customer> ] ;
    sh:class shopify:AbandonedCheckout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.AbandonedCheckout.customer
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/customer/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.AbandonedCheckout.discountCodes
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/discountCodes> ] ;
    sh:class shopify:AbandonedCheckout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.AbandonedCheckout.discountCodes
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/discountCodes/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.AbandonedCheckout.lineItems
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/lineItems> ] ;
    sh:class shopify:AbandonedCheckout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.AbandonedCheckout.lineItems
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/lineItems/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.AbandonedCheckout.shippingAddress
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.AbandonedCheckout/shippingAddress> ] ;
    sh:class shopify:AbandonedCheckout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.AbandonedCheckout.shippingAddress
<https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.AbandonedCheckout/shippingAddress/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.CarrierShippingRateProvider.serviceFilter
<https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.CarrierShippingRateProvider/serviceFilter> ] ;
    sh:class shopify:CarrierShippingRateProvider ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.CarrierShippingRateProvider.serviceFilter
<https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CarrierShippingRateProvider/serviceFilter/value> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Checkout.billingAddress
<https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/billingAddress> ] ;
    sh:class shopify:Checkout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Checkout.billingAddress
<https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/billingAddress/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Checkout.lineItems
<https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/lineItems> ] ;
    sh:class shopify:Checkout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Checkout.lineItems
<https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/lineItems/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Checkout.shippingAddress
<https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/shippingAddress> ] ;
    sh:class shopify:Checkout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Checkout.shippingAddress
<https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingAddress/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Checkout.shippingLine
<https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Checkout/shippingLine> ] ;
    sh:class shopify:Checkout ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Checkout.shippingLine
<https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Checkout/shippingLine/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.CollectionListing.defaultProductImage
<https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/defaultProductImage> ] ;
    sh:class shopify:CollectionListing ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.CollectionListing.defaultProductImage
<https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/defaultProductImage/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.CollectionListing.image
<https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.CollectionListing/image> ] ;
    sh:class shopify:CollectionListing ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.CollectionListing.image
<https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.CollectionListing/image/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.DraftOrder.paymentTerms
<https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.DraftOrder/paymentTerms> ] ;
    sh:class shopify:DraftOrder ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.DraftOrder.paymentTerms
<https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.DraftOrder/paymentTerms/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Events.DraftOrderCreatedEvent.paymentTerms
<https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderCreatedEvent/paymentTerms> ] ;
    sh:class shopify:DraftOrderCreatedEvent ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Events.DraftOrderCreatedEvent.paymentTerms
<https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderCreatedEvent/paymentTerms/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Events.DraftOrderUpdatedEvent.paymentTerms
<https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms> ] ;
    sh:class shopify:DraftOrderUpdatedEvent ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Events.DraftOrderUpdatedEvent.paymentTerms
<https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.DraftOrderUpdatedEvent/paymentTerms/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Events.FulfillmentCreatedEvent.receipt
<https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentCreatedEvent/receipt> ] ;
    sh:class shopify:FulfillmentCreatedEvent ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Events.FulfillmentCreatedEvent.receipt
<https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentCreatedEvent/receipt/value> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Events.FulfillmentUpdatedEvent.receipt
<https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Events.FulfillmentUpdatedEvent/receipt> ] ;
    sh:class shopify:FulfillmentUpdatedEvent ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Events.FulfillmentUpdatedEvent.receipt
<https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Events.FulfillmentUpdatedEvent/receipt/value> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Fulfillment.receipt
<https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Fulfillment/receipt> ] ;
    sh:class shopify:Fulfillment ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Fulfillment.receipt
<https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Fulfillment/receipt/value> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.FulfillmentOrder.fulfillmentHolds
<https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/fulfillmentHolds> ] ;
    sh:class shopify:FulfillmentOrder ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.FulfillmentOrder.fulfillmentHolds
<https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/fulfillmentHolds/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.FulfillmentOrder.internationalDuties
<https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.FulfillmentOrder/internationalDuties> ] ;
    sh:class shopify:FulfillmentOrder ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.FulfillmentOrder.internationalDuties
<https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.FulfillmentOrder/internationalDuties/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.GenericCollectionResponse.collection
<https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.GenericCollectionResponse/collection> ] ;
    sh:class shopify:GenericCollectionResponse ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.GenericCollectionResponse.collection
<https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.GenericCollectionResponse/collection/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Market.regions
<https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Market/regions> ] ;
    sh:class shopify:Market ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Market.regions
<https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Market/regions/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.MarketingEvent.marketedResources
<https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.MarketingEvent/marketedResources> ] ;
    sh:class shopify:MarketingEvent ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.MarketingEvent.marketedResources
<https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.MarketingEvent/marketedResources/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.Metafield.jsonValue
<https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.Metafield/jsonValue> ] ;
    sh:class shopify:Metafield ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.Metafield.jsonValue
<https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.Metafield/jsonValue/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.MetafieldDefinition.type
<https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.MetafieldDefinition/type> ] ;
    sh:class shopify:MetafieldDefinition ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.MetafieldDefinition.type
<https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.MetafieldDefinition/type/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.OrderTransaction.receiptJson
<https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.OrderTransaction/receiptJson> ] ;
    sh:class shopify:OrderTransaction ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.OrderTransaction.receiptJson
<https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.OrderTransaction/receiptJson/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.PaymentResponse.payment
<https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.PaymentResponse/payment> ] ;
    sh:class shopify:PaymentResponse ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.PaymentResponse.payment
<https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentResponse/payment/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.PaymentsResponse.payments
<https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.PaymentsResponse/payments> ] ;
    sh:class shopify:PaymentsResponse ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.PaymentsResponse.payments
<https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.PaymentsResponse/payments/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.ProductListing.images
<https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/images> ] ;
    sh:class shopify:ProductListing ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.ProductListing.images
<https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/images/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.ProductListing.variants
<https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductListing/variants> ] ;
    sh:class shopify:ProductListing ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.ProductListing.variants
<https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductListing/variants/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.ProductVariant.presentmentPrices
<https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.ProductVariant/presentmentPrices> ] ;
    sh:class shopify:ProductVariant ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.ProductVariant.presentmentPrices
<https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ProductVariant/presentmentPrices/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.ShippingRatesResponse.shippingRates
<https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.ShippingRatesResponse/shippingRates> ] ;
    sh:class shopify:ShippingRatesResponse ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.ShippingRatesResponse.shippingRates
<https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ShippingRatesResponse/shippingRates/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.ShopifyError.errors
<https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.ShopifyError/errors> ] ;
    sh:class shopify:Error ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.ShopifyError.errors
<https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.ShopifyError/errors/value> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for Shopify.TenderTransaction.paymentDetails
<https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/property/Shopify.TenderTransaction/paymentDetails> ] ;
    sh:class shopify:TenderTransaction ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/entry> ;
    sh:node <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/key> ?key . ?right <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/key> ?key . }"""
  ] .

# Generated Record entry shape for Shopify.TenderTransaction.paymentDetails
<https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/shopify/record/Shopify.TenderTransaction/paymentDetails/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .
