Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Store Information at the Organization Level: Logo, Contact Points, MerchantReturnPolicy, Shipping Policy and Precedence
Return and shipping policies aren't written into every product page; they are defined once under OnlineStore at the store level, product offers point to them with @id, and only exceptions are overridden at product level. For Bookstore we produce MerchantReturnPolicy and ShippingService from a single StorePolicy object and cover Türkiye's 14-day withdrawal right and Google's precedence between feeds, Search Console and markup.
Product Structured Data: Product Snippet or Merchant Listing? Product, Offer and Book for a Book Page
If the product can be bought on the page, merchant listing rules apply: an Offer is required and the price must be above zero; if not, it's a product snippet. On Bookstore's book page we co-type Product with Book, produce price and stock from the same object as the visible page, mark up the sale price and its end, and pin it all down with xUnit tests.