SharedStock Privacy Policy

Version: 2026-10-05.v1. Published: 5 October 2026.

SharedStock by 7afidi is operated by Anas Hafidi, an individual developer using 7afidi as a brand, established in Morocco. Contact: contact@7afidi.com. Postal address where required: Lotissement lwahda n152 - Bouarfa. This policy takes effect when published at https://www.7afidi.com/sharedstock/privacy. The publication date and document version will be recorded on that page.

Our roles and purposes

Merchants decide how their Shopify stores use customer data. For store data processed on their instructions, the merchant is the controller and 7afidi is the processor where those legal roles apply. Our Data Processing Addendum forms part of our Terms. We act independently for necessary account administration, support and security communications. Those activities use the relevant contractual, legal-obligation or legitimate-interest basis where applicable; a merchant remains responsible for its own lawful basis and notices. We do not sell store data or use it for advertising.

Information processed

Shopify supplies shop and installation identifiers, authorization sessions and associated staff identity, catalog and inventory identifiers, variant consumption ratios, quantities, location identifiers and limited order/refund/edit identifiers used to explain notifications and check inventory safety. We retain reduced notification context rather than complete order or customer payloads. Order identifiers remain personal data even without contact details. We do not require or request buyer name, email, phone number or postal address. Signed privacy requests can contain other data transiently; we retain only the identifiers and metadata needed for fulfillment. Merchant-entered adjustment reasons or support messages can incidentally contain personal data; please do not include buyer contact details or credentials.

Processing supports shared-component inventory, safe activation, reconciliation, recovery, authentication, privacy fulfillment and support. Inventory notifications are not a complete per-order deduction ledger. Shopify remains responsible for its own platform processing under its terms.

Providers and locations

Railway provides the application, PostgreSQL database and private application volume. The configured application/database region is EU West, Amsterdam. Backblaze B2 stores encrypted production backups in a private EU Central bucket. EU storage location does not mean every provider operation or support access stays in the EU. The developer operates from Morocco. International processing and transfers are handled according to applicable privacy law and the relevant providers' contractual and data-protection terms. These terms do not replace obligations that apply to the merchant or 7afidi. No independent legal certification of every transfer or jurisdiction is claimed. Provider terms are available at https://railway.com/legal/dpa and https://www.backblaze.com/company/policy/dpa-for-eea-eu-residents.

Support mail routing uses Porkbun: current public MX records point to fwd1.porkbun.com and fwd2.porkbun.com. The owner confirms Porkbun email service is used and incoming messages have been received successfully. No destination mailbox address is disclosed. Support communications are separate from the store-data subprocessors described in the DPA.

Security

Public application connections use HTTPS/TLS. Application-to-PostgreSQL connections use Railway private networking, documented as WireGuard-encrypted. Railway's DPA states that databases are encrypted at rest. The database TLS connection additionally requires encryption but does not independently verify the server certificate in the approved private-network configuration. We do not describe that as authenticated end-to-end TLS.

Backblaze documents AES-256 server-side encryption for current uploads and TLS for transport. SharedStock also encrypts the backup archive with AES-256-GCM before upload. Access is restricted, secrets are excluded from application logs, sensitive management requires a verified Shopify online store owner, and uncertain inventory writes remain fenced. These measures reduce risk; no service can guarantee absolute security.

Retention and deletion

Routine completed notification context and routine activity are scheduled for cleanup after 90 days. Minimal replay identities and original-order-to-pool associations can remain where needed to prevent duplicate processing or handle later supported edits. They are safety dependencies, not retained notification payloads. Pending privacy requests remain until resolved. Completed privacy-request proof is removed after 365 days from completion; only a minimal duplicate-delivery identity remains to prevent an old notification from restarting the same request.

Uncertain writes, conversion journals and active recovery dependencies remain until their safety purpose ends. Confirmed detached stock adjustments are scheduled for deletion 365 days after resolution. An active pool's conversion/ownership evidence is retained for its operational lifetime; completion of a write does not alone retire that dependency. Relevant outstanding privacy requests can delay ordinary cleanup while fulfillment is completed.

Production backup sets have a 30-day maximum policy, with no exception for the newest set. Scheduled pruning deletes every object version; failures remain actionable. Deletion failures are investigated; physical deletion of provider replicas follows provider processes. Operator-controlled copies follow the applicable retention schedule. A deletion ledger prevents erased records from being restored and is retained while affected recoverable copies or replay/safety dependencies require it. Restore filtering does not physically expire a backup.

Application-controlled export files are removed immediately on successful delivery confirmation, with a scheduled seven-day fallback sweep. Browser downloads and externally delivered copies require recipient/operator deletion. Pending delivery has no guessed completion clock. Authentication data is removed on applicable erasure/uninstall and unusable online-session expiry; refreshable credentials remain only while needed. Installation identity and unresolved safety records are not reset on reinstall. A disconnected installation with a trustworthy installation-bound clock is eligible for cleanup after 90 days only when no pool, session, pending privacy request, unresolved write or other necessary safety/agreement dependency remains. Unknown clocks are not replaced with guessed dates.

We target 30 days for application/security logs we control. The application emits sanitized stdout and current operational snapshots, not a rolling local log archive. Railway documents a seven-day Hobby log retrieval window; it also states that upgrading can restore older logs. We cannot represent that retrieval window as verified physical erasure. Provider log deletion is governed by provider policy. Support emails and attachments are retained for up to twelve months after resolution. Anas Hafidi, the solo operator, is responsible for deleting correspondence and locally controlled copies after that period, unless an unresolved support/security/privacy matter, legal requirement or active inventory/recovery safety issue requires continued retention. Mailbox, archives and downloaded copies are included. Provider backup copies follow the provider's own backup/retention cycle; instant erasure of those copies is not promised.

Requests, rights and termination

Contact contact@7afidi.com for access, correction, deletion, restriction, objection or other applicable rights. Customers should normally contact the merchant, which controls store processing. We authenticate Shopify privacy webhooks and assist the merchant with limited exports, redaction and deletion. Applicable Shopify privacy requests are handled within 30 days; an overdue request is escalated, not silently deleted. Delivery requires authority and recipient verification. Privacy fulfillment is available without paid access, including a restricted operator route for disconnected stores.

Uninstall revokes application access and pauses managed pools; it does not restore separate stock or delete Shopify's native resources and orders. Applicable shop erasure removes local shop data subject to installation-generation safeguards. On termination we assist with return or deletion under the DPA, preserving only necessary lawful or inventory/privacy safety dependencies and restricted recovery copies until expiry. We do not replay historical stock deductions.

You may complain to the competent data protection authority, including Morocco's CNDP where applicable, and the authority available under your local law. No representative or regulatory registration is claimed by this policy.

Changes and contact

Material changes will be identified with a new dated version and, where required, renewed merchant agreement. Privacy and support contact: contact@7afidi.com, Monday–Friday 09:00–18:00 Morocco time. There is no guaranteed response-time SLA.