PriceSpecification¶
The superclass of all price specifications.
Diagram¶

Specializations of PriceSpecification¶
| Class | Description |
|---|---|
| Delivery Charge Specification | A delivery charge specification is a conceptual entity that specifies the additional costs asked for the delivery of a given gr:Offering using a particular gr:DeliveryMethod by the respective gr:BusinessEntity. A delivery charge specification is characterized by (1) a monetary amount per order, specified as a literal value of type float in combination with a currency, (2) the delivery method, (3) the target country or region, and (4) whether this charge includes local sales taxes, namely VAT. |
| A gr:Offering may be linked to multiple gr:DeliveryChargeSpecification nodes that specify alternative charges for disjoint combinations of target countries or regions, and delivery methods. |
Examples: Delivery by direct download is free of charge worldwide, delivery by UPS to Germany is 10 Euros per order, delivery by mail within the US is 5 Euros per order.
The total amount of this charge is specified as a float value of the gr:hasCurrencyValue property. The currency is specified via the gr:hasCurrency datatype property. Whether the price includes VAT or not is indicated by the gr:valueAddedTaxIncluded property. The gr:DeliveryMethod to which this charge applies is specified using the gr:appliesToDeliveryMethod object property. The region or regions to which this charge applies is specified using the gr:eligibleRegions property, which uses ISO 3166-1 and ISO 3166-2 codes.
If the price can only be given as a range, use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue for the upper and lower bounds.
Important: When querying for the price, always use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue. | | Payment Charge Specification | A payment charge specification is a conceptual entity that specifies the additional costs asked for settling the payment after accepting a given gr:Offering using a particular gr:PaymentMethod. A payment charge specification is characterized by (1) a monetary amount per order specified as a literal value of type float in combination with a Currency, (2) the payment method, and (3) a whether this charge includes local sales taxes, namely VAT. A gr:Offering may be linked to multiple payment charge specifications that specify alternative charges for various payment methods.
Examples: Payment by VISA or Mastercard costs a fee of 3 Euros including VAT, payment by bank transfer in advance is free of charge.
The total amount of this surcharge is specified as a float value of the gr:hasCurrencyValue property. The currency is specified via the gr:hasCurrency datatype property. Whether the price includes VAT or not is indicated by the gr:valueAddedTaxIncluded datatype property. The gr:PaymentMethod to which this charge applies is specified using the gr:appliesToPaymentMethod object property.
If the price can only be given as a range, use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue for the upper and lower bounds.
Important: When querying for the price, always use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue. | | Unit Price Specification | A unit price specification is a conceptual entity that specifies the price asked for a given gr:Offering by the respective gr:Business Entity. An offering may be linked to multiple unit price specifications that specify alternative prices for non-overlapping sets of conditions (e.g. quantities or sales regions) or with differing validity periods.
A unit price specification is characterized by (1) the lower and upper limits and the unit of measurement of the eligible quantity, (2) by a monetary amount per unit of the product or service, and (3) whether this prices includes local sales taxes, namely VAT.
Example: The price, including VAT, for 1 kg of a given material is 5 Euros per kg for 0 - 5 kg and 4 Euros for quantities above 5 kg.
The eligible quantity interval for a given price is specified using the object property gr:hasEligibleQuantity, which points to an instance of gr:QuantitativeValue. The currency is specified using the gr:hasCurrency property, which points to an ISO 4217 currency code. The unit of measurement for the eligible quantity is specified using the gr:hasUnitOfMeasurement datatype property, which points to an UN/CEFACT Common Code (3 characters).
In most cases, the appropriate unit of measurement is the UN/CEFACT Common Code "C62" for "Unit or piece", since a gr:Offering is defined by the quantity and unit of measurement of all items included (e.g. "1 kg of bananas plus a 2 kg of apples"). As long at the offering consists of only one item, it is also possible to use an unit of measurement of choice for specifying the price per unit. For bundles, however, only "C62" for "Unit or piece" is a valid unit of measurement.
You can assume that the price is given per unit or piece if there is no gr:hasUnitOfMeasurement property attached to the price.
Whether VAT and sales taxes are included in this price is specified using the property gr:valueAddedTaxIncluded (xsd:boolean).
The price per unit of measurement is specified as a float value of the gr:hasCurrencyValue property. The currency is specified via the gr:hasCurrency datatype property. Whether the price includes VAT or not is indicated by the gr:valueAddedTaxIncluded datatype property.
The property priceType can be used to indicate that the price is a retail price recommendation only (i.e. a list price).
If the price can only be given as a range, use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue for the upper and lower bounds.
Important: When querying for the price, always use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue.
Note 1: Due to the complexity of pricing scenarios in various industries, it may be necessary to create extensions of this fundamental model of price specifications. Such can be done easily by importing and refining the GoodRelations ontology.
Note 2: For Google, attaching a gr:validThrough statement to a gr:UnitPriceSpecification is mandatory. |
Formalization for PriceSpecification¶
| Property | Constraint |
|---|---|
| description | datatype rdfs:Literal |
| eligibleTransactionVolume | only PriceSpecification |
| hasCurrency | datatype xsd:string |
| hasCurrencyValue | datatype xsd:float |
| hasEligibleQuantity | only QuantitativeValue |
| hasMaxCurrencyValue | datatype xsd:float |
| hasMinCurrencyValue | datatype xsd:float |
| name | datatype rdfs:Literal |
| validFrom | datatype xsd:dateTime |
| validThrough | datatype xsd:dateTime |
| valueAddedTaxIncluded | datatype xsd:boolean |
| disjointWith | Brand |
| disjointWith | BusinessEntity |
| disjointWith | BusinessEntityType |
| disjointWith | BusinessFunction |
| disjointWith | DayOfWeek |
| disjointWith | DeliveryMethod |
| disjointWith | Location |
| disjointWith | Offering |
| disjointWith | OpeningHoursSpecification |
| disjointWith | PaymentMethod |
| disjointWith | ProductOrService |
| disjointWith | QuantitativeValue |
| disjointWith | TypeAndQuantityNode |
| disjointWith | WarrantyPromise |
| disjointWith | WarrantyScope |