Caddywell for PrestaShop: setup and user guide
What Caddywell does
Caddywell shows the requester's PrestaShop orders in the Zendesk ticket sidebar (and on user profiles), from every shop of a multistore: items, totals, payments, the delivery address, carriers with tracking links, the status history, credit slips and refunded quantities, and the order's messages, with their lifetime value and average order. Agents you allow can change the order status, add or fix the tracking number and add a message to the order. Every action asks for confirmation first and is logged on the ticket as an internal note.
Works with PrestaShop 1.7.6 and later, including PrestaShop 8 and 9, through PrestaShop's built-in Webservice. Nothing to install in PrestaShop.
1. Create a Webservice key
In the back office: Advanced Parameters > Webservice.
- Set Enable PrestaShop's webservice to Yes and save.
- Click Add new webservice key, then Generate!. Description: "Caddywell for Zendesk". Status: Yes.
- Tick the permissions below. Leave out the actions you do not want agents to take.
- Multistore: under Shop association, tick every shop. Caddywell reads every shop's orders with this one key, and reads each order's carrier in that order's own shop.
- Save and copy the key.
| Caddywell feature | Resource | Permission |
|---|---|---|
| Customers and guest checkouts by email | customers | View (GET) |
| Orders, items and totals | orders, order_details | View (GET) |
| Status names, history and status changes | order_states, order_histories | View (GET); Add (POST) on order_histories to change statuses |
| Carriers and tracking numbers | carriers, order_carriers | View (GET); Modify (PUT) on order_carriers to set tracking numbers |
| Delivery address | addresses, countries | View (GET) |
| Payments | order_payments | View (GET) |
| Credit slips and lifetime value net of refunds | order_slip | View (GET) |
| Order messages | customer_threads, customer_messages | View (GET); Add (POST) on both to add messages |
| Currency and shop names | currencies, shops | View (GET) |
Without shops, currencies or countries, Caddywell still works and shows plainer labels.
2. Check that Zendesk can reach the Webservice
- Your store needs HTTPS with a certificate browsers accept, reachable from the internet.
- The Webservice lives at
https://your-domain/api/(orhttps://your-domain/your-folder/api/). That address needs PrestaShop's URL rewriting: the.htaccessfile on Apache, or PrestaShop's rewrite rules on nginx. If the sidebar says the Webservice was not found, ask your host to apply them. - Firewalls, CDNs and security modules (Cloudflare, a WAF, a hosting firewall) must let Zendesk's
servers reach
/api/. Allow Zendesk's IP ranges, published at https://support.zendesk.com/hc/en-us/articles/4408842860186, for that path.
3. Install and configure Caddywell
Install from the Zendesk Marketplace and choose the plan for your number of agents and admins (section 7). Then in Admin Center > Apps and integrations > Zendesk Support apps > Caddywell:
| Setting | What to enter |
|---|---|
| Store name | Shown in the sidebar and, with several stores, in ticket notes |
| Store domain | The domain only, lowercase: shop.example.com. No https://, no path, no port |
| Base path | Only for a sub-folder install, like /shop. Do not add /api |
| Webservice key | The key from section 1. Stored as a Zendesk secure setting |
| Back office URL | Optional, your admin folder address like https://shop.example.com/admin123abc, for "Open in PrestaShop" links |
| Brands for this store | Optional, Zendesk brand ids whose tickets open this store first |
| Shops per brand | Optional, for multistore: 360001: 1; 360002: 2, 3 (brand id: shop ids) |
| Stores 2 and 3 | The same settings for a second and third PrestaShop installation |
| User field with the PrestaShop customer id | Optional, a Zendesk user field key holding the customer id |
| Who may take actions | admin (default), agent, custom role ids, group:<id>, comma separated |
| Allow status changes, tracking numbers, order messages | Switch each action type on or off |
| Statuses agents may set | Optional allow-list of status ids, like 3, 4, 5, 6 |
| PrestaShop employee id for messages | The employee messages are written as (Advanced Parameters > Team, ID column). Messages stay off until it is set |
| Language id for status names | Optional; empty uses the first language |
| Canceled and Refunded status ids | PrestaShop's defaults are 6 and 7; change only if yours differ |
Zendesk never sends the key to agents' browsers. It adds the key to requests on their way to the store domain you entered, and only to that domain.
Find a status id in Shop Parameters > Order Settings > Statuses (the ID column). Find a shop id in Advanced Parameters > Multistore. Find a brand id in Zendesk Admin Center > Account > Brand management > Brands (the number in the brand's URL).
4. Using the sidebar
- Matching: every email address on the requester's Zendesk profile is searched, across all shops. Guest checkouts are included (PrestaShop stores them as guest customers). In a multistore where each shop keeps its own customer accounts, every account with the address is found.
- Orders: newest first, five at a time. Each shows its reference, id, date, total, status and, in a multistore, its shop. Click one to open it.
- Order details: items with what was refunded or returned, totals, payments with transaction ids, the delivery address, carrier and tracking link, status history, credit slips and messages.
- Lifetime value: what PrestaShop recorded as paid on validated orders, minus credit slips, per currency. With more than 50 orders it covers the latest 50 and says so.
- Insert status in reply: adds the reference, status, carrier and tracking link to your reply.
- Lookup: type an order reference (
XKBKNABJK), an order id (1043) or an email. - Shops per brand: a brand mapped to shops shows those shops' orders first; click "Show all shops" for the rest.
5. Actions
Every action opens a confirmation that says exactly what will happen. Nothing is sent until you confirm, and each action adds an internal note and a tag to the ticket. Actions work on tickets only (not on a new ticket or a user profile), for the roles and groups in "Who may take actions".
| Action | What PrestaShop does | Tag |
|---|---|---|
| Change status | The same steps as the back office status dropdown: stock, invoice and delivery slip numbers, a payment record when the new status counts as paid, your modules' reactions. Optional: the status email | caddywell_status |
| Add or change tracking | Saves the number on the order's carrier. Optional: the "in transit" email with the number | caddywell_tracking |
| Add message | Adds a message to the order's thread (starting one if needed): team only, or visible to the customer with the order in their account. PrestaShop does not email it, so also reply in Zendesk | caddywell_message |
Rules:
- A canceled or refunded order only changes status again for admins.
- The status list follows "Statuses agents may set" when you fill it in.
- A status that counts as paid on an unpaid order, canceling a paid order, and statuses that belong to a module show a warning first.
Refunds
PrestaShop's Webservice has no refund operation: standard and partial refunds (credit slips, refunded quantities, restocking, vouchers, payment module refunds) only run in the back office. Caddywell therefore never moves money. It shows each order's credit slips and refunded quantities, lifetime value net of refunds, can set the Refunded status (it warns that no money moves), and Open in PrestaShop takes you to the order, where Partial refund and Standard refund are.
6. Troubleshooting
| The sidebar says | What to do |
|---|---|
| Did not accept the Webservice key | Check that the key in Caddywell is the one in Advanced Parameters > Webservice and that its status is Yes |
| The Webservice key may not do this | Tick the permission the message names (section 1) |
| The Webservice is turned off | Advanced Parameters > Webservice > Enable PrestaShop's webservice: Yes |
| Not enabled for this shop | Multistore: tick every shop under the key's Shop association |
| The Webservice was not found | Check the domain and base path, and that /api is rewritten (section 2) |
| A firewall or CDN blocked Zendesk, or answered with a web page | Allow Zendesk's IP ranges for /api/ (section 2) |
| No orders in the store for an email | The order uses another address. Use the lookup box, add the address to the Zendesk user, or set up the user field mapping |
| No status change offered | Your role or group is not in "Who may take actions", status changes are off, the order is canceled or refunded (admins only), or this is a new ticket or a user profile |
| Messages are missing | Set the PrestaShop employee id in the settings |
| Plan too small for this account | Your Zendesk account has more agents and admins than the plan covers. An admin changes the plan in the Zendesk Marketplace; the order list keeps working meanwhile |
7. Plans and billing
| Plan | Price | Zendesk agents and admins |
|---|---|---|
| Starter | $32 per month | up to 3 |
| Team | $75 per month | up to 10 |
| Business | $175 per month | up to 25 |
| Scale | $7.50 per agent per month | more than 25 |
Every plan has every feature and up to three PrestaShop installations. 14-day trial: Zendesk asks for a card at install and starts billing when the trial ends unless you uninstall. No free plan. Billed monthly by Zendesk. Change plan or uninstall in Zendesk at any time.
8. Data and privacy
Caddywell runs in your agents' browsers. It has no Great Work server, keeps no copies of your data, has no export, sends nothing to Great Work or anyone else and uses no AI. It reads orders only while the sidebar is open. Privacy policy: https://greatwork.company/apps/caddywell-for-prestashop/privacy.
9. Uninstalling
Uninstall in Admin Center. The stored keys are deleted with the app. Also delete the Webservice key
in PrestaShop. Internal notes and caddywell_* tags already on tickets stay.
Support
hello@greatwork.company. We reply within one business day.
PrestaShop is a registered trademark of PrestaShop SA. Caddywell is not made or endorsed by PrestaShop SA or Zendesk.