=== SyncBeacon ===
Contributors: syncbeacon
Tags: woocommerce, conversion tracking, meta capi, google ads, gdpr
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Three products in one for WooCommerce: server-side CAPI, browser tracking with dedup (no GTM), and auto ad-pause on out-of-stock. GDPR-ready.

== Description ==

**SyncBeacon is three products in one** for WooCommerce stores that advertise on Meta, Google, and other platforms:

1. **Server-side conversion tracking** - WooCommerce orders reach Meta CAPI, Google Ads, and more via secure APIs - not fragile browser pixels alone.
2. **Browser-side tracking with automatic deduplication** - one lightweight `sb.js` tag captures PageView, AddToCart, and checkout steps. No Google Tag Manager. No per-platform pixels to maintain. Browser and server events are deduplicated so platforms do not double-count.
3. **Auto ad-pause on out-of-stock products** - when a SKU goes OOS, SyncBeacon can pause linked ads so you stop paying for clicks that cannot convert.

**Easy to use.** Install the free plugin → click **Connect to SyncBeacon** → approve WooCommerce access. Webhooks and the browser tag are configured for you. No theme edits. No GTM container. No developer project to keep Meta and Google pixels in sync.

**GDPR-ready by design.** Consent gates live in SyncBeacon before events are forwarded to ad platforms. PII is handled for hashing / matching under your consent rules. This plugin stores only configuration (public key, merchant ID, script URL) - never customer order PII.

**This plugin is free.** You subscribe to [SyncBeacon](https://syncbeacon.cloud/pricing) for the cloud relay, destinations, catalogue sync, and ad-pause automation. You do not pay WordPress or WooCommerce for SyncBeacon SaaS, and you do not pay twice.

= Why stores switch from GTM + pixels =

* Ad blockers and browser privacy hide a large share of browser-only conversions
* GTM means a separate tag, trigger, and variable map per ad platform - ongoing maintenance
* Out-of-stock products keep burning ad budget until someone notices
* SyncBeacon replaces that stack with one connect flow and one managed cloud service

= What happens after you connect =

* SyncBeacon registers order webhooks on your store (server-side purchases)
* The plugin injects `sb.js` on the storefront (browser events, no theme edits)
* You connect Meta CAPI / Google Ads (and more) once in the SyncBeacon dashboard
* Catalogue / stock signals power **auto ad-pause** when products go out of stock
* Consent mode in SyncBeacon controls when customer data is forwarded

= Requirements =

* WordPress 6.0 or later
* WooCommerce 7.0 or later
* PHP 7.4 or later (PHP 8.1–8.3 supported)
* A [SyncBeacon account](https://syncbeacon.cloud) (free to connect; paid plan to forward events and use ad-pause)

== External services ==

This plugin connects to the SyncBeacon cloud service (syncbeacon.cloud / api.syncbeacon.cloud / cdn.syncbeacon.cloud). SyncBeacon is required for the plugin to work: it receives WooCommerce order webhooks, serves the storefront browser tracker (`sb.js`), and forwards consented conversion events to advertising platforms you connect (for example Meta Conversions API and Google Ads).

What data is sent, and when:

* **Connect / install:** when you click Connect to SyncBeacon, you authorize WooCommerce REST API access so SyncBeacon can register webhooks and read order and catalogue data needed for tracking and stock-based ad-pause. Payment card data is not accessed.
* **Server-side orders:** after connect, WooCommerce sends order webhook payloads to SyncBeacon when orders are created or updated (purchase / cancellation tracking).
* **Browser tracker:** the plugin loads `sb.js` from your configured SyncBeacon script URL (default CDN on syncbeacon.cloud). The script may send page view, add-to-cart, and checkout funnel events, plus advertising click IDs and technical metadata (for example IP and user agent when available), subject to your storefront consent setup and SyncBeacon consent settings.
* **Configuration only in WordPress:** the plugin stores public key, merchant ID, script URL, API URL, and timestamps — not customer emails, phones, or full order PII in WordPress options.

Service provider: SyncBeacon.

* Terms of Service: https://syncbeacon.cloud/terms
* Privacy Policy: https://syncbeacon.cloud/privacy

== Installation ==

1. Install via **Plugins → Add New** (search "SyncBeacon") or upload the ZIP
2. Activate the plugin (WooCommerce must already be active)
3. Go to **WooCommerce → SyncBeacon**
4. Click **Connect to SyncBeacon** and complete authorization
5. Activate a SyncBeacon plan at [syncbeacon.cloud/app/billing](https://syncbeacon.cloud/app/billing)
6. Connect Meta / Google (and enable catalogue / ad-pause) in SyncBeacon Integrations

Detailed steps: see the Installation Guide bundled with the plugin package, or [syncbeacon.cloud](https://syncbeacon.cloud).

== Frequently Asked Questions ==

= Is this three separate products? =

No - one SyncBeacon account covers **server-side tracking**, **browser tracking with deduplication (no GTM)**, and **auto ad-pause on out-of-stock**. The WooCommerce plugin is the free connector that installs the browser tag and links your store.

= Is the plugin free? Do I pay twice? =

Yes, the plugin is free. No - you only pay SyncBeacon for the cloud service. See [pricing](https://syncbeacon.cloud/pricing).

= Do I need Google Tag Manager? =

No. SyncBeacon replaces GTM + individual platform pixels with one `sb.js` tag injected by this plugin, plus server-side order webhooks. Connect ad accounts in the SyncBeacon dashboard instead of maintaining tags in GTM.

= How does deduplication work? =

Browser events and server (order webhook) events share a conversion identity. SyncBeacon merges duplicates so Meta / Google do not count the same purchase twice when both paths fire.

= Does this replace the Facebook Pixel or Google tag? =

SyncBeacon is built to be your **primary** tracking layer: server-side CAPI / Ads APIs plus a single browser tag. You can remove redundant GTM pixels after you verify events in SyncBeacon and in each ads manager.

= What is auto ad-pause? =

SyncBeacon syncs product / stock signals from your store. When a product (or configured variant rule) is out of stock, linked ads can be paused automatically so budget is not spent on dead landing pages. Reconfigure destinations and catalogue rules in the SyncBeacon dashboard.

= Is it GDPR compliant? =

SyncBeacon is designed for GDPR-conscious EU merchants: consent-gated forwarding, hashed matching where applicable, and a clear controller / processor split (you are the controller; SyncBeacon is the processor under the DPA). Configure consent in **SyncBeacon → GDPR**. This plugin does not store customer personal data in WordPress.

= Which data does the plugin store? =

Only configuration options: public tracking key, merchant ID, tracker script URL, API URL, and configured-at timestamp. No customer emails, phones, or order payloads are stored by the plugin.

= What happens when I uninstall? =

Plugin options are deleted from WordPress. Your SyncBeacon account and history remain until you delete them in the dashboard. Remove leftover WooCommerce webhooks under **WooCommerce → Settings → Advanced → Webhooks** if needed.

= What API scope does SyncBeacon need? =

**Read/Write** on the WooCommerce REST API so SyncBeacon can register webhooks and read order / catalogue data needed for tracking and stock-based ad-pause. Payment card data is not accessed.

== Screenshots ==

1. SyncBeacon dashboard - store health, browser vs server event mix, and OOS ad-pause at a glance.
2. SyncBeacon Conversions - events delivered to Meta, Google Ads, and Microsoft (browser + server).
3. SyncBeacon Integrations - WooCommerce connected with server-side + browser tag, plus ad destinations.
4. SyncBeacon Products - catalogue sync with automatic ad-pause and resume when stock changes.
5. SyncBeacon Help Center - searchable support topics plus email and ticket contact.

== Changelog ==

= 1.0.1 =
* WordPress.org review: document external SyncBeacon service (terms + privacy links)
* Remove directory banner/icon/screenshot files from the plugin package (upload via SVN assets after approval)
* Rely on WordPress.org language packs instead of load_plugin_textdomain()

= 1.0.0 =
* Initial release
* One-click OAuth connect to SyncBeacon (WooCommerce REST API)
* Automatic browser tracker (`sb.js`) injection - no theme edits, no GTM required
* REST endpoints for SyncBeacon install-push after OAuth
* HPOS (High-Performance Order Storage) compatibility declaration
* Designed to pair with SyncBeacon cloud: server-side CAPI, browser↔server dedup, OOS auto ad-pause, GDPR consent gates

== Upgrade Notice ==

= 1.0.1 =
WordPress.org directory compliance update. No merchant action required after update.

= 1.0.0 =
Initial release. No upgrade steps required.
