Skip to content

Add docs pages for GA4, Google Tag Manager, Converge, Hotjar and Make apps - #63

Merged
next-devin merged 3 commits into
mainfrom
app-coverage
Oct 7, 2026
Merged

next-devin merged 3 commits into
mainfrom
app-coverage

Conversation

@next-devin

Copy link
Copy Markdown
Contributor

Adds user docs pages for first-party NEXT apps that are listed on nextcommerce.com/apps but had no docs page, and records docs coverage for every entry in the apps directory.

New pages, each written only from the app's repo (manifest, README, code, CHANGELOG), in the style of klaviyo.mdx and meta-pixel.mdx:

Page Source repo (branch, last commit)
apps/google-analytics-4 NextCommerceCo/google-analytics-4 (main, 2026-09-07, CHANGELOG 0.8)
apps/google-tag-manager NextCommerceCo/google-tag-manager (main, 2026-09-07, CHANGELOG 1.9)
apps/converge NextCommerceCo/converge-app (main, 2026-02-17)
apps/hotjar NextCommerceCo/hotjar (main, 2022-10-27)
apps/make NextCommerceCo/make-public (main, 2022-09-05)

apps/meta.json adds all five to the sidebar. Taboola (separate refresh session) and Chargeback360/midigator.mdx (separate move) are deliberately untouched.

Checks: check-markup, validate-links, audit-developer-links and check-capabilities pass locally.

Before merging

  • Confirm the GA4 0.8 and GTM 1.9 releases are published to the app store. The pages describe repo HEAD (Ads conversion value = order total, Measurement/Container ID gating, view_item_list / remove_from_cart / add_shipping_info, Skip Test Orders). If installs still run the pre-September versions, the pages are ahead of production.
  • Make: the repo holds only the OAuth manifest. The module list, connection fields and requested scopes live in Make's app definition (twentyninenext), so the page links out for them. Someone with access to the Make developer account should confirm the connection steps.
  • Shop Sync is not in this PR. See the Shop Sync section below.

Step 1: app coverage

Classification: NEXT (repo) = first-party app with a repo in NextCommerceCo; Core = built into oscar-prime (inspected, not changed); Partner = no repo in our org and no reference in oscar-prime. "Docs" is the state after this PR. Permissions are the NEXT OAuth scopes the app requests in code; storefront-only apps (settings + snippet + event tracker) request none.

First-party apps with a repo

App (apps.json slug) Repo, last commit Docs page Manifest: settings / events / permissions Gaps
Google Analytics (google-analytics) google-analytics-4, 2026-09-07 New apps/google-analytics-4 Settings: enable, Measurement ID, Ads conversion enable/ID/label, debug mode, skip test orders. Snippet global_header; event tracker maps 7 storefront events to GA4 (view_item_list … purchase) + Ads conversion. No OAuth. apps.json links.docs should point at the new page (today it links the GitHub repo as website). Deploy status of 0.8 unverified.
Google Tag Manager (not in apps.json) google-tag-manager, 2026-09-07 New apps/google-tag-manager Settings: enable, Container ID, skip test orders. Snippet global_header; tracker pushes 8 dataLayer events. No OAuth. Missing from apps.json. CHANGELOG 1.9 says the tracker creates window.top.dataLayer; code uses window.parent (doc follows code). Description still says "29 Next Platform".
Converge (converge) converge-app, 2026-02-17 New apps/converge Settings: pixel code (max 20), enable, track test orders. Snippet global_header ($page_load); tracker: Viewed Product, Added To Cart, Started Checkout, Added Contact Info, Placed Order. No OAuth. Snippet loads /pixels/.js if enabled without a pixel code, and the pixel code is not escaped. checkout_completed reads event.data?.user.email without a guard (throws if user is null). Added To Cart price is excl. tax, line items are incl. tax. README "Added Contact Info" link anchors to #added-payment-info. No CHANGELOG.
Hotjar (hotjar) hotjar, 2022-10-27 (stale, 2 commits) New apps/hotjar Settings: enable, Site ID. Snippet global_header only; no event tracker. No OAuth. Stale. Site ID is inserted unquoted and unescaped, so enabling with an empty ID throws a JS syntax error on every page. README is one line; no CHANGELOG, no tests.
Make (make) make-public, 2022-09-05 (stale, 2 commits); make-dev-app 2022-09-08 (dev only) New apps/make OAuth only: app_url make.com, redirect URIs on integromat.com. Scopes are requested by Make, not defined in the repo. Stale. Module list, connection fields and scopes are not in any NEXT repo (Make app definition). Redirect URIs still on the integromat.com domain. README says "29 Next".
Shop Sync (shop-sync) shop-sync, 2026-10-06 (develop) None, by decision. shop-sync 18166c4 (2026-10-06) says the page "is leaving the public docs" and points the app's View Docs, lost-connection and invalid-install links at guides.nextcommerce.com/guides/shop-sync-onboarding (live). NEXT OAuth: store:read webhooks:read/write catalogue:read/write metadata:read/write locations:write fulfillment_service:read/write orders:read/write users:read. NEXT webhooks: app.uninstalled, product.updated, customer.updated (+ fulfillment-service callbacks). Shopify scopes: read_products, read_inventory, read_locations, read/write_orders, write_customers, read_fulfillments, read_publications, read_merchant_managed_ and read_third_party_fulfillment_orders. apps.json links docs/apps/shop-sync, which 404s: point it at the guide. See the Shop Sync section.
Klaviyo (klaviyo) klaviyo, 2026-09-28 (develop) Exists OAuth webhooks:read/write orders:read catalogue:read; webhooks: cart.abandoned, order.created/updated, subscription.created/updated, customer.created/updated/redacted, product.created/updated, fulfillment.updated, app.uninstalled. Storefront tracker + global_footer snippet. Page not re-audited in this pass.
Meta Pixel (meta) facebook-conversion-api, 2026-05-28 (develop) Exists (apps/meta-pixel) OAuth store:read webhooks:read/write orders:read metadata:write; webhooks: app.uninstalled, order.created, store.updated. Storefront tracker + global_header snippet. Not re-audited.
Gorgias (gorgias) gorgias, 2026-07-23 (develop) Exists NEXT OAuth webhooks:read/write users:read orders:read; webhooks: customer.created/updated, order.created/updated, app.uninstalled; plus Gorgias OAuth. Page is 30 lines; not re-audited.
3PL Central (3pl-central) 3pl-central-app, 2026-05-28 (develop) Exists OAuth store:read webhooks:read/write admin:read fulfillment_service:read/write; webhook app.uninstalled; registers as a fulfillment service. Requests admin:read in addition to scoped permissions. Not re-audited.
Delivery Tracking (not in apps.json) delivery-tracking, 2026-05-28 (develop) Exists OAuth store:read webhooks:read/write orders:read orders:write; webhooks: app.uninstalled, order.updated, store.updated. Not in the apps directory although it has a docs page and is required for NEXT Payments stores.
Taboola (taboola) taboola, 2025-10-23 None (separate refresh session) Setting: pixel ID (required). Event tracker; manifest version 1.2, author "29 Next". Out of scope here.
Parcelis (parcellis) parcelis-checkout-bump, 2026-10-01 None Settings: bump product (variant) ID, position, heading, description, preselected, design, provider, benefits, accent colour. Snippet global_footer on checkout. No OAuth. Generic NEXT checkout bump forked from simple-upsell-bump; Parcelis itself is a partner service. Decide whether the directory entry should document the bump app or the Parcelis service before writing a page.
Campaigns App (not in apps.json) campaigns-app, 2026-10-07 Exists (apps/campaigns-app/) Not inspected. Not in the apps directory.

Core platform (oscar-prime)

All have a docs page except where noted. None needs an app page from this work.

App Docs page Gaps
Apple Pay, Google Pay, PayPal, Klarna (Stripe APMs) features/payments/... None found.
Adyen, Airwallex, Authorize.net, BlueSnap, Braintree, Checkout.com, NMI, Paysafe, Stripe features/payments/gateways/... Airwallex has no tagline or page copy in apps.json.
MaxMind features/payments/risk-screening None.
ShipStation apps/shipstation None.
Avalara, TaxJar apps/avalara-avatax, apps/taxjar None.
Everflow apps/everflow Core (oscar-prime), not an App Framework repo, though it sits in apps/.
Google Ads build-a-store/catalogue/google-merchant-xml-feed Conversion tracking is in the GA4 app; the directory entry could also link apps/google-analytics-4.
Zapier build-a-store/technical-settings/configure-webhooks Webhooks, not an app.

Partner-built (needs partner input, owner: Brett)

No repo in NextCommerceCo and no reference in oscar-prime. Not documented from guesswork.

App apps.json link today Needed from partner
Chargeback.io Sign-up link Setup steps, what it reads/writes in NEXT, alert types
Chargeblast None Everything
Disputifier None Everything
Chargeback360 Contact link Handled in the separate midigator.mdx move
RCVR Partner site Setup steps, scope
RedTrack RedTrack's own guide Confirm their guide is current; a short NEXT page could link it
Solvpath HubSpot booking link Setup steps, scope
Rapid Fulfillment Contact link Fulfillment flow with NEXT
Outcraft AI Demo link Setup steps, data accessed
Fulfilrr, InsureShip, Abenity, Redux Payments None (no tagline either) Confirm these are live integrations before any page; directory rows have no copy

Shop Sync

A full draft written from develop exists but is held back, because yesterday's shop-sync change moved the Shop Sync docs to the guides site. While reading the code, the draft found:

  • Docs conflicts: start-here/get-started/support-and-notifications.mdx:31 says refunds are handled in NEXT, but on develop a refund made in Shopify now creates a NEXT refund (NextCommerceCo/shop-sync#170, not in any changelog yet). Changelog 2025-01-08 says Shopify customer updates sync into NEXT, but the code only syncs NEXT to Shopify. Changelog 2026-03-20 says carriers are guessed "if the carrier is not set", but a fulfillment with no carrier sends no tracking.
  • App issues found while reading the code are left out of this public PR and go to the app owners directly.

Follow-ups outside this repo

  • nextcommerce-site src/data/apps.json (NextCommerceCo/nextcommerce-site#194): set links.docs for google-analytics, converge, hotjar, make; point shop-sync at the guide instead of the 404; add a Google Tag Manager entry; consider Delivery Tracking and Campaigns App entries.
  • converge-app and hotjar: snippet escaping and the empty-ID cases above are app bugs, not docs issues.

…ge, Hotjar and Make apps

Each page is written from the app's repo (manifest, README, tracker code,
CHANGELOG) in the style of the existing app pages, and added to the Apps
sidebar.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
nextcommerce-docs a5c6cfd Commit Preview URL

Branch Preview URL
Oct 07 2026, 09:02 AM

Comment thread content/docs/apps/hotjar.mdx Outdated
Comment thread content/docs/apps/converge.mdx
@kilo-code-bot

kilo-code-bot Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 0

Incremental re-review (since 63b5c17)

Both issues from the previous review have been addressed in the new commit a5c6cfd:

  • content/docs/apps/hotjar.mdx:25 — previous WARNING resolved. The warning now reads "Save a valid Site ID before you enable tracking. If tracking is enabled with an empty Site ID, the Hotjar code fails with a JavaScript error on every storefront page and Hotjar does not load." This matches the storefront-breaking risk flagged in the prior review.
  • content/docs/apps/converge.mdx:58-62 — previous SUGGESTION resolved. A new <Callout type="info" title="Tax in prices"> has been added below the event description, stating that Added To Cart price excludes tax, line item prices on Started Checkout, Added Contact Info and Placed Order include tax, and the order total includes tax and shipping.

No new issues found in the incremental diff. Files changed since the last review (converge.mdx, hotjar.mdx) carry no additional defects on the changed lines.

Files Reviewed (6 files)
  • content/docs/apps/converge.mdx - 0 new issues (previous SUGGESTION resolved)
  • content/docs/apps/google-analytics-4.mdx - 0 issues
  • content/docs/apps/google-tag-manager.mdx - 0 issues
  • content/docs/apps/hotjar.mdx - 0 new issues (previous WARNING resolved)
  • content/docs/apps/make.mdx - 0 issues
  • content/docs/apps/meta.json - 0 issues

Reviewer Notes

  • Scope is limited to the 6 files in this PR. The midigator→chargeback360 rename, the 301 redirects, the changelog link text/URL updates, the sharp package bumps, and the changelog-migration script edits landed via the earlier merged PR docs: move Chargeback360 page from /docs/apps/midigator to /docs/apps/chargeback360 #61 and are out of scope here.
  • All /docs/manage/orders/test-orders cross-links continue to match the convention used by meta-pixel.mdx and everflow.mdx.
  • content/docs/apps/meta.json insertion of chargeback360 in alphabetical position between campaigns-app and converge matches sidebar ordering conventions.
  • The two <Callout> blocks added by the developer (tax in prices; sharpened empty-Site-ID warning) are well placed and accurately reflect the behaviour described in the PR description.
Previous Review Summary (commit 63b5c17)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 63b5c17)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 1
Issue Details (click to expand)

WARNING

File Line Issue
content/docs/apps/hotjar.mdx 25 "Hotjar" warning understates the failure mode: enabling tracking with no/empty Site ID produces a JS syntax error on every storefront page (per PR description), not just a missing Hotjar load. Should warn that the storefront can break.

SUGGESTION

File Line Issue
content/docs/apps/converge.mdx 53 "Converge" should document the per-event tax inconsistency for Added To Cart (price excl. tax, line items incl. tax) so merchants reconciling Converge revenue against NEXT orders aren't surprised.
Files Reviewed (6 files)
  • content/docs/apps/converge.mdx - 1 issue
  • content/docs/apps/google-analytics-4.mdx - 0 issues
  • content/docs/apps/google-tag-manager.mdx - 0 issues
  • content/docs/apps/hotjar.mdx - 1 issue
  • content/docs/apps/make.mdx - 0 issues
  • content/docs/apps/meta.json - 0 issues

Reviewer Notes

  • Both issues stem from the PR description itself, which authoritatively documents known app defects (Hotjar unquoted/unescaped Site ID injection, Converge add-to-cart price/line-item tax mismatch). The new pages do not yet surface these to merchants.
  • All five new pages correctly link /docs/manage/orders/test-orders, matching the convention in meta-pixel.mdx and everflow.mdx.
  • meta.json alphabetization is consistent with the existing sidebar order.
  • Gaps the author already flagged and is tracking outside the PR (apps.json links.docs, Shop Sync guide move, stale Make/Converge/Hotjar repos, Converge checkout_completed null-guard, GTM missing from apps.json) are out of scope for this docs-only review and were not duplicated here.
  • Note: external calls to api.github.com/repos/NextCommerceCo/* were rejected by the sandbox, so findings rely on the PR description and on-disk diff/file content as authoritative sources.

Reviewed by minimax-m3 · Input: 61.4K · Output: 3.5K · Cached: 501.8K

@next-devin
next-devin merged commit 7fcb7eb into main Oct 7, 2026
4 checks passed
@next-devin
next-devin deleted the app-coverage branch October 7, 2026 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant