Holdback · Help

Using Holdback with BTA (Book That App)

Tested with both apps installed (20 Sep 2026) on Horizon, Dawn, Prestige and Impulse with BTA's rental widget, on an earlier version of Holdback in which the deposit sat on the booking's own cart line: a booking went into the cart with Holdback's deposit and the deposit notice showed under BTA's widget. On Horizon, a booked order went through checkout with its booked start date, and a £3 fee was taken from the saved card and emailed. Holdback now adds the deposit as its own line, and that has not been re-tested with BTA yet. Place one test booking on your own theme (step 6) before taking real ones.

BTA takes the booking: the widget, the dates and the calendar. Shopify saves the card at checkout against the deposit: the customer's card is kept on file for an agreed maximum. The customer pays the hire fee; eligible late days or non-return amounts can be kept within the agreed deposit. Extension fees use a payment link, never the saved card. When the hire comes back you say what came back, and Holdback releases the deposit, takes the agreed late fee, or sends a claim for damage.

Setting up

  1. Turn on both app embeds in your theme (Online Store → Themes → Customize → App embeds): BTA's Booking Widgets (BTA) and Holdback deposit. Save.
  2. Set up the BTA widget for the product (Widgets → Add more widgets), using the Product Rental type for hires. BTA's widget sits inside the theme's product form, where Holdback shows its deposit notice.
  3. Price by length of hire with variants, not by quantity. BTA can price rentals three ways (BTA). Use fixed price per duration, where each length of hire is a variant with its own price, and leave "Date range updates quantity" set to No. Holdback's deposit is per item in the cart, so if the quantity becomes the number of days, the deposit is multiplied by the days booked.
  4. Add the deposit in Holdback (Charges → Add a deposit), picking the product. Holdback reads each variant's price as its hire fee, so different lengths of hire can share one deposit.
  5. Booked dates. On the products tested (#1008, 2 Oct 2026) BTA sends the booked start date only: Start and _start_iso8601, no end. Holdback counts the hire period from the start, for the due-back date, the reminder before return and any late fee, and Rentals says "Due back worked out from the hire period". So set the hire period to your booking length: a 1-day hire on a 7-day rule would be due back a week later, and lose six days of late fees. BTA's rental widget on its own demo store also writes From and To; where an order carries an end date like that, Holdback uses it instead. BTA's default date format (month first, like 09/23/2026) works as it is. Holdback learns your store's format from the first date that can only be read one way, and until then only reads a date like 03/04 if just one reading makes sense. Otherwise it falls back to the order date and says so on the rental. One limit remains: the date checkout prints for the deposit (the latest anything could be taken; with the whole hire fee paid at checkout, Holdback releases a deposit that is still open the day before it) is fixed by Shopify from the order date. So still make Holdback's hire period cover how far ahead people book. If customers book up to 30 days ahead for a 3-day hire, use 33 days. If a booking's return falls after that date anyway, Rentals flags it and tells you when to finish by.
  6. Place one test booking with Shopify's test payments. Checkout should show the hire fee due today and the deposit as a later amount, the booking dates should be on the order, and the booking should appear on Holdback's Rentals page within a few seconds.

How BTA's Book Now and Holdback fit together

BTA's widget replaces your theme's Add to cart and posts the booking to the cart itself, leaving out Holdback's deposit, and it hides the rest of the product form, including Holdback's notice. Holdback handles both: it adds its Security deposit line (as an ordinary second line beside the booking line) to BTA's cart request for any product with a Holdback deposit, and shows the notice just under BTA's widget. The booked day reaches the order as BTA's Start (and an exact _start_iso8601), which Holdback uses for the due-back date.

Two BTA settings worth knowing:

When the hire comes back

Holdback counts the hire to BTA's start plus your hire period. Once that date passes, the rental appears under Overdue on Holdback's Today and Rentals pages, and you say what came back:

No late fee is taken merely by recording a return. You can receive one reminder a day while returns are waiting. Extension fees approved by the customer use a separate payment link at settlement.

Cancelling a booking

Deleting a booking in BTA doesn't cancel the Shopify order (tested 20 Sep 2026: BTA's only way to cancel is to delete the booking, and the order was left open with its deposit still open). So when a customer cancels, also press Booking cancelled on the rental in Holdback's Rentals page. It cancels the Shopify order, refunds the hire fee if you tick the box, releases the deposit in full and emails the customer, in one step. If you forget, the booking turns up under Overdue when its end date passes: use Booking cancelled then, not "Yes, all fine", which would release the deposit but leave the order open.

If you cancel an order in Shopify's own admin while a deposit is still open, the customer's card stays attached to the order, so release the deposit in Holdback first, or use Booking cancelled.

Leave these BTA features off on deposit products

If booking shows a cart error

Holdback products can only be bought with their deposit, so if the booking reaches the cart without it, checkout refuses the order and tells the customer to add the deposit again, rather than booking without a deposit. Tell us at support@holdback.co.uk with the product link. BTA's support is support@bookthatapp.com.

Local delivery for hires

Holdback hides Shopify's built-in Local delivery on hire items, because Shopify can't edit those orders once they're placed. You can turn this off in Holdback's Settings, under Local delivery for hires.

Shopify doesn't let any app change an order sent by its own Local delivery, so Holdback couldn't release the deposit on one. Holdback keeps Shopify's Local delivery off hire orders by itself, and shows your own Local delivery rate on them instead, for the postcodes you deliver to. Two steps, both yours. First, add the rate: in Shopify go to Settings, then Shipping and delivery, open the zone or market that covers where you deliver, choose Add rate, name it exactly Local delivery, set your price (0 for free delivery) and save. Then in Holdback's Settings, open Local delivery for hires, enter your postcode areas and press Keep local delivery for hires. Everything else you sell keeps Shopify's Local delivery as it is. A cart with a hire and other things in it follows the hire rule.