Webhooks & data
Rentshelf stays in sync with Shopify via webhooks. Here’s the list and what each does.
Webhooks consumed
Section titled “Webhooks consumed”| Topic | Handler | Purpose |
|---|---|---|
orders/create | webhooks.orders.create.tsx | Build Booking from line-item properties, link to order, tag order. |
orders/cancelled | webhooks.orders.cancelled.tsx | Cancel related bookings, free up dates. |
products/update | webhooks.products.update.tsx | Sync product title / handle / price drift. |
app/uninstalled | webhooks.app.uninstalled.tsx | Delete sessions, mark shop as uninstalled. Data retained for 30 days. |
app/scopes_update | webhooks.app.scopes_update.tsx | Update stored scope on the session. |
customers/redact | webhooks.compliance.tsx | GDPR: anonymize bookings for the customer. |
customers/data_request | webhooks.compliance.tsx | GDPR: export customer’s rental data. |
shop/redact | webhooks.compliance.tsx | GDPR: delete all shop data. |
Where rental data lives
Section titled “Where rental data lives”Rentshelf uses its own database (separate from Shopify). No rental data lives in Shopify metafields.
Shop-level
Section titled “Shop-level”- Currency, timezone, defaults
- Storefront widget configuration (heading, colors, labels)
- Deposit defaults
- Calendar saved views
Per-product
Section titled “Per-product”- Pricing mode, per-day / fixed / tiered prices
- Duration bounds (min, max, buffer days)
- Inventory (total units)
- Add-ons (name, price, type, required)
- Deposit override
Per-booking
Section titled “Per-booking”- Shopify order link (
orderId,orderName) - Customer snapshot (name, email)
- Rental window (start, end, days, units)
- Money snapshot (subtotal, add-ons, deposit, total, currency)
- Status (
PENDING,CONFIRMED,ACTIVE,RETURNED,CANCELLED) - Source (
STOREFRONT,MANUAL,IMPORT)
Availability overrides
Section titled “Availability overrides”- Blackout dates (per product or shop-wide)
- Maintenance windows
- Holiday closures
GDPR compliance
Section titled “GDPR compliance”Rentshelf honors Shopify’s mandatory GDPR webhooks:
customers/data_request— the app emails a JSON export of rental data for that customer to the shop owner.customers/redact— customer PII (name, email, phone) is nulled out on bookings. Booking dates and amounts are retained for business records.shop/redact— all data for the shop is deleted, including rental products, bookings and availability.
For manual data deletion requests, email privacy@rentshelf.app.
Data retention
Section titled “Data retention”- Bookings: retained indefinitely unless the shop is redacted. Used for reporting, stats and refund support.
- Uninstalled shops: retained for 30 days after uninstall, then automatically deleted.
- Backups: nightly, retained for 30 days. Recovery available within 24 hours of a data incident.
Exporting data
Section titled “Exporting data”- Bookings CSV — from Rentshelf → Bookings → Export.
- Products CSV — from Rentshelf → Products → Export.
- Full JSON export — email support@rentshelf.app to request a one-off export.