=== StoreToNative – Mobile App Builder for WooCommerce ===
Contributors: storetonative
Tags: mobile app builder, woocommerce mobile app, native mobile app, wordpress to app, convert website to app
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.5.11
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Mobile app builder for WooCommerce: a free store readiness check (14 checks, no account), then a native Android and iOS app, not a WebView wrapper.

== Description ==

**Start free: the Store readiness check runs 14 checks over your own WooCommerce settings for the things that quietly break a mobile app. No account, and nothing is sent anywhere. When you are ready, StoreToNative turns the same store into a real native mobile app for Android and iOS.**

https://www.youtube.com/watch?v=ErS4ZAz0kys

StoreToNative is a mobile app builder for WooCommerce. It turns your WordPress store into a real native mobile app for Android and iOS.

Most "website to app" tools load your site inside a WebView and call it an app. Your customers can tell — and so can Apple, whose review guidelines turn away apps that are little more than a repackaged website.

StoreToNative is different. Your storefront — home, catalogue, search, product pages, cart and account — renders **natively** on the device from your store's live data. Checkout runs on your store's own checkout page inside the app — or, if you switch on native checkout, shoppers fill in their details in a native form and only the payment step opens your checkout — so your existing payment gateways keep working untouched and StoreToNative never takes a cut of your sales.

This plugin is the WordPress half of that. It pairs your store with your app in one click, then handles the things that can only be done from inside WordPress.

= How it works =

1. Install this plugin and open the StoreToNative screen. Read the free Store readiness check and fix what it flags, and preview your own store as an app. No account yet, and nothing is sent anywhere.
2. Start a 14-day free trial and connect your store with a pairing code. Connecting takes about a minute.
3. Design your app beside a live phone preview, then build it and publish it on Google Play and the App Store under your own developer accounts.

= What this plugin does =

* **Store readiness check (free, no account).** Fourteen checks over your own WooCommerce settings for the things that quietly break a mobile app — "Coming soon" mode left switched on, no payment method enabled, Plain permalinks, no shipping zone, a stale product price index, downloadable products that both app stores reject — each in plain language, with what it costs you and exactly which screen to fix it on. They run entirely inside WordPress, send nothing anywhere, and work before you pair.
* **1-click connect.** Paste a short pairing code from your StoreToNative console. No OAuth redirect, no "approve this application" screen to trip over on security-hardened sites.
* **Deep-link hosting.** Serves `.well-known/apple-app-site-association` and `.well-known/assetlinks.json` from your store's own domain — which is what iOS Universal Links and Android App Links require, and which nothing outside your site can do for you.
* **Smart app-install banner.** Once your app is live on the App Store or Google Play, shows shoppers browsing your storefront on that kind of phone a lightweight banner to install it (you can switch it off), plus an `apple-itunes-app` meta tag so Safari's own native banner takes over on iOS.
* **Shopper sign-in.** Shoppers sign in to your app with the WooCommerce account they already have. Passwords are checked by WordPress itself and never reach StoreToNative. Accounts that can run your store — administrators, shop managers, editors and anyone else who can write posts — cannot sign in to the app; to try your app as a shopper, use a customer account. If you protect `wp-login.php` by its address (a hidden login URL, an IP allowlist, or server password protection), apply the same protection to `/wp-json/storetonative/v1/shopper/`: it is a second place your site checks passwords.

= What your app gets =

Built and published from the StoreToNative console, not from this plugin:

* A native catalogue — swipeable galleries with pinch-zoom, colour swatches, a full variation picker, ratings and reviews, instant search, filters and a persistent wishlist
* A design studio with a live phone preview beside every control: colours, typography, product grid, storefront presets and a drag-to-reorder home screen
* Over-the-air updates — change your theme, banners and home layout, and installed apps pick it up on their own. No rebuild, no app-store re-review
* Push notifications: order-status updates and broadcast campaigns, plus abandoned-cart recovery on the Pro plan
* Signed Android builds, with guided checklists for Google Play and App Store submission — or direct APK distribution, no Play account required
* First-class Arabic and right-to-left layouts
* Your own payment gateways, and no commission on your sales

= Requirements =

* **WooCommerce** must be installed and active. This plugin does nothing without it.
* **A StoreToNative account**, to build and publish an app. The Store readiness check and the app preview work without one. The app itself is built and published from the [StoreToNative console](https://storetonative.com/), a paid subscription with a free trial; this plugin is what pairs your store with it.
* **HTTPS.** Pairing is refused on a plain-http site.

= Privacy =

No network request of any kind is made until you explicitly pair your store — installing and activating this plugin alone sends nothing anywhere. The **External services** section below documents every request this plugin ever makes and exactly what each one carries.

= WooCommerce HPOS =

This plugin declares compatibility with WooCommerce's High-Performance Order Storage (HPOS / "Custom Order Tables"). It does not read or write order data itself.

== External services ==

This plugin connects your store to the StoreToNative platform (**api.storetonative.com**), which builds and runs your store's native app. **Nothing is sent before you pair your store**: installing or activating the plugin makes no request. Pairing needs https.

**When you pair** (you enter a pairing code from your StoreToNative console), the plugin sends, once:

* Your store's URL.
* A WooCommerce REST API key that the plugin creates for itself. It is a read/write key, so the app can read your catalogue and place the orders shoppers make in the app. You can revoke it at any time with the plugin's Disconnect button or under WooCommerce → Settings → Advanced → REST API.
* The plugin's version and the names of its features: `status`, `deep-links`, `smart-banner`, `readiness`, `shopper-auth`, `checkout-fields`, `pair-challenge`.

To confirm that the pairing really came from your site, the platform makes one request BACK to your site while you pair. The `pair-challenge` feature sends nothing anywhere itself: it only answers that one request.

**After pairing**, a small check-in runs about once a day, and when you open the plugin's screen or press Check connection. It carries:

* The plugin, WordPress and WooCommerce versions, and the same seven feature names.
* Whether customer registration is switched on in WooCommerce (yes or no).
* The results of the store readiness checks. **Names and verdicts only**, for example `payment_gateway: fail`. No counts, no product names, no settings values and no text from your site.

**What stays on your site.** Shoppers sign in from the app directly to your own site. Their passwords and sign-in tokens are never sent to StoreToNative. The `checkout-fields` feature sends nothing anywhere: the app reads the shape of your checkout form from your own site.

**When a shopper deletes their own account** in the app, the plugin erases the account on your site and sends one notice to api.storetonative.com, so the matching sign-in record there is deleted too. The notice carries a one-time id, the WordPress user id, and a one-way SHA-256 hash of the email address, not the address itself.

**Disconnecting** sends one notice that the store is disconnected. The plugin also fetches (it never sends) a small public settings file for your app: its name, colour, icon and install-banner text.

**Links.** On the connect screen, "See your store as an app" and "Start your free trial" open app.storetonative.com in a new tab. The link carries your store's public address and tags that say the click came from this plugin. On the Plugins list, "Video tour" opens youtube.com and "Help docs" opens storetonative.com/docs. Nothing is requested unless you click a link.

**The video tour (YouTube).** The connect screen offers a video tour. Nothing loads from YouTube until you press play. If you press play, your browser loads YouTube's player from youtube-nocookie.com, and YouTube (a Google service) receives what any embedded YouTube video sends: your IP address, your browser's details and the address of the site the player is on. YouTube's [Terms of Service](https://www.youtube.com/t/terms) and Google's [Privacy Policy](https://policies.google.com/privacy) apply.

No order data and no other information about your customers is sent by this plugin. Your use of the StoreToNative platform is covered by its [Terms of Service](https://storetonative.com/terms) and [Privacy Policy](https://storetonative.com/privacy).

== Installation ==

1. Upload the plugin to `/wp-content/plugins/`, or install it directly from the WordPress plugin directory.
2. Activate the plugin through the "Plugins" screen in WordPress. WooCommerce must already be installed and active.
3. Go to the new "StoreToNative" menu in your wp-admin sidebar.
4. Read the Store readiness check and fix anything it flags. It works before you pair, with no account.
5. When you want the app: open your StoreToNative console, generate a pairing code for this store, and enter it on the connect screen.
6. Once paired, the dashboard shows your app's connection status, deep-link readiness, and the smart banner toggle.

== Frequently Asked Questions ==

= How do I turn my WooCommerce store into a mobile app? =

Install this plugin, start a StoreToNative free trial, and connect your store with a pairing code from the console. Then choose your colours and home screen in the design studio, build the app, and publish it under your own Google Play and Apple Developer accounts. There is a full video tour at the top of the description.

= What does this plugin do for free, without an account? =

It runs the Store readiness check: fourteen checks over your own WooCommerce settings for the things that quietly break a mobile app, each with what it costs you and which screen to fix it on. The check runs inside WordPress and sends nothing anywhere. You can also preview your own store as an app at https://app.storetonative.com/demo . Building and publishing the app needs a StoreToNative plan.

= Can it turn any WordPress site into an app? =

No. StoreToNative is made for WooCommerce stores: the app is built from your products, categories, cart and customer accounts, so WooCommerce must be installed and active. A WordPress site without a store is not supported.

= Does it work with my theme and my other WooCommerce plugins? =

Your app does not use your WordPress theme. It is drawn natively from your store's data, and you style it in the StoreToNative design studio. Your payment gateways keep working because checkout runs on your store's own checkout page. For other plugins, see the tested list at https://storetonative.com/supported-plugins/ before you start.

= Is this a WebView wrapper? =

No. Your storefront — home, catalogue, search, product pages, cart and account — is drawn natively on the phone from your store's live data. Checkout runs on your store's own checkout page inside the app, so your payment gateways work unchanged; with native checkout switched on, shoppers fill in their details in a native form and only the payment step opens your checkout.

= How much does it cost? =

StoreToNative is a subscription with a 14-day free trial. Plans are Starter at $29 a month, Pro at $79 and Agency at $249. StoreToNative never takes a commission on your sales. This plugin itself is free.

= Do I need an Apple or Google developer account? =

To publish in the App Store or Google Play, yes: your app is published under your own Apple Developer and Google Play accounts, never ours. Android apps can also be installed straight from a download link with no Google Play account at all.

= Can I try it before paying? =

Yes. Preview your own store as an app at https://app.storetonative.com/demo, and run this plugin's store readiness checks before you connect anything.

= Do I need a StoreToNative account? =

Yes, to build and publish an app. This plugin pairs your store with a StoreToNative account — it isn't a standalone app builder. The store readiness checks work without one, and the plugin's connect screen links to a free trial.

= Does this send data before I connect? =

No. Installing or activating this plugin makes zero network requests. The very first request it ever makes is the pairing request, and only after you've pasted a pairing code into the connect screen yourself. See "External services" above for exactly what that first request contains.

= Does it work without HTTPS? =

No. This plugin refuses to pair — and therefore never talks to the StoreToNative API at all — unless your store itself is served over https. That check happens locally, before any network request is made, so a plain-http site can't even attempt it.

= Pairing fails with "could not confirm this site". What does that mean? =

While you pair, StoreToNative makes one request back to your store, and your store did not answer it in time. The usual causes are a security plugin or firewall that blocks the WordPress REST API, or a slow host. The help page lists each cause and its fix: https://storetonative.com/docs/troubleshooting/ . The code you typed is used up, so create a new one after the fix.

= What happens if I deactivate WooCommerce? =

The plugin shows an admin notice explaining that WooCommerce is required and does not register any of its other functionality until WooCommerce is active again.

= What happens if I uninstall the plugin? =

Uninstalling removes all of this plugin's local data (pairing, settings, cache, and the WooCommerce API key it created for itself) and stops your store from syncing with your native app. It does not make any remote request — your StoreToNative console will simply notice the store has gone quiet the next time it checks in. Reconnecting later starts a fresh pairing.

= Does this work on WordPress multisite? =

This has not been tested on a multisite installation. Use on multisite at your own risk until this is verified.

= Is this compatible with WooCommerce's High-Performance Order Storage (HPOS)? =

Yes, compatibility is explicitly declared. The plugin does not read or write order data.

== Screenshots ==

1. The free Store readiness check — fourteen checks over your own WooCommerce settings, each with what it costs you and which screen to fix it on. No account needed.
2. The connect screen — watch the video tour, preview your own store as an app, start a free trial, or paste a pairing code from your StoreToNative console.
3. The paired dashboard — connection health, deep-link status per file, and the smart install banner toggle.
4. The smart app-install banner as a shopper sees it on their phone.

== Changelog ==

= 1.5.11 =
* The directory page now leads with what is free: the Store readiness check, which needs no account and sends nothing. The readiness check is the first screenshot. Nothing about what the plugin does or sends has changed.

= 1.5.10 =
* The plugin's directory page is shorter and easier to read. Nothing about what the plugin sends has changed.
* Older changelog entries moved to `changelog.txt` inside the plugin.

= 1.5.9 =
* After you activate the plugin, WordPress opens the StoreToNative screen once, so you are not left on the Plugins list wondering what to do next. This does not happen after a bulk activation, on a multisite network activation, or on a store that is already connected.
* The Plugins list has a "Connect store" link under the plugin's name ("Dashboard" once your store is connected), plus "Video tour" and "Help docs".
* The connect screen offers a video tour of StoreToNative. It is a link until you press play: nothing loads from YouTube when the screen opens. See "External services" for what YouTube receives if you play it.
* The connect screen's headline now says what StoreToNative does, for store owners who have not used it before.
* The directory listing has the video tour, a "How it works" section and answers on turning a WooCommerce store into a mobile app.
* Tested with WooCommerce 11.2.

= 1.5.8 =
* The directory listing now says what StoreToNative is — a mobile app builder for WooCommerce — with answers on cost, WebView and developer accounts.
* New to StoreToNative? The connect screen now lets you preview your own store as an app and start a free trial, before the pairing steps.
* Once you confirm your app is live on Google Play, the dashboard says so and asks whether you'd leave a review (until you dismiss it).


Older versions: see `changelog.txt` in the plugin folder.
