Using Holdback with Cowlendar
Tested with both apps installed (19 Sep 2026), on Shopify's Horizon theme with Cowlendar's Free plan, on an earlier version of Holdback in which the deposit sat on the booking's own cart line: a multi-day booking through Book now, checkout, the deposit on Holdback's Rentals page with its booked dates, a charge, and a cancellation. Holdback now adds the deposit as its own line, and that has not been re-tested with Cowlendar yet. Place one test booking on your own theme before you rely on it (step 5).
Cowlendar takes the booking: the calendar, the dates and the reminders. 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. They work on the same product. Cowlendar replaces the product's Add to cart button with Book now, and Holdback adds its deposit as its own Security deposit line next to the booking line, as an ordinary second line; checkout refuses a booking without its deposit line, and a deposit line without its booking.
Setting up
- Turn on both app embeds in your theme (Online Store → Themes → Customize → App embeds): Cowlendar's (their help centre calls it mandatory) and Holdback deposit. Save.
- Create the service in Cowlendar and link it to the product, as usual. Cowlendar needs the theme's normal Add to cart button on the product page so it has something to replace (Cowlendar).
- Add the deposit in Holdback (Charges → Add a deposit), picking the same product.
- Booked dates and the latest-charge date. Cowlendar writes the booking onto the cart line as
Start dateandEnd date(for example "Sep 29, 2026 (11:00 AM)"). Holdback reads them for the due-back date, the reminder before return and any late fee. Holdback reads that date and time as your shop's time zone (Shopify Settings → General). Cowlendar has its own time zone setting, and on our review store it showed New York while the shop was in London: the hours then differ, but the day Holdback uses is the date Cowlendar printed, so a due-back day never moves. Set Cowlendar's time zone to your shop's so the hours match too. Checkout also prints a date 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), and that date counts from the order, not from the booking. When you add the deposit, open Latest charge date and set Latest charge (days after the order) to cover how far ahead customers book, plus the hire and the inspection window: if people book up to 60 days ahead for a 3-day hire with 2 days to inspect, use 65. Rules with "Deposit per booking" default to 90 days. If a booking's return still falls after the date, Rentals flags it so you can finish it in time. - Place one test booking with Shopify's test payments. Checkout should show the hire fee due today and the deposit as a later amount, and the booking should appear on Holdback's Rentals page within a few seconds.
Leave these Cowlendar features off on deposit products
- Pre-Payment in "Selling plans" mode. Holdback hasn't been tested with Cowlendar's Pre-Payment on this version (Cowlendar: Pre-Payment).
- Cowlendar's own Deposit. It's a separate fee that you refund by hand (Cowlendar: Deposit). Holdback does the same job, with a reason and an email to the customer (when there is an address to send to), and never takes more than agreed.
- Booking without checkout. Shopify saves the card at checkout, so a booking that skips checkout has no deposit (Cowlendar).
Book now and Holdback's deposit
Tested on the earlier version (19 Sep 2026): Cowlendar's Book now puts the booking into your theme's product form and submits it, and Holdback's deposit went through with it. That held for a one-item and a two-item booking. The cart line carried Cowlendar's Start date and End date, its own private fields, and Holdback's record that the deposit notice was shown. Holdback now adds the deposit as its own Security deposit line when the booking is added to the cart.
Cowlendar can also add to the cart directly (its help centre mentions a "virtual form" option, and its public demo store used this for a two-item booking). That route could leave Holdback's deposit out, and checkout then refuses the order with "This hire needs its security deposit. Go back to the hire's product page, tick the deposit box and add it to your cart again.": nobody books without a deposit, but the booking doesn't go through. The current Cowlendar admin doesn't offer that option, so we couldn't reproduce it. If you see the error, tell us.
Multi-day bookings: choose "One deposit per booking"
Cowlendar puts a whole booking on one cart line, with quantity = days × items: on its demo store a 3-day booking of two vehicles went into the cart as quantity 6, priced 6 × the daily rate. A normal Holdback deposit is per item in the cart, so it would be multiplied too: a £500 deposit would become £3,000.
When you add the deposit in Holdback, choose One deposit per booking (Cowlendar) under "How the hire fee is paid". Tested: a 3-day booking of one item (quantity 3) and of two items (quantity 6) each took one deposit, and checkout showed the hire fee for every unit today and the one deposit later (£12.00 today and £9.96 deposit for 2 × 3 days at £2 with a £10 deposit; the deposit is split per unit and rounded down, so it's a few pence under). The customer is then asked for one deposit for the booking, whatever its quantity, while the hire fee still counts every unit (6 × the daily rate). Checkout shows the hire fee due today and the one deposit as the later amount.
How it works, so you know the limits: Shopify prices a cart line per unit and won't let an app change the price of a line that carries a deposit plan (a cart transform can't touch it). So Holdback gives the Security deposit line one deposit plan per booking size, each adding deposit ÷ size to the unit price, and picks the plan that matches the booking's quantity when it goes into the cart. Consequences:
- Up to 31 units per booking (Shopify allows 31 plans in one purchase option). On the product page, a booking bigger than that isn't added to the cart, and the notice reads "A booking can be for up to 31 at a time." If a cart is changed to more than 31, the line goes back to 31 and the customer sees "A booking can be for up to 31 at a time, so the quantity is back to 31."
- Pennies: the deposit is split per unit and rounded down, so a £500 deposit on a booking of 6 is set at £499.98. It is never more than you set.
- Changing the quantity in the cart: Holdback's storefront script moves the line to the right plan when the customer changes the quantity on the cart page or in a cart drawer. If a theme changes quantities in a way the script can't see, the deposit on that order follows the plan it had; Rentals shows the deposit actually agreed.
- Each booking line gets its own deposit: two separate bookings in one order have two deposits.
When the hire comes back
Holdback counts the hire to the booking's end (Cowlendar's End date). Once that date passes, the rental appears under Overdue on Holdback's Today and Rentals pages, and you say what came back:
- It's back: records the return and condition. Recording an overdue return takes no late fee. An on-time return with nothing owed can release the deposit.
- Keep a late fee: for eligible late days, whether the item is still out or back, keep the whole days late, times your daily rate per item, times the number of items (one rate for the whole booking on a per-booking deposit), capped by what remains. Days already paid for are excluded. Without a usable saved card, an eligible fee uses a payment link.
- Damage: send an itemised claim and photos for the customer to approve and pay. Damage is never taken from a saved card.
- Not returned or lost: eligible new agreements allow a confirmed keep; older agreements retain a claim. Eligible means your customer ticked the deposit terms: a booking made without the tick box (some booking apps add to the cart by their own script) is a claim instead. See Damage and claims.
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
Known gap: cancelling in Cowlendar never reaches Shopify. Cowlendar cancels the booking but not the Shopify order, so Holdback never hears about it and keeps the deposit open (tested 19 Sep 2026: the order stayed partially paid and Holdback heard nothing). If nobody notices, the cancelled booking turns up under Overdue when its end date passes. Don't answer "Yes, all fine" for it: that would release the deposit but leave the order open. 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 (leave it unticked if your terms keep it), releases the deposit in full and emails the customer, all in one step.
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. If you're keeping the order (the hire is going ahead on other dates, say), use It's back instead.
We've asked Cowlendar to cancel the Shopify order when a booking is cancelled, or to let Holdback know, so this becomes automatic — we have asked Cowlendar for a way to do it, and we will say so here when there is one.
Cowlendar's cart timer
Cowlendar holds a booked slot in the cart for 20 minutes by default and then removes the booking from the cart ("Slots lock time" in the service's Advanced settings). That doesn't affect Holdback: the deposit is attached to the booking line and goes with it, and a removed booking simply isn't bought. Leave it on, since it stops two customers booking the same slot. If customers regularly take longer to check out, lengthen the lock rather than turning removal off. (We turned removal off for our own test only, because the checkout was finished later by someone else.)
If Book now shows a cart error
Holdback products can only be bought with their deposit, so if Cowlendar's Book now adds the item 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. Cowlendar's support is hello@cowlendar.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.