- Documentation
- Integrations
- Apps
- PrestaShop integration
PrestaShop integration
Sync orders, customers, products, stock and carts between your clients' PrestaShop stores and the rest of their stack.
What it does
Connect a client's PrestaShop store and run the order lifecycle, the customer list and the catalogue from a workflow. Watch for new orders and status changes and push them into fulfilment, accounting or a CRM. Add tracking numbers and move orders to Shipped when a parcel leaves the warehouse. Keep stock in step with a supplier feed, create and update products, chase abandoned carts, and route contact-form messages to a helpdesk. Every call goes through the store's own webservice with a key the client controls, so you can run many client stores side by side without sharing Back Office logins.
Works with PrestaShop 8 and 9. PrestaShop 1.7 works for every read and create;
updates need PrestaShop 8 or newer, because they use the webservice's PATCH
method.
Connect a PrestaShop store
PrestaShop authenticates with a webservice key, created once in the store's Back Office and sent as the HTTP Basic username with a blank password.
- In the Back Office, go to Advanced Parameters → Webservice and make sure Enable PrestaShop's webservice is set to Yes.
- Choose Add new webservice key, select Generate!, and give the key a
description such as
TaskJuice. - Tick the permissions the workflows need. PrestaShop grants nothing by default,
and each resource has its own GET, PUT, POST, PATCH and DELETE boxes. For the
full integration, grant all methods on
addresses,carts,customers,orders,order_carriers,order_histories,productsandstock_availables, and view (GET) oncarriers,categories,countries,currencies,customer_messages,groups,languages,manufacturers,order_detailsandorder_states. Make an API Call needs whatever its resource needs. - Save the key and copy it.
- In TaskJuice, add a PrestaShop connection from any PrestaShop node. Paste the
Store URL (including
https://, with no trailing slash) and the key. Leave the password field blank.
The key travels with every request. Serve the store over HTTPS so it is never sent in plain text.
Triggers
All PrestaShop triggers poll the store. See Why these triggers poll.
Each trigger asks for a Store Host: the store's hostname on its own, such
as shop.example.com, with no https://, port or path. Set it to the same store
the trigger's connection points at.
prestashop/order-created: a customer places an order, or one is created in the Back Office.prestashop/order-updated: an order is created or changes in any way (status, payment, totals, tracking).prestashop/order-status-changed: an order moves to a new status. Each item carries the order ID and the new status ID; add a Filter onid_order_stateto react to one status only, such as Shipped.prestashop/customer-created: a customer or guest account is created.prestashop/customer-updated: a customer account is created or edited.prestashop/product-created: a product is added to the catalogue.prestashop/product-updated: a product is created or edited.prestashop/cart-updated: a cart is created or its contents change. Use it for abandoned-cart follow-ups with a Delay and a check for an order on the cart.prestashop/manufacturer-updated: a brand is created or edited.prestashop/customer-message-created: a message is added to a customer service thread, from the contact form, an order page or an employee reply.id_employeeis0when the customer wrote it.
The first check after you publish records what already exists and fires
nothing, so a new workflow never replays the store's history. Each trigger
emits one activation per check with the new records in items. Add a Loop node
set to items to handle them one at a time, or read the array directly for a
digest.
Actions
Orders
prestashop/list-orders: list orders by status, customer, reference or update date.prestashop/get-order: fetch one order with its lines.prestashop/create-order: turn an existing cart into an order, for example for a phone or marketplace sale.prestashop/update-order: set the tracking number, the internal note or the payment label, without emailing the customer.prestashop/list-order-carriers: list an order's shipments with their IDs and tracking numbers.prestashop/update-order-tracking: set a shipment's tracking number and, optionally, send the customer PrestaShop's in-transit email.prestashop/update-order-state: move an order to a new status the way the Back Office does, optionally emailing the customer.prestashop/list-order-rows: list an order's product lines.prestashop/list-order-history: list every status an order went through.prestashop/list-order-states: list the store's order statuses and their IDs.
Customers and addresses
prestashop/list-customers: find customers by email, last name or status.prestashop/get-customer: fetch one customer.prestashop/create-customer: create a customer account.prestashop/update-customer: change a customer.prestashop/list-customer-groups: list customer groups.prestashop/list-addresses: list addresses, optionally for one customer.prestashop/get-address: fetch one address.prestashop/create-address: add an address to a customer.prestashop/update-address: change an address.
Catalogue and stock
prestashop/list-products: list products by reference, name, status or category.prestashop/get-product: fetch one product with its categories, images and stock references.prestashop/create-product: create a simple product in a category.prestashop/update-product: change a product's name, price, descriptions, status and other details.prestashop/get-product-stock: read a product's stock rows, one per combination.prestashop/update-product-stock: set the available quantity.prestashop/list-categories: list categories.prestashop/list-manufacturers: list brands.prestashop/get-manufacturer: fetch one brand.
Carts and store settings
prestashop/list-carts: list carts by customer or update date.prestashop/get-cart: fetch one cart with its lines.prestashop/create-cart: create a cart with a product line.prestashop/update-cart: change a cart's customer, addresses, currency, language or carrier.prestashop/get-language: fetch one installed language.prestashop/api-request: read any other webservice resource, such as specific prices, invoices or credit slips.prestashop/api-write-request: create, replace, update or delete any other resource by sending PrestaShop webservice XML.
Update actions only change the fields you fill in.
Why these triggers poll
PrestaShop has no webhook subscription that can be registered through its API, in version 8 or 9. Real-time notifications need a paid module installed on the store, and each one sends its own payload, so none can be set up on a client's behalf. Every other automation platform polls PrestaShop for the same reason.
Each check is one request to the client's server. Five minutes suits order and fulfilment flows; catalogue and brand sync is usually fine at fifteen minutes or more.
Known limitations
- Triggers need a store at the root of an HTTPS host. A store served over
plain HTTP, on a non-standard port, or from a subdirectory such as
example.com/shop/cannot be used with the triggers yet. Actions work in every case, because they take the full store URL from the connection. - Updates need PrestaShop 8 or newer. They use
PATCH, which PrestaShop added in version 8.0. - "New or Updated" triggers watch a window. Each check reads the most recently updated records, up to Max Records Per Cycle. If more records than that change between two checks, raise the limit or shorten the interval. A stock-only change does not update a product's date, so it fires only if the product is already in that window.
- Translatable fields depend on the store's languages. On a store with more than one language, names and descriptions come back as one entry per language. Pick a Language on the action to get plain text in that language.
- Product updates clear the languages you leave out. When Update Product changes a name, description or meta field, PrestaShop blanks that field in every language the request does not include. On a multilingual store, give the other languages under Other languages, keyed by language ID. Fields you leave empty are not touched in any language.
- Customer emails are unique. Create Customer fails with "The email is already used" when the address exists. Look it up with List Customers first.
- Stock updates take two steps. Run Get Product Stock (or read
associations.stock_availablesfrom Get Product) for the stock ID, then Update Product Stock. - Order statuses and IDs are per store. Pick them from the dropdowns rather than typing numbers copied from another store.
- Write responses include PrestaShop's own fields. Customer and cart write
responses include the account's
secure_keyand password hash, as PrestaShop returns them. Reads and triggers leave these out. - Product images are not available. The webservice's JSON output breaks on the image resource, so images can be referenced by ID but not listed.