{
  "actorSpecification": 1,
  "fields": {
    "properties": {
      "availability": {
        "description": "Availability text.",
        "type": "string"
      },
      "badge": {
        "description": "Observed badge such as Best price or Low price.",
        "type": "string"
      },
      "brand": {
        "description": "Brand from the product viewer.",
        "type": "string"
      },
      "catalogId": {
        "description": "Real Google Shopping catalog ID from data-cid; used to build viewer URLs.",
        "type": "string"
      },
      "condition": {
        "description": "Condition when Google shows one.",
        "type": "string"
      },
      "currency": {
        "description": "Actual detected currency code. Never relabelled from the requested country.",
        "type": "string"
      },
      "dealFlags": {
        "description": "Observed deal signals.",
        "properties": {
          "bestPrice": {
            "type": "boolean"
          },
          "onSale": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "delivery": {
        "description": "Delivery text.",
        "type": "string"
      },
      "description": {
        "description": "Product description from the viewer.",
        "type": "string"
      },
      "discountPercent": {
        "description": "Observed discount percentage.",
        "type": "number"
      },
      "discussions": {
        "description": "Forum/discussion links about the product (not product review text).",
        "items": {
          "properties": {
            "source": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "url": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "hasMoreOffers": {
        "description": "True when Google reports more seller offers than the five on the viewer page.",
        "type": "boolean"
      },
      "highestPrice": {
        "description": "Highest price among the offers on the page.",
        "type": "number"
      },
      "imageUrl": {
        "description": "Primary product image URL.",
        "type": "string"
      },
      "imageUrls": {
        "description": "Product image URLs from the viewer.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "isSponsored": {
        "description": "True only when an explicit sponsored label was observed. Not a reliable ad classifier.",
        "type": "boolean"
      },
      "lowestPrice": {
        "description": "Lowest price among the offers on the page.",
        "type": "number"
      },
      "merchant": {
        "description": "Seller or merchant name.",
        "type": "string"
      },
      "merchantUrl": {
        "description": "Direct seller URL when available; otherwise the Google /goto redirect. Never guessed.",
        "type": "string"
      },
      "offerCount": {
        "description": "Total offer count reported by Google; only the first five offers are available over HTTP.",
        "type": "integer"
      },
      "offers": {
        "description": "First five seller offers from the product viewer.",
        "items": {
          "properties": {
            "availability": {
              "type": "string"
            },
            "badge": {
              "type": "string"
            },
            "currency": {
              "type": "string"
            },
            "delivery": {
              "type": "string"
            },
            "discountPercent": {
              "type": "number"
            },
            "isBestPrice": {
              "type": "boolean"
            },
            "originalPrice": {
              "type": "string"
            },
            "originalPriceValue": {
              "type": "number"
            },
            "price": {
              "type": "string"
            },
            "priceValue": {
              "type": "number"
            },
            "returns": {
              "type": "string"
            },
            "seller": {
              "type": "string"
            },
            "sellerDomain": {
              "type": "string"
            },
            "sellerId": {
              "type": "string"
            },
            "sellerUrl": {
              "type": "string"
            },
            "shipping": {
              "type": "string"
            },
            "shippingValue": {
              "type": "number"
            },
            "storeRating": {
              "type": "number"
            },
            "storeReviewCount": {
              "type": "integer"
            },
            "title": {
              "type": "string"
            },
            "totalPrice": {
              "type": "number"
            },
            "totalPriceDisplay": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "originalPrice": {
        "description": "Original or list price as displayed, when discounted.",
        "type": "string"
      },
      "originalPriceValue": {
        "description": "Numeric original price.",
        "type": "number"
      },
      "position": {
        "description": "1-based position in the collected result set.",
        "type": "integer"
      },
      "price": {
        "description": "Current price as displayed, including currency symbol or code.",
        "type": "string"
      },
      "priceHistory": {
        "description": "Per-seller daily price history for the last 12 months, when Google exposes it.",
        "items": {
          "properties": {
            "currency": {
              "type": "string"
            },
            "points": {
              "items": {
                "properties": {
                  "date": {
                    "type": "string"
                  },
                  "price": {
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "seller": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "priceRange": {
        "description": "Low/high price range across page offers.",
        "properties": {
          "currency": {
            "type": "string"
          },
          "high": {
            "type": "number"
          },
          "low": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "priceValue": {
        "description": "Numeric current price.",
        "type": "number"
      },
      "productId": {
        "description": "Real Google Shopping product ID from data-pid.",
        "type": "string"
      },
      "productUrl": {
        "description": "Real Google Shopping product viewer URL.",
        "type": "string"
      },
      "query": {
        "description": "Search query or category/deal query that produced the record.",
        "type": "string"
      },
      "rating": {
        "description": "Product rating as displayed on the search card.",
        "type": "string"
      },
      "ratingValue": {
        "description": "Numeric product rating.",
        "type": "number"
      },
      "recordType": {
        "description": "searchResult or product.",
        "type": "string"
      },
      "returns": {
        "description": "Returns policy text.",
        "type": "string"
      },
      "reviewCount": {
        "description": "Product review count as displayed on the search card.",
        "type": "string"
      },
      "reviewCountValue": {
        "description": "Numeric product review count.",
        "type": "integer"
      },
      "scrapedAt": {
        "description": "ISO 8601 collection timestamp.",
        "type": "string"
      },
      "searchUrl": {
        "description": "URL that produced the record.",
        "type": "string"
      },
      "sellerDomain": {
        "description": "Seller domain when Google exposes it.",
        "type": "string"
      },
      "shipping": {
        "description": "Shipping text (e.g. Free).",
        "type": "string"
      },
      "shippingValue": {
        "description": "Numeric shipping cost when known.",
        "type": "number"
      },
      "specifications": {
        "description": "Product specifications from the viewer.",
        "items": {
          "properties": {
            "name": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "title": {
        "description": "Product title.",
        "type": "string"
      },
      "typicalPriceRange": {
        "description": "Typical price range reported by Google, when shown.",
        "properties": {
          "currency": {
            "type": "string"
          },
          "display": {
            "type": "string"
          },
          "high": {
            "type": "number"
          },
          "low": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "variants": {
        "description": "Product variants exposed by the viewer.",
        "items": {
          "properties": {
            "currency": {
              "type": "string"
            },
            "imageUrl": {
              "type": "string"
            },
            "price": {
              "type": "string"
            },
            "priceValue": {
              "type": "number"
            },
            "productUrl": {
              "type": "string"
            },
            "title": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    },
    "type": "object"
  },
  "title": "Google Shopping Products, Offers and Price History",
  "views": {
    "offers": {
      "display": {
        "component": "table",
        "properties": {
          "highestPrice": {
            "format": "number",
            "label": "Highest"
          },
          "lowestPrice": {
            "format": "number",
            "label": "Lowest"
          },
          "offerCount": {
            "format": "number",
            "label": "Offers"
          },
          "offers": {
            "format": "text",
            "label": "Page Offers"
          },
          "priceHistory": {
            "format": "text",
            "label": "History"
          },
          "productUrl": {
            "format": "link",
            "label": "Viewer"
          },
          "title": {
            "format": "text",
            "label": "Product"
          },
          "typicalPriceRange": {
            "format": "text",
            "label": "Typical"
          }
        }
      },
      "title": "Offers and Price History",
      "transformation": {
        "fields": [
          "title",
          "offerCount",
          "lowestPrice",
          "highestPrice",
          "typicalPriceRange",
          "offers",
          "priceHistory",
          "productUrl"
        ]
      }
    },
    "overview": {
      "display": {
        "component": "table",
        "properties": {
          "currency": {
            "format": "text",
            "label": "Currency"
          },
          "merchant": {
            "format": "text",
            "label": "Merchant"
          },
          "position": {
            "format": "number",
            "label": "#"
          },
          "price": {
            "format": "text",
            "label": "Price"
          },
          "query": {
            "format": "text",
            "label": "Query"
          },
          "rating": {
            "format": "text",
            "label": "Rating"
          },
          "recordType": {
            "format": "text",
            "label": "Type"
          },
          "reviewCount": {
            "format": "text",
            "label": "Reviews"
          },
          "title": {
            "format": "text",
            "label": "Product"
          }
        }
      },
      "title": "Products Overview",
      "transformation": {
        "fields": [
          "query",
          "position",
          "title",
          "price",
          "currency",
          "merchant",
          "rating",
          "reviewCount",
          "recordType"
        ]
      }
    }
  }
}
