Skip to content

Developer notes

  • Tables: cscart_kv_gsc_pages (one row per URL and storefront: object type p/c/a/h/o, object id, clicks, impressions, position, top query), cscart_kv_gsc_queries (top 10 queries per URL), cscart_kv_gsc_daily (site totals per day over two periods).
  • Storage data (per company id): kv_gsc_conn_<id> (encrypted key + property), kv_gsc_token_<id> (encrypted access token), kv_gsc_state_<id> (last sync, error, range), kv_gsc_sites_<id> (properties from the last test).
  • API calls: POST https://oauth2.googleapis.com/token (JWT bearer, RS256 signed with openssl), GET webmasters/v3/sites, POST webmasters/v3/sites/{property}/searchAnalytics/query with the dimensions date, page and page,query, type=web, dataState=final, paged by 25,000 rows.
  • Hooks: none on the storefront. Admin: products.post.php and categories.post.php controllers add the tab, template hooks products:tabs_extra and categories:tabs_extra.
  • Cron: admin.php --dispatch=kv_search_console.cron (force=1 syncs every connection now).