Dead Product Detector ("the App") is operated by lcCode ("we", "us", or "our"). This policy describes the product, inventory, and optional order-cohort data we use when a Shopify merchant installs and uses the App.
## What data we use
The App's core product and inventory scans use Shopify's read_products access for product titles, prices, known unit costs, variant information, tracked inventory quantities, and product images. Daily inventory snapshots support inventory observations. Your shop domain and contact email support installation and the optional weekly digest.
On eligible paid plans, the App uses write_products only for product changes you explicitly initiate, such as discounting, hiding, archiving, or marking up a product.
Optional order-history diagnosis is separate. It starts only after you choose Analyze existing orders, consent, and Shopify confirms a matching read_ordersgrant. Access beyond Shopify's standard recent-order window also requires Shopify approval and a matching read_all_orders grant. If either check is missing, no history import starts.
For a connected history report, we retain only the minimum normalized order and line evidence and derived demand, retained-unit, and quantity-confidence values needed for the displayed diagnosis. We do not request customer-identity, order-write, draft-order, or fulfillment-management access for this feature.
We do not retain customer names, addresses, phone numbers, email addresses, payment details, transaction payloads, or raw bulk download archives for an order-history report.
## How we use the data
We use the data described above to:
- Identify current inventory, margin, and retained-unit risks.
- Prepare an optional, bounded order-cohort report after consent.
- Show report dates, source, as-of time, currency, coverage, and limitations.
- Perform merchant-confirmed product actions on eligible paid plans.
- Maintain the weekly digest preference and scan-history surfaces.
- Process deletion and data requests for retained evidence.
"No qualifying orders found" is limited to the displayed accessible interval. It does not mean a product was never sold or establish a last-sale date. Unknown source state suppresses a negative finding rather than becoming zero.
## Retention
- Normalized order and line evidence expires no later than 210 days after the source order's creation time. Refreshing a report does not renew that source age.
- Inventory snapshots are retained for up to 210 days going forward. The App does not fabricate missing history.
- Temporary import staging is deleted on completion or failure and expires within 24 hours if abandoned.
- Source-bearing report details expire with their oldest source interval and are invalidated sooner after erasure.
- Job metadata and internal measurements are retained for 30 days; event-deduplication IDs are retained for 7 days.
- Data-request metadata is retained for 30 days and its download artifact for 24 hours.
- A keyed deletion-suppression record may remain for up to 210 days from a redaction request. It contains no plaintext shop or order identity and is not used as demand evidence.
Active order-history data is deleted on the schedules above. Backup copies containing optional order-history data may persist for up to 35 days after active deletion. If a backup is restored, history remains quarantined while deletion controls are re-applied and an audit receipt verifies the backup-to-restore gap before restored history can be used.
## Deletion and data requests
A verified Shopify customer-redaction request removes matching retained source and staging records and invalidates affected reports, aggregate totals, jobs, cached copies, exports, and action views. An erased-or-unknown coverage marker prevents the deleted order from becoming a false no-order result.
A verified customer data request returns only currently retained, minimized records through secure retrieval by the authenticated merchant or administrator. Missing order identifiers do not authorize a customer lookup.
Verified uninstall and shop deletion remove active shop data and invalidate the installation generation. After a restore, history remains quarantined until deletion controls are reconciled and an audit receipt proves the backup-to-restore gap is covered.
## Data storage, sharing, and security
Active App data is stored in a secured PostgreSQL database hosted on Railway. Resend receives only the information needed to deliver the weekly digest when that preference is enabled. We do not sell or rent store data.
We use encrypted connections, secured access credentials, and HMAC verification on applicable Shopify requests and webhooks. Raw order or customer identifiers are not placed in reports, email, CSV exports, logs, screenshots, or support fixtures.
## Cookies and tracking
The App uses a temporary cookie during authorization to prevent cross-site request forgery. It is removed after authorization. We do not use third-party analytics services or advertising cookies.
## Your choices and rights
You may decline or disconnect optional history without disabling product-only diagnosis. You may disable the weekly digest in the App, uninstall to revoke store access, or request access, deletion, or export of retained App data by contacting us. We respond to verified requests as required by applicable law.
## Contact us
For privacy questions or a data request, email [email protected]. Do not send customer names, raw order identifiers, payment details, access tokens, or unredacted screenshots by email.