SEO.JSONLD.ShippingRateSettings (SEO v0.3.0-rc.0)

View Source

A ShippingRateSettings represents re-usable pieces of shipping information. It is designed for publication on an URL that may be referenced via the shippingSettingsLink property of an SEO.JSONLD.OfferShippingDetails. Several occurrences can be published, distinguished and matched (i.e. identified/referenced) by their different values for shippingLabel.

Helper for building a Schema.org ShippingRateSettings JSON-LD structure.

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "ShippingRateSettings", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

Build a ShippingRateSettings JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:does_not_ship) => boolean(),
    optional(:free_shipping_threshold) =>
      SEO.JSONLD.DeliveryChargeSpecification.t()
      | map()
      | SEO.JSONLD.MonetaryAmount.t(),
    optional(:is_unlabelled_fallback) => boolean(),
    optional(:order_percentage) => number(),
    optional(:shipping_destination) => SEO.JSONLD.DefinedRegion.t() | map(),
    optional(:shipping_rate) => SEO.JSONLD.MonetaryAmount.t() | map() | t(),
    optional(:weight_percentage) => number(),
    optional(:additional_type) => String.t() | URI.t(),
    optional(:alternate_name) => String.t(),
    optional(:description) => SEO.JSONLD.TextObject.t() | map() | String.t(),
    optional(:disambiguating_description) => String.t(),
    optional(:identifier) =>
      String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
    optional(:image) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:main_entity_of_page) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:name) => String.t(),
    optional(:owner) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:potential_action) => SEO.JSONLD.Action.t() | map(),
    optional(:same_as) => URI.t() | String.t(),
    optional(:subject_of) =>
      SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
    optional(:url) => URI.t() | String.t()
  }
  | [
      does_not_ship: boolean(),
      free_shipping_threshold:
        SEO.JSONLD.DeliveryChargeSpecification.t()
        | map()
        | SEO.JSONLD.MonetaryAmount.t(),
      is_unlabelled_fallback: boolean(),
      order_percentage: number(),
      shipping_destination: SEO.JSONLD.DefinedRegion.t() | map(),
      shipping_rate: SEO.JSONLD.MonetaryAmount.t() | map() | t(),
      weight_percentage: number(),
      additional_type: String.t() | URI.t(),
      alternate_name: String.t(),
      description: SEO.JSONLD.TextObject.t() | map() | String.t(),
      disambiguating_description: String.t(),
      identifier: String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
      image: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      main_entity_of_page:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      name: String.t(),
      owner: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      potential_action: SEO.JSONLD.Action.t() | map(),
      same_as: URI.t() | String.t(),
      subject_of: SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
      url: URI.t() | String.t()
    ]

t()

@type t() :: %{required(String.t()) => term()}

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "ShippingRateSettings", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

build(attrs)

@spec build(attrs()) :: t()

Build a ShippingRateSettings JSON-LD map.

Fields

  • :does_not_ship - Indicates when shipping to a particular shippingDestination is not available.
  • :free_shipping_threshold - A monetary value above (or at) which the shipping rate becomes free. Intended to be used via an SEO.JSONLD.OfferShippingDetails with shippingSettingsLink matching this SEO.JSONLD.ShippingRateSettings.
  • :is_unlabelled_fallback - This can be marked 'true' to indicate that some published DeliveryTimeSettings or SEO.JSONLD.ShippingRateSettings are intended to apply to all SEO.JSONLD.OfferShippingDetails published by the same merchant, when referenced by a shippingSettingsLink in those settings. It is not meaningful to use a 'true' value for this property alongside a transitTimeLabel (for DeliveryTimeSettings) or shippingLabel (for SEO.JSONLD.ShippingRateSettings), since this property is for use with unlabelled settings.
  • :order_percentage - Value representing the fraction of the value of the order that is charged as shipping cost. Example: 0.10 would mean shipping rate is 10% of the total order value.
  • :shipping_destination - indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.
  • :shipping_rate - The shipping rate is the cost of shipping to the specified destination. Typically, the maxValue and currency values (of the SEO.JSONLD.MonetaryAmount) are most appropriate.
  • :weight_percentage - Value representing the fraction of the weight that is used to compute the shipping price. Example: 0.10 and a shipping weight of 15kg would add $1.5 to the order price, where the $ is the currency of the order.

Inherited properties

Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: