SEO. JSONLD. ProductCollection
(SEO v0.3.0-rc.0)
View Source
A set of products (either SEO.JSONLD.ProductGroups or specific variants) that are listed together e.g. in an SEO.JSONLD.Offer.
Helper for building a Schema.org ProductCollection JSON-LD structure.
Summary
Types
A JSON-LD map ready to be nested or rendered. String-keyed, always
includes "@type" set to "ProductCollection", 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 ProductCollection JSON-LD map.
Types
@type attrs() :: %{ optional(:includes_object) => SEO.JSONLD.TypeAndQuantityNode.t() | map(), optional(:collection_size) => integer(), optional(:additional_property) => SEO.JSONLD.PropertyValue.t() | map(), optional(:aggregate_rating) => SEO.JSONLD.AggregateRating.t() | map(), optional(:asin) => String.t() | URI.t(), optional(:audience) => SEO.JSONLD.Audience.t() | map(), optional(:award) => String.t(), optional(:awards) => String.t(), optional(:brand) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Brand.t(), optional(:category) => String.t() | URI.t() | SEO.JSONLD.Thing.t() | map() | :aerobic_activity | :anaerobic_activity | :balance | :flexibility | :leisure_time_activity | :occupational_activity | :strength_training | SEO.JSONLD.CategoryCode.t(), optional(:color) => String.t(), optional(:color_swatch) => URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(), optional(:country_of_assembly) => String.t(), optional(:country_of_last_processing) => String.t(), optional(:country_of_origin) => SEO.JSONLD.Country.t() | map(), optional(:depth) => SEO.JSONLD.QuantitativeValue.t() | map(), optional(:display_location) => SEO.JSONLD.Place.t() | map(), optional(:funding) => SEO.JSONLD.Grant.t() | map(), optional(:gtin) => String.t() | URI.t(), optional(:gtin12) => String.t(), optional(:gtin13) => String.t(), optional(:gtin14) => String.t(), optional(:gtin8) => String.t(), optional(:has_adult_consideration) => :alcohol_consideration | :dangerous_good_consideration | :healthcare_consideration | :narcotic_consideration | :reduced_relevance_for_children_consideration | :sexual_content_consideration | :tobacco_nicotine_consideration | :unclassified_adult_consideration | :violence_consideration | :weapon_consideration, optional(:has_certification) => SEO.JSONLD.Certification.t() | map(), optional(:has_energy_consumption_details) => SEO.JSONLD.EnergyConsumptionDetails.t() | map(), optional(:has_gs1_digital_link) => URI.t() | String.t(), optional(:has_measurement) => SEO.JSONLD.QuantitativeValue.t() | map(), optional(:has_merchant_return_policy) => SEO.JSONLD.MerchantReturnPolicy.t() | map(), optional(:height) => SEO.JSONLD.QuantitativeValue.t() | map(), optional(:in_product_group_with_id) => String.t(), optional(:is_accessory_or_spare_part_for) => SEO.JSONLD.Product.t() | map(), optional(:is_consumable_for) => SEO.JSONLD.Product.t() | map(), optional(:is_family_friendly) => boolean(), optional(:is_related_to) => SEO.JSONLD.Service.t() | map() | SEO.JSONLD.Product.t(), optional(:is_similar_to) => SEO.JSONLD.Service.t() | map() | SEO.JSONLD.Product.t(), optional(:is_variant_of) => SEO.JSONLD.ProductModel.t() | map() | SEO.JSONLD.ProductGroup.t(), optional(:item_condition) => :damaged_condition | :new_condition | :refurbished_condition | :used_condition, optional(:keywords) => SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(), optional(:logo) => URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(), optional(:manufacturer) => SEO.JSONLD.Organization.t() | map(), optional(:material) => String.t() | SEO.JSONLD.Product.t() | map() | URI.t(), optional(:mobile_url) => String.t(), optional(:model) => String.t() | SEO.JSONLD.ProductModel.t() | map(), optional(:mpn) => String.t(), optional(:negative_notes) => SEO.JSONLD.ItemList.t() | map() | SEO.JSONLD.ListItem.t() | String.t() | SEO.JSONLD.WebContent.t(), optional(:nsn) => String.t(), optional(:offers) => SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(), optional(:pattern) => SEO.JSONLD.DefinedTerm.t() | map() | String.t(), optional(:positive_notes) => SEO.JSONLD.WebContent.t() | map() | SEO.JSONLD.ItemList.t() | SEO.JSONLD.ListItem.t() | String.t(), optional(:product_id) => String.t(), optional(:production_date) => Date.t() | String.t(), optional(:purchase_date) => Date.t() | String.t(), optional(:release_date) => Date.t() | String.t(), optional(:review) => SEO.JSONLD.Review.t() | map(), optional(:reviews) => SEO.JSONLD.Review.t() | map(), optional(:size) => SEO.JSONLD.DefinedTerm.t() | map() | SEO.JSONLD.QuantitativeValue.t() | String.t(), optional(:sku) => String.t(), optional(:slogan) => String.t(), optional(:weight) => SEO.JSONLD.QuantitativeValue.t() | map(), optional(:width) => SEO.JSONLD.QuantitativeValue.t() | map(), optional(:about) => SEO.JSONLD.Thing.t() | map(), optional(:abstract) => String.t(), optional(:access_mode) => String.t(), optional(:access_mode_sufficient) => SEO.JSONLD.ItemList.t() | map(), optional(:accessibility_api) => String.t(), optional(:accessibility_control) => String.t(), optional(:accessibility_feature) => String.t(), optional(:accessibility_hazard) => String.t(), optional(:accessibility_summary) => String.t(), optional(:accountable_person) => SEO.JSONLD.Person.t() | map(), optional(:acquire_license_page) => SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), optional(:alternative_headline) => String.t(), optional(:archived_at) => SEO.JSONLD.WebPage.t() | map() | URI.t() | String.t(), optional(:assesses) => String.t() | SEO.JSONLD.DefinedTerm.t() | map(), optional(:associated_media) => SEO.JSONLD.MediaObject.t() | map(), optional(:audio) => SEO.JSONLD.Clip.t() | map() | SEO.JSONLD.MusicRecording.t() | SEO.JSONLD.AudioObject.t(), optional(:author) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:character) => SEO.JSONLD.Person.t() | map(), optional(:citation) => SEO.JSONLD.CreativeWork.t() | map() | String.t(), optional(:comment) => SEO.JSONLD.Comment.t() | map(), optional(:comment_count) => integer(), optional(:conditions_of_access) => String.t(), optional(:content_location) => SEO.JSONLD.Place.t() | map(), optional(:content_rating) => String.t() | SEO.JSONLD.Rating.t() | map(), optional(:content_reference_time) => DateTime.t() | NaiveDateTime.t() | String.t(), optional(:contributor) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:copyright_holder) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:copyright_notice) => String.t(), optional(:copyright_year) => number(), optional(:correction) => SEO.JSONLD.CorrectionComment.t() | map() | String.t() | URI.t(), optional(:creative_work_status) => SEO.JSONLD.DefinedTerm.t() | map() | String.t(), optional(:creator) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:credit_text) => String.t(), optional(:date_created) => DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), optional(:date_modified) => DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), optional(:date_published) => Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(), optional(:digital_source_type) => :algorithmic_media_digital_source | :algorithmically_enhanced_digital_source | :composite_capture_digital_source | :composite_digital_source | :composite_synthetic_digital_source | :composite_with_trained_algorithmic_media_digital_source | :data_driven_media_digital_source | :digital_art_digital_source | :digital_capture_digital_source | :minor_human_edits_digital_source | :multi_frame_computational_capture_digital_source | :negative_film_digital_source | :positive_film_digital_source | :print_digital_source | :screen_capture_digital_source | :trained_algorithmic_media_digital_source | :virtual_recording_digital_source, optional(:discussion_url) => URI.t() | String.t(), optional(:edit_eidr) => String.t() | URI.t(), optional(:editor) => SEO.JSONLD.Person.t() | map(), optional(:educational_alignment) => SEO.JSONLD.AlignmentObject.t() | map(), optional(:educational_level) => String.t() | URI.t() | SEO.JSONLD.DefinedTerm.t() | map(), optional(:educational_use) => SEO.JSONLD.DefinedTerm.t() | map() | String.t(), optional(:encoding) => SEO.JSONLD.MediaObject.t() | map(), optional(:encoding_format) => String.t() | URI.t(), optional(:encodings) => SEO.JSONLD.MediaObject.t() | map(), optional(:example_of_work) => SEO.JSONLD.CreativeWork.t() | map(), optional(:expires) => Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(), optional(:file_format) => String.t() | URI.t(), optional(:funder) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:genre) => String.t() | URI.t() | SEO.JSONLD.DefinedTerm.t() | map(), optional(:has_part) => SEO.JSONLD.CreativeWork.t() | map(), optional(:headline) => String.t(), optional(:in_language) => String.t() | SEO.JSONLD.Language.t() | map(), optional(:interaction_statistic) => SEO.JSONLD.InteractionCounter.t() | map(), optional(:interactivity_type) => String.t(), optional(:interpreted_as_claim) => SEO.JSONLD.Claim.t() | map(), optional(:is_accessible_for_free) => boolean(), optional(:is_based_on) => SEO.JSONLD.CreativeWork.t() | map() | SEO.JSONLD.Product.t() | URI.t() | String.t(), optional(:is_based_on_url) => SEO.JSONLD.CreativeWork.t() | map() | SEO.JSONLD.Product.t() | URI.t() | String.t(), optional(:is_part_of) => SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), optional(:learning_resource_type) => String.t() | SEO.JSONLD.DefinedTerm.t() | map(), optional(:license) => SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), optional(:location_created) => SEO.JSONLD.Place.t() | map(), optional(:main_entity) => SEO.JSONLD.Thing.t() | map(), optional(:maintainer) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:material_extent) => SEO.JSONLD.QuantitativeValue.t() | map() | String.t(), optional(:mentions) => SEO.JSONLD.Thing.t() | map(), optional(:position) => String.t() | integer(), optional(:producer) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:provider) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:publication) => SEO.JSONLD.PublicationEvent.t() | map(), optional(:publisher) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:publisher_imprint) => SEO.JSONLD.Organization.t() | map(), optional(:publishing_principles) => SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), optional(:recorded_at) => SEO.JSONLD.Event.t() | map(), optional(:released_event) => SEO.JSONLD.PublicationEvent.t() | map(), optional(:schema_version) => String.t() | URI.t(), optional(:sd_date_published) => Date.t() | String.t(), optional(:sd_license) => URI.t() | String.t() | SEO.JSONLD.CreativeWork.t() | map(), optional(:sd_publisher) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:source_organization) => SEO.JSONLD.Organization.t() | map(), optional(:spatial) => SEO.JSONLD.Place.t() | map(), optional(:spatial_coverage) => SEO.JSONLD.Place.t() | map(), optional(:sponsor) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:teaches) => SEO.JSONLD.DefinedTerm.t() | map() | String.t(), optional(:temporal) => String.t() | DateTime.t() | NaiveDateTime.t(), optional(:temporal_coverage) => String.t() | URI.t() | DateTime.t() | NaiveDateTime.t(), optional(:text) => String.t(), optional(:thumbnail) => SEO.JSONLD.ImageObject.t() | map(), optional(:thumbnail_url) => URI.t() | String.t(), optional(:time_required) => Duration.t() | String.t(), optional(:translation_of_work) => SEO.JSONLD.CreativeWork.t() | map(), optional(:translator) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:typical_age_range) => String.t(), optional(:usage_info) => SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), optional(:version) => String.t() | number(), optional(:video) => SEO.JSONLD.VideoObject.t() | map() | SEO.JSONLD.Clip.t(), optional(:word_count) => integer(), optional(:work_example) => SEO.JSONLD.CreativeWork.t() | map(), optional(:work_translation) => SEO.JSONLD.CreativeWork.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() } | [ includes_object: SEO.JSONLD.TypeAndQuantityNode.t() | map(), collection_size: integer(), additional_property: SEO.JSONLD.PropertyValue.t() | map(), aggregate_rating: SEO.JSONLD.AggregateRating.t() | map(), asin: String.t() | URI.t(), audience: SEO.JSONLD.Audience.t() | map(), award: String.t(), awards: String.t(), brand: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Brand.t(), category: String.t() | URI.t() | SEO.JSONLD.Thing.t() | map() | :aerobic_activity | :anaerobic_activity | :balance | :flexibility | :leisure_time_activity | :occupational_activity | :strength_training | SEO.JSONLD.CategoryCode.t(), color: String.t(), color_swatch: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(), country_of_assembly: String.t(), country_of_last_processing: String.t(), country_of_origin: SEO.JSONLD.Country.t() | map(), depth: SEO.JSONLD.QuantitativeValue.t() | map(), display_location: SEO.JSONLD.Place.t() | map(), funding: SEO.JSONLD.Grant.t() | map(), gtin: String.t() | URI.t(), gtin12: String.t(), gtin13: String.t(), gtin14: String.t(), gtin8: String.t(), has_adult_consideration: :alcohol_consideration | :dangerous_good_consideration | :healthcare_consideration | :narcotic_consideration | :reduced_relevance_for_children_consideration | :sexual_content_consideration | :tobacco_nicotine_consideration | :unclassified_adult_consideration | :violence_consideration | :weapon_consideration, has_certification: SEO.JSONLD.Certification.t() | map(), has_energy_consumption_details: SEO.JSONLD.EnergyConsumptionDetails.t() | map(), has_gs1_digital_link: URI.t() | String.t(), has_measurement: SEO.JSONLD.QuantitativeValue.t() | map(), has_merchant_return_policy: SEO.JSONLD.MerchantReturnPolicy.t() | map(), height: SEO.JSONLD.QuantitativeValue.t() | map(), in_product_group_with_id: String.t(), is_accessory_or_spare_part_for: SEO.JSONLD.Product.t() | map(), is_consumable_for: SEO.JSONLD.Product.t() | map(), is_family_friendly: boolean(), is_related_to: SEO.JSONLD.Service.t() | map() | SEO.JSONLD.Product.t(), is_similar_to: SEO.JSONLD.Service.t() | map() | SEO.JSONLD.Product.t(), is_variant_of: SEO.JSONLD.ProductModel.t() | map() | SEO.JSONLD.ProductGroup.t(), item_condition: :damaged_condition | :new_condition | :refurbished_condition | :used_condition, keywords: SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(), logo: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(), manufacturer: SEO.JSONLD.Organization.t() | map(), material: String.t() | SEO.JSONLD.Product.t() | map() | URI.t(), mobile_url: String.t(), model: String.t() | SEO.JSONLD.ProductModel.t() | map(), mpn: String.t(), negative_notes: SEO.JSONLD.ItemList.t() | map() | SEO.JSONLD.ListItem.t() | String.t() | SEO.JSONLD.WebContent.t(), nsn: String.t(), offers: SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(), pattern: SEO.JSONLD.DefinedTerm.t() | map() | String.t(), positive_notes: SEO.JSONLD.WebContent.t() | map() | SEO.JSONLD.ItemList.t() | SEO.JSONLD.ListItem.t() | String.t(), product_id: String.t(), production_date: Date.t() | String.t(), purchase_date: Date.t() | String.t(), release_date: Date.t() | String.t(), review: SEO.JSONLD.Review.t() | map(), reviews: SEO.JSONLD.Review.t() | map(), size: SEO.JSONLD.DefinedTerm.t() | map() | SEO.JSONLD.QuantitativeValue.t() | String.t(), sku: String.t(), slogan: String.t(), weight: SEO.JSONLD.QuantitativeValue.t() | map(), width: SEO.JSONLD.QuantitativeValue.t() | map(), about: SEO.JSONLD.Thing.t() | map(), abstract: String.t(), access_mode: String.t(), access_mode_sufficient: SEO.JSONLD.ItemList.t() | map(), accessibility_api: String.t(), accessibility_control: String.t(), accessibility_feature: String.t(), accessibility_hazard: String.t(), accessibility_summary: String.t(), accountable_person: SEO.JSONLD.Person.t() | map(), acquire_license_page: SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), alternative_headline: String.t(), archived_at: SEO.JSONLD.WebPage.t() | map() | URI.t() | String.t(), assesses: String.t() | SEO.JSONLD.DefinedTerm.t() | map(), associated_media: SEO.JSONLD.MediaObject.t() | map(), audio: SEO.JSONLD.Clip.t() | map() | SEO.JSONLD.MusicRecording.t() | SEO.JSONLD.AudioObject.t(), author: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), character: SEO.JSONLD.Person.t() | map(), citation: SEO.JSONLD.CreativeWork.t() | map() | String.t(), comment: SEO.JSONLD.Comment.t() | map(), comment_count: integer(), conditions_of_access: String.t(), content_location: SEO.JSONLD.Place.t() | map(), content_rating: String.t() | SEO.JSONLD.Rating.t() | map(), content_reference_time: DateTime.t() | NaiveDateTime.t() | String.t(), contributor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), copyright_holder: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), copyright_notice: String.t(), copyright_year: number(), correction: SEO.JSONLD.CorrectionComment.t() | map() | String.t() | URI.t(), creative_work_status: SEO.JSONLD.DefinedTerm.t() | map() | String.t(), creator: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), credit_text: String.t(), date_created: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), date_modified: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), date_published: Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(), digital_source_type: :algorithmic_media_digital_source | :algorithmically_enhanced_digital_source | :composite_capture_digital_source | :composite_digital_source | :composite_synthetic_digital_source | :composite_with_trained_algorithmic_media_digital_source | :data_driven_media_digital_source | :digital_art_digital_source | :digital_capture_digital_source | :minor_human_edits_digital_source | :multi_frame_computational_capture_digital_source | :negative_film_digital_source | :positive_film_digital_source | :print_digital_source | :screen_capture_digital_source | :trained_algorithmic_media_digital_source | :virtual_recording_digital_source, discussion_url: URI.t() | String.t(), edit_eidr: String.t() | URI.t(), editor: SEO.JSONLD.Person.t() | map(), educational_alignment: SEO.JSONLD.AlignmentObject.t() | map(), educational_level: String.t() | URI.t() | SEO.JSONLD.DefinedTerm.t() | map(), educational_use: SEO.JSONLD.DefinedTerm.t() | map() | String.t(), encoding: SEO.JSONLD.MediaObject.t() | map(), encoding_format: String.t() | URI.t(), encodings: SEO.JSONLD.MediaObject.t() | map(), example_of_work: SEO.JSONLD.CreativeWork.t() | map(), expires: Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(), file_format: String.t() | URI.t(), funder: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), genre: String.t() | URI.t() | SEO.JSONLD.DefinedTerm.t() | map(), has_part: SEO.JSONLD.CreativeWork.t() | map(), headline: String.t(), in_language: String.t() | SEO.JSONLD.Language.t() | map(), interaction_statistic: SEO.JSONLD.InteractionCounter.t() | map(), interactivity_type: String.t(), interpreted_as_claim: SEO.JSONLD.Claim.t() | map(), is_accessible_for_free: boolean(), is_based_on: SEO.JSONLD.CreativeWork.t() | map() | SEO.JSONLD.Product.t() | URI.t() | String.t(), is_based_on_url: SEO.JSONLD.CreativeWork.t() | map() | SEO.JSONLD.Product.t() | URI.t() | String.t(), is_part_of: SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), learning_resource_type: String.t() | SEO.JSONLD.DefinedTerm.t() | map(), license: SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), location_created: SEO.JSONLD.Place.t() | map(), main_entity: SEO.JSONLD.Thing.t() | map(), maintainer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), material_extent: SEO.JSONLD.QuantitativeValue.t() | map() | String.t(), mentions: SEO.JSONLD.Thing.t() | map(), position: String.t() | integer(), producer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), provider: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), publication: SEO.JSONLD.PublicationEvent.t() | map(), publisher: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), publisher_imprint: SEO.JSONLD.Organization.t() | map(), publishing_principles: SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), recorded_at: SEO.JSONLD.Event.t() | map(), released_event: SEO.JSONLD.PublicationEvent.t() | map(), schema_version: String.t() | URI.t(), sd_date_published: Date.t() | String.t(), sd_license: URI.t() | String.t() | SEO.JSONLD.CreativeWork.t() | map(), sd_publisher: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), source_organization: SEO.JSONLD.Organization.t() | map(), spatial: SEO.JSONLD.Place.t() | map(), spatial_coverage: SEO.JSONLD.Place.t() | map(), sponsor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), teaches: SEO.JSONLD.DefinedTerm.t() | map() | String.t(), temporal: String.t() | DateTime.t() | NaiveDateTime.t(), temporal_coverage: String.t() | URI.t() | DateTime.t() | NaiveDateTime.t(), text: String.t(), thumbnail: SEO.JSONLD.ImageObject.t() | map(), thumbnail_url: URI.t() | String.t(), time_required: Duration.t() | String.t(), translation_of_work: SEO.JSONLD.CreativeWork.t() | map(), translator: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), typical_age_range: String.t(), usage_info: SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(), version: String.t() | number(), video: SEO.JSONLD.VideoObject.t() | map() | SEO.JSONLD.Clip.t(), word_count: integer(), work_example: SEO.JSONLD.CreativeWork.t() | map(), work_translation: SEO.JSONLD.CreativeWork.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() ]
A JSON-LD map ready to be nested or rendered. String-keyed, always
includes "@type" set to "ProductCollection", 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 ProductCollection JSON-LD map.
Fields
:includes_object- This links to a node or nodes indicating the exact quantity of the products included in anSEO.JSONLD.OfferorSEO.JSONLD.ProductCollection.
Inherited properties
Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: