Privacy Policy
Last updated November 2, 2026
This policy is from MAIN STREET BOUTIQUE, LLC. It explains what the Main Street Boutique (Carrollton, GA) app collects, why, and who processes it. We do not run advertising, and we do not combine this app's data with other companies' data to advertise to you across other apps or websites. We do not turn on GPS location. The iPhone and Android apps do record anonymous daily totals of how the app is used, described under “Anonymous app totals.”
Shopify runs the store, sign-in, cart, and checkout. OneSignal delivers notifications. Lovable Cloud (a Supabase database) stores the app's own records. Those companies process the information described below so the app can work. They do that for the boutique, not as a separate product we sell your data into.
Signing in
Signing in uses your existing Main Street Boutique (Carrollton, GA) customer account — the same one you use on our website. The sign-in page is hosted by Shopify. This app does not collect or store your password. After you sign in, Shopify gives the app a sign-in token that stays on this device. On iPhone, Sign in with Apple is also offered. Apple sends a sign-in token to the app. Our server checks it with Apple. When Apple says the email is verified, that email is used to find or create the matching Shopify customer. A Hide My Email address is its own customer and is not matched to another mailbox. The server stores the Apple user id, that email, and an Apple refresh token so Delete account on the iPhone can ask Apple to revoke the sign-in. A new refresh token is encrypted before it is saved, and the server does not save a new one it cannot encrypt. A token saved before that encryption can stay readable until the next successful Sign in with Apple replaces it. The Apple password is not stored. The app keeps an app session on this device.
Our server checks that token with Shopify and, if it is valid, saves a sign-in record in Lovable Cloud. That record includes your email, your name if Shopify has one, your Shopify customer id, a separate internal id we create (a random id, not your email), which app you used (iPhone, Android, or the website), the first time we saved the sign-in, the last time you opened the app while signed in, how many different days you have done that, and whether you have turned notifications on.
“Last opened” updates when you open the app while signed in. It does not update on every page. The day count goes up once per calendar day in Eastern Time, not on every open the same day. This record is created when you sign in, even if notifications stay off. The internal id is sent to OneSignal only after you turn notifications on.
Signing out removes the sign-in from this device. It also removes the cart, a name and email linked in the app, and a phone number or address saved in the app. It does not turn notifications off. For a Shop sign-in, the app also asks Shopify to end that store session when this device still has the token Shopify issued. On the iPhone app, signing out removes Shop and Shopify website data from the app's web view, and on iOS 16 and later it clears website data in the in-app browser used for checkout and Shop Pay. On the Android app, signing out clears the app web view's cookies. Checkout opened in Android's Chrome Custom Tabs can keep a Shop session, because this app cannot clear that browser. The next Shop sign-in on the iPhone and Android apps sends a request to show the sign-in screen again. Sign in with Apple does not use that Shopify session, so an Apple sign-out does not send the Shopify logout. Signing out does not by itself delete the sign-in record on our server. Use the deletion request below for that.
Push notifications & OneSignal
Notifications are optional and off until you tap “Turn On Notifications” and your phone allows them. Until then, the OneSignal software in the app is started in a mode that does not send it data.
When you opt in, we tell OneSignal your internal id (called an External ID). We do not send OneSignal your name, email, phone number, address, or what you bought.
OneSignal's own documentation says that, after this kind of opt-in, its software also records a push token, whether notifications are allowed, the app version and package name, device model, operating system, language, time zone, country, cellular carrier, when you open the app, how long it stays in the foreground, and whether a notification was delivered or opened. OneSignal says it does not store IP addresses for people in the European Union. We have not turned on a worldwide block of IP addresses, so an IP address from outside the EU may be stored by OneSignal. The iPhone and Android builds omit OneSignal's location module, and this app does not turn on GPS or send coordinates.
Turning alerts off in the app unsubscribes this device, withdraws OneSignal consent, and stops OneSignal session tracking on this device. You can also turn notifications off for this app in your phone's Settings.
Your account & order-ready alerts
When staff mark a pickup order ready, our server receives a signed notice from Shopify, matches it to the verified email on that order, and can notify that one customer. The notification says “Your order is ready!” and “Your Main Street Boutique pickup order is ready for collection.” It does not include what you bought, what you paid, or your address. To send it we store, in Lovable Cloud, the order number, its pickup status, when it became ready, when it was announced, and the Shopify customer id. It is sent only if that account has notifications on.
A separate notice can go to every account that has turned notifications on when a new product is published. That message is titled “New at Main Street Boutique” and includes the product's name so you can open it. The product name is store catalog text, not your personal information. OneSignal receives the internal ids of those accounts and the wording of the message. A product that was already announced does not get another new-item notice when it is restocked, republished, or comes back from being sold out.
The same notification choice covers sale and restock notices. There is no separate setting for them. When a product already in the shop goes on sale, the message is titled “On sale at Main Street Boutique.” It names the product and, only when the store's own price data shows a real discount, the amount or percent off and the new price. When a product that was sold out can be bought again, the message is titled “Back in stock at Main Street Boutique” and names the product. Either notice opens that product. Several products changing together can share one notice that opens the shop. These go only to accounts that have notifications on. Turning notifications off stops the new-item, sale, and restock notices.
Anonymous app totals
The iPhone and Android apps send a count when you open the app, view a product, add something to your cart, or start checkout. The website does not send these counts. Each count is the date, whether the phone is an iPhone or an Android phone, the kind of action, and — only for a product view — the product's id or web address. The stored total is not tied to a person. It has no name, email, Shopify customer id, internal id, OneSignal id, or device id. The last-opened time and day count on a sign-in record, described under “Signing in,” are a separate account record.
The counts are added into daily totals in Lovable Cloud so the store can see which products people look at and how often checkout is started. To slow down a flood of counts, the server may look at the network address of the request. That address is kept in memory for about a minute and is not saved with the totals.
Deleting the app stops new counts from that phone. Because the totals are not stored per person, we cannot remove one person's activity from them.
Shopping & orders
Products, prices, and stock come from our Shopify store. Your cart — the items in it — is sent to Shopify. If you are signed in, or if you link a store email in the app, that email is sent to Shopify with the cart so checkout can recognize the account.
Checkout itself is Shopify's page. The name, email, phone, shipping address, and payment details you enter there are processed by Shopify and its payment providers. This app does not store your card number. Receipts and shipping tracking are loaded when you open them. A Shopify store-account sign-in loads them from that Shopify account. Sign in with Apple loads them through our server from Shopify for that same customer. We do not keep a separate copy of those receipts.
Checkout can offer Continue with Shop and Shop Pay. Those are Shopify's own sign-in and payment choices. Information you give them is handled under Shopify's privacy policy at shopify.com/legal/privacy.
Voice search
On a product page you can type a search or tap the microphone and say what you are looking for. The microphone is used only after you tap it. The words fill the search box and are matched against products already loaded in the app. We do not send that search to a separate search service, and we do not store a recording.
The iPhone and Android apps ask the phone to recognize speech on the device when it can, and that audio stays on the device. If it cannot, the phone's speech service transcribes the audio. In a web browser, the browser's speech service does that. The boutique does not receive the audio. If you decline the microphone, or speech recognition is unavailable, you can still search by typing.
Stored on your phone only
The app keeps some information in storage on the device: the cart, a name and email if you link them, a phone number and address if you type them into the app, whether notifications are on, which in-app notices you have already seen, the Shopify sign-in token, and a flag so the current visit is only counted once. A phone number or address you type in the app is not uploaded unless you also enter it on Shopify's checkout. The email can be sent to Shopify with the cart, as described above. Signing out removes the cart, the linked name and email, that saved phone number and address, and the Shopify sign-in token from this device. The notification choice stays on the device. Deleting the app removes this device storage.
The installed iPhone and Android apps do not include a separate analytics or crash-reporting product. If this app is opened inside the Lovable editor preview, that preview can receive an error message and the page address. That preview hook is not part of the app you install from the App Store or Google Play.
Store staff accounts
Boutique staff sign in to a separate management area, not with a shopper's Shopify account. For those accounts Lovable Cloud stores an email address, a password hash or a Google sign-in, and a role, used to control app announcements and banners.
Security
Connections between the app and Shopify, OneSignal, and Lovable Cloud use HTTPS.
Sign-in, account, and deletion requests are counted so one network address cannot repeat them without a pause. Lovable Cloud stores the route name, the website deletion step when that page is used (start, callback, confirm, email, or email confirm), the connecting network address reported by Cloudflare, how many requests arrived in the current window, and when that window started. If Cloudflare does not provide an address, the row uses the word “unknown” in its place. The address is stored as Cloudflare reported it. A row whose window started more than a day earlier is deleted the next time any of these windows begins again. The anonymous app totals above still use a separate in-memory check, and that check does not write the network address with the totals.
Deleting your data
While you are signed in, Account includes Delete account. Confirming it removes the app sign-in record, pickup-order alerts tied to that account, and the customer profile (the email, name if we stored one, and notification choice). It asks OneSignal to delete the notification user for that internal id. If that does not succeed, the app says so and the store retries it. The other app records are still removed, and this device is signed out. If you are signed in with Apple on the iPhone, that confirmation also asks Apple to revoke the sign-in. When Apple accepts, the stored Apple refresh token is deleted. If Apple does not accept, that stored token stays until a later deletion can revoke it.
If the Shopify customer has no orders, the server deletes that Shopify customer now. If the customer has orders, Shopify does not allow that customer to be deleted. The server asks Shopify to erase the customer's personal data. Shopify processes that erasure request on its own schedule, currently about 10 days. Shopify order and payment records stay, including records kept for tax and accounting. A scheduled gift card can hold the erasure until the card is delivered. If Shopify cannot complete it, the store handles the Shopify customer within 30 days. Signing in again before that Shopify customer is gone can recreate the app profile.
You can also use the deletion page. Choose Sign in with your Shop account. Shopify sends the one-time code. After you are signed in, the page shows that account's email. Nothing is deleted until you tap Confirm deletion. That confirmation works once and expires 10 minutes after sign-in. That tap removes the same app sign-in, pickup alerts, profile, and OneSignal user, and it makes the same Shopify request. It does not ask Apple to revoke Sign in with Apple. For that, use Delete account in the iPhone app while signed in with Apple. If sign-in does not start, wait a minute and try again, or email shopmainstreetboutique@gmail.com. You can also email that address and ask the store to delete the account. Emailing it reaches the store. The deletion page still waits for Shop sign-in and Confirm deletion before it removes anything.
This app does not delete Shopify order or payment records. Turning notifications off unsubscribes this device right away. The daily totals cannot be deleted for one person, because they are not stored per person. The rate-limit rows are also kept by network address, not by account, and they drop on the schedule under “Security.”
How long we keep it
Sign-in records, pickup-order alerts, and the customer profile stored for the app stay until the account is deleted in the app or by tapping Confirm deletion on the deletion page. This app does not set a shorter automatic expiry for those rows.
Signing in on the deletion page stores that account's email with a hashed, single-use grant. The grant expires 10 minutes after it is issued. After you tap Confirm deletion, the email is removed from that row. Those rows are deleted after 30 days. An unused grant is also removed after it expires.
A deletion request that is still open keeps the email and Shopify customer id so the remaining steps can be finished. When the store marks that request finished and the app steps succeeded, the email, note, Shopify customer id, and OneSignal id are removed. A hashed email and the step results are kept for 12 months, then that audit row is deleted.
Anonymous daily totals are not stored per person, and this app does not set an expiry for those totals. Rate-limit rows for sign-in, account, and deletion requests are kept as described under “Security,” and a row is deleted once its window started more than a day earlier and another of those windows begins. Information that stays only on the phone is removed when the app is deleted, and signing out removes the cart and saved shopper details described above. Shopify keeps store orders under Shopify's own practices. This app does not set a separate retention period for those Shopify records.
Changes to this policy
When this policy changes, the date at the top of this page changes with it. This app does not send an email or a push notification to announce a policy change.
Do Not Track
This app does not read the Do Not Track signal or Global Privacy Control, and it does not change what it collects because of those signals. Notifications stay off until you turn them on. Turning them off withdraws OneSignal consent, as described above. The iPhone and Android apps still record the anonymous daily totals while you use them.
Children
The app is intended for shoppers aged 13 and over. It is not for children.
Contact us
MAIN STREET BOUTIQUE, LLC
Main Street Boutique (Carrollton, GA)
310A Adamson Square, Carrollton, GA 30117
(678) 664-2046
shopmainstreetboutique@gmail.com