Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve markup for e-commerce shipping options #2506

Closed
danbri opened this issue Mar 24, 2020 · 11 comments
Closed

Improve markup for e-commerce shipping options #2506

danbri opened this issue Mar 24, 2020 · 11 comments
Assignees
Labels
no-issue-activity

Comments

@danbri
Copy link
Contributor

danbri commented Mar 24, 2020

(this is a proposal from Google based on our experience using schema.org Product markup)

Motivation: When users search for and browse different products across the web, they often want to understand what kinds of shipping options might be available to them. It would be useful for Schema.org to have expressivity that allowed various merchants to describe their shipping policies, including cost and estimated delivery times according to delivery location. As always there are various levels of detail that might be made explicit.

Our suggestion is to start with something like the following:

Main concepts:

  • Shipping policy URL
  • For each product offer:
  • Shipping cost
  • Estimated delivery time [num days handling, num days shipping]
  • Delivery location [Country, state, zip code, etc]
  • Link to shipping policy URL

Plus these as "useful to have":

  • Modeled on your Shipping Policy page:
  • Do you offer Free Shipping above a basket threshold? [ie “Free shipping for orders above $35”]
  • Offers that qualify for your Free Shipping threshold could reference this through the shipping policy URL link

This initial version may not support dynamic pricing based on other dimensions, such as the item price or weight or dynamic carrier rates. These are consequently difficult here because of the vast number of potential edge cases, but more potentially could be supported in the future.

@danbri danbri self-assigned this Mar 24, 2020
@danbri
Copy link
Contributor Author

danbri commented Mar 24, 2020

For additional context on what we've done at Google so far:

@RichardWallis
Copy link
Contributor

RichardWallis commented Mar 24, 2020

Having 'shipping location' as a concept might also be useful. An understanding of where items are being shipped from is often an influence on purchasing decisions.

@HughP
Copy link

HughP commented Mar 24, 2020

@RichardWallis
Copy link
Contributor

RichardWallis commented Mar 24, 2020

I mean shipped from a supplier somewhere.

Example scenario 1:
Search for a product (in UK) receive links to purchasing options from a supplier in Germany, a supplier in London, and Amazon.com (shipped from USA). Lowest price Amazon.com, highest price from London UK supplier. If in a hurry purchase from London, if relaxed about delivery time would use Amazon.com.

Example 2:
Search for a product on eBay. Get several 'Buy It Now' options at differing prices from suppliers in several countries (UK, France, Germany, Singapore, China) some from their country of origin, some from local warehousing in my country.

In both cases knowing the location from whence the product is shipped would be helpful in deciding who to purchase from, and the risk to a safe and timely arrival.

@danbri
Copy link
Contributor Author

danbri commented Mar 31, 2020

@RichardWallis @HughP - thanks. We may come back to these but my colleagues tell me there are some complexities. We can revisit "ships from" later if there are use cases.

@Aaranged
Copy link

Aaranged commented Apr 28, 2020

I do not understand the utility of businessDays having a range of OpeningHoursSpecification. What is the use case of being able to say (to paraphrase the data) "WRT shipping delivery time, this business is open from Monday to Friday, 8:00 AM to 5:00 PM"? What useful calculation, or even useful information, does this provide (especially as using this to calculate days the business isn't_ open requires parsing OpeningHoursSpecification, as the "place is open if the opens property is specified, and closed otherwise")?

Additionally (and I think relevant to the point above) this needs examples, especially as understanding how to mark up QuantitativeValue is important here, and that type lacks examples too.

@github-actions
Copy link

github-actions bot commented Jul 15, 2020

Stale issue message

@github-actions github-actions bot added the no-issue-activity label Jul 15, 2020
@jsmoriss
Copy link

jsmoriss commented Oct 1, 2020

Following the source link (#2506) from https://schema.org/PostalCodeRangeSpecification:

https://schema.org/PostalCodeRangeSpecification appears to be US-centric. Many countries use alpha-numeric postal codes. Would the following be considered OK for postal codes H2* and V2X 6E3 to V2X 6S4? Is "postalCodeEnd" optional? Logically, it should be to allow for everything that matches "postalCodeBegin"...

"postalCodeRange": [
        {
                "@context": "https://schema.org",
                "@type": "PostalCodeRangeSpecification",
                "postalCodeBegin": "H2",
        },
        {
                "@context": "https://schema.org",
                "@type": "PostalCodeRangeSpecification",
                "postalCodeBegin": "V2X 6E3",
                "postalCodeEnd": "V2X 6S4"
        }
],

@inetbiz
Copy link

inetbiz commented Jan 23, 2021

@danbri Can the product schema examples be updated to reflect changes?

@inetbiz
Copy link

inetbiz commented Jan 23, 2021

Having 'shipping location' as a concept might also be useful. An understanding of where items are being shipped from is often an influence on purchasing decisions.

I don't get at all why we would mark up shipping destination at all? If a company sells internationally, the options could be endless! Google can access other linked data to calculate shipping based on browser location and shipper ( USPS, UPS, FedEx, etc all ). I don't see examples that require a certain amount to be spent to qualify for free shipping, either.

@rraue
Copy link

rraue commented Jun 9, 2022

@danbri Not sure if this is the right place to ask and suggest, but it seems like it. If I got this right the minimum for ShippingDeliveryTime is 1 day. No way to specify same day delivery for local delivery with average delivery time for a given Product, right? We could specify 0 days but I am not sure how that will be handled and some categories like food delivery usually is faster than retail delivery and I see no way to specify this food product = 40min and retail product = 1hour30min. Is this planned as the hyper local delivery business is growing and becoming more popular?

Suggestion if introducing minutes isn't feasible would be a new tag for samedaydelivery:

"deliveryTime": { 
            "@type": "ShippingDeliveryTime",
            "handlingTime": {
              "@type": "QuantitativeValue",
              "minValue": "0",
              "maxValue": "0",
              "samedaydelivery" : "Yes"
            },
            "transitTime": {
              "@type": "QuantitativeValue",
              "minValue": "0",
              "maxValue": "0",
              "samedaydelivery" : "Yes"
            },
            "cutOffTime": "19:30-08:00",
            "businessDays": {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": [ "https://schema.org/Monday", "https://schema.org/Tuesday", "https://schema.org/Wednesday", "https://schema.org/Thursday" ]
            }
          }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-issue-activity
Projects
None yet
Development

No branches or pull requests

7 participants