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

View Source

OfferShippingDetails represents information about shipping destinations.

Multiple of these entities can be used to represent different shipping rates for different destinations:

One entity for Alaska/Hawaii. A different one for continental US. A different one for all France.

Multiple of these entities can be used to represent different shipping costs and delivery times.

Two entities that are identical but differ in rate and time:

E.g. Cheaper and slower: $5 in 5-7 days or Fast and expensive: $15 in 1-2 days.

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

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "OfferShippingDetails", 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 OfferShippingDetails JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:delivery_time) => SEO.JSONLD.ShippingDeliveryTime.t() | map(),
    optional(:depth) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:does_not_ship) => boolean(),
    optional(:has_shipping_service) => SEO.JSONLD.ShippingService.t() | map(),
    optional(:height) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:shipping_destination) => SEO.JSONLD.DefinedRegion.t() | map(),
    optional(:shipping_origin) => SEO.JSONLD.DefinedRegion.t() | map(),
    optional(:shipping_rate) =>
      SEO.JSONLD.MonetaryAmount.t()
      | map()
      | SEO.JSONLD.ShippingRateSettings.t(),
    optional(:valid_for_member_tier) =>
      SEO.JSONLD.MemberProgramTier.t() | map(),
    optional(:weight) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:width) => SEO.JSONLD.QuantitativeValue.t() | map(),
    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()
  }
  | [
      delivery_time: SEO.JSONLD.ShippingDeliveryTime.t() | map(),
      depth: SEO.JSONLD.QuantitativeValue.t() | map(),
      does_not_ship: boolean(),
      has_shipping_service: SEO.JSONLD.ShippingService.t() | map(),
      height: SEO.JSONLD.QuantitativeValue.t() | map(),
      shipping_destination: SEO.JSONLD.DefinedRegion.t() | map(),
      shipping_origin: SEO.JSONLD.DefinedRegion.t() | map(),
      shipping_rate:
        SEO.JSONLD.MonetaryAmount.t()
        | map()
        | SEO.JSONLD.ShippingRateSettings.t(),
      valid_for_member_tier: SEO.JSONLD.MemberProgramTier.t() | map(),
      weight: SEO.JSONLD.QuantitativeValue.t() | map(),
      width: SEO.JSONLD.QuantitativeValue.t() | map(),
      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 "OfferShippingDetails", 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 OfferShippingDetails JSON-LD map.

Fields

  • :delivery_time - The total delay between the receipt of the order and the goods reaching the final customer.
  • :depth - The depth of the item.
  • :does_not_ship - Indicates when shipping to a particular shippingDestination is not available.
  • :has_shipping_service - Specification of a shipping service offered by the organization.
  • :height - The height of the item.
  • :shipping_destination - indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.
  • :shipping_origin - Indicates the origin of a shipment, i.e. where it should be coming from.
  • :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.
  • :valid_for_member_tier - The membership program tier(s) an Offer (or a PriceSpecification, OfferShippingDetails, or MerchantReturnPolicy under an Offer) is valid for.
  • :weight - The weight of the product or person.
  • :width - The width of the item.

Inherited properties

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