Connect your
PrestaShop shop to GSE-Web
Your catalog and available stock are sent to the shop. Orders that reach the statuses you choose arrive in GSE-Web as confirmed outbound orders, with the stock reserved.
In brief
The PrestaShop connector links a PrestaShop shop to a GSE-Web warehouse through the shop's native Webservice: nothing needs to be installed in PrestaShop. GSE-Web publishes the stock to the shop, and the shop sends its orders. An organisation administrator sets it up from the ADMIN menu › “Integrations”.
- What goes to the shop: the pages of simple products, kits and products with variants (name, reference, price excluding tax, barcode), if you ask for it, and the available stock of the published warehouse if you tick “Publish available stock”.
- What arrives in GSE-Web: each order that reaches one of the order statuses you choose becomes a confirmed outbound order with the stock reserved, if you tick “Receive orders”; the buyer becomes an “Individual” customer. If you ask for it, the description and photos of linked products are also taken from the shop.
- When: stock is sent to the shop a few seconds after each change in GSE-Web. PrestaShop does not notify GSE-Web: orders are read every 5 minutes, so they do not arrive in real time.
- What is never done: nothing is deleted in the shop (a product withdrawn from sale is deactivated there), GSE-Web never writes the lines of an order and never issues a refund. It only sets the order status you chose when an outbound order is delivered or cancelled, if you ask for it.
- Switching off: pause, disconnect or close the module at any time, without losing anything; on resuming, orders placed in the meantime are caught up.
- The connector is compatible with the PrestaShop 8 and 9 Webservice. PrestaShop is a trademark of its publisher; GSE-Web is neither published nor endorsed by PrestaShop.
Requirements
Check these points before opening the connector screen: the connection test verifies them and clearly refuses whatever is missing.
The Webservice enabled and URL rewriting
In the PrestaShop back office: Advanced Parameters › Webservice, “Enable PrestaShop's webservice”. The Webservice lives under /api/ and requires URL rewriting (Apache: mod_rewrite and AllowOverride All).
A Webservice key with the right permissions
32 letters and digits, status enabled. Read on shops, languages, currencies, countries, configurations, categories, tax_rule_groups, images, orders, order_states, addresses, customers; read, create and modify on products and combinations; read and create on product_options and product_option_values; read and modify on stock_availables and order_carriers; create on order_histories. The test names each missing permission.
A public HTTPS address
The shop must be reachable on the Internet over HTTPS; a subfolder is allowed (https://www.my-shop.com/shop). An http:// address, or one on a private network, is refused.
Tested versions, a single shop
The connector is tested on PrestaShop 8.2.8, 9.1.0 and 9.1.2. Other versions are accepted, but the connection screen then shows a warning: contact us if you run into a problem. A key that sees several shops is refused: multistore is not supported.
The modules opened for your organisation
“Integrations”, then “PrestaShop”. Ask KLS-Concept to open them. Without “Integrations”, the menu entry does not appear.
An ADMIN account with two-factor authentication
Entering the shop key is refused until two-factor authentication is enabled on your account (“My information”). Enable it before filling in the fields.
A real warehouse, the same currency, a tax group
The published warehouse is a real warehouse (an exercise warehouse is refused). The shop's currency must be your organisation's currency, and stock management must be enabled in the shop. For GSE-Web to create pages, the shop needs a tax rules group: a new shop has none.
Step-by-step setup
Six steps, in the order of the screen.
Open the connector screen
ADMIN menu › “Integrations”. The PrestaShop card is in the “E-commerce” category. Click “Set up” (the button becomes “Manage” once the shop is saved).
“Shop” card
Fill in “Shop address” (HTTPS, for example https://www.my-shop.com), “Webservice key” (created in Advanced Parameters › Webservice) and “Published warehouse” (a real warehouse).
The key is write-only: once saved, it is never displayed again, and the screen only shows its first and last characters. A shop that has already been activated cannot change address: disconnect it first.
“Settings” card
Every setting has a default value:
- “Create and update product pages in the shop”: unticked by default. Unticked, GSE-Web only matches the products already in the shop, by reference. Ticked, it requires a “Tax rules group for created products” and a “Default category for created products” (an existing page keeps its own).
- “Publish available stock”: unticked by default; tick it for GSE-Web to write the stock to the shop. Requires stock management to be enabled in the shop.
- “Receive orders”: unticked by default; tick it to import orders. Ticked, it requires “Order states that create an outbound order” (at least one, for example “Payment accepted”). Statuses are specific to each shop; an unknown status is never imported.
- “Order states that cancel the outbound order”: optional. Left empty, the shop cancels no outbound order.
- “Maximum age of a caught-up order (days)”: 30 by default, from 1 to 90. After a pause or a closure, an older order is not imported automatically.
- “Report deliveries and cancellations to the shop”: unticked by default; tick it for deliveries and cancellations to be sent back. Ticked, with “State set when the outbound order is delivered” (typically “Shipped”) and “State set when the outbound order is cancelled” (typically “Cancelled”). With no status chosen, nothing is sent back.
- “Pull the description and photos from the shop”: unticked by default. The shop remains the master of this content; GSE-Web never writes it to the shop.
- No price mode to set: GSE-Web publishes its selling price excluding tax, and the shop computes its tax-inclusive price with the chosen tax rules group.
Save
Click “Save”. “Test the connection” and “Activate” act on the saved configuration: the screen asks you to save any change first.
Test the connection, then choose from the shop's lists
“Test the connection” queries the shop: key accepted, key permissions (with the list of missing ones), currency equal to the organisation's, stock management, a single visible shop. It shows what the shop declared (PrestaShop version, time zone, currency, languages) and loads the lists to choose from: tax rules groups, categories, order statuses. Choose your statuses there, save, and test again.
Activate
“Activate” repeats the test, requires the choices your settings need (statuses; tax group and category if you create pages), then starts synchronization. Orders placed before activation are not imported.
What is synchronised, and which side is authoritative
Each field has a single master. In a shop order, GSE-Web only writes its delivery or cancellation status, never its lines.
📦 GSE-Web is authoritative
- ✓Product name (all the shop's languages)
- ✓Reference (SKU in the shop)
- ✓Selling price excluding tax
- ✓Barcode
- ✓Put on sale or deactivated
- ✓Stock, per product or per combination
🛒 The shop is authoritative
- ✓Description (taken into GSE-Web as an option)
- ✓Photos (taken into GSE-Web as an option)
- ✓Categories, promotions, features
- ✓Taxes (rules groups)
- ✓Orders and their statuses
- ✓Refunds
The rules
- Simple products, kits and products with variants. A simple product is published as a standard PrestaShop product. So is a kit, with the number of kits that can be assembled from the published warehouse's components as its stock. A product with variants is published as a product with combinations: the axes (size, color…) become option groups, and each variant is a combination with its reference, its stock and a price difference from the base price.
- The GSE-Web name is authoritative. A name update rewrites it in every active language of the shop: translations made in PrestaShop are overwritten.
- A product withdrawn from sale in GSE-Web is deactivated in the shop; it is never deleted there. A variant withdrawn from sale is set to stock 0. When a page is created, the shop refuses orders without stock; an existing page keeps the merchant's setting.
- Selling price excluding tax, published as is with 4 decimals. The shop computes its tax-inclusive price with the tax rules group chosen for created pages: if its rate differs from the product's VAT in GSE-Web, the tax-inclusive price shown in the shop differs from GSE-Web's.
- Published stock = available stock of the published warehouse (physical minus reserved), rounded down to the unit, never negative. It goes to the shop a few seconds after each change: receipt, issue, transfer, inventory, reservation set or released on an outbound order. The full pass also rereads it every 5 minutes. For a variant, stock is written per combination.
- One order = one confirmed outbound order from the published warehouse, with the “Reserve the products for this order.” box ticked: the whole ordered quantity is reserved, even beyond the stock (the shortage reads “Awaiting receipt” on the outbound order). The delivery address is taken over. Never a partial outbound order: if a line is a problem (unknown product, unknown variant, kit that cannot be published, buyer without an e-mail, other currency), no outbound order is created and an item to handle explains why.
- Detection by reading, without webhooks. PrestaShop does not notify GSE-Web: every 5 minutes, GSE-Web reads the new or modified orders. A status change is therefore seen on the next pass, never in real time.
- One buyer = one “Individual” customer, found again by e-mail from one order to the next. A third party already in GSE-Web is not matched: an “Individual” customer is created.
- An order moved to a cancellation status that you chose: the outbound order is cancelled and its reservations released, unless someone has already taken it on. In that case an item to handle leaves the decision to the team.
- Order modified in the shop after import: the change is not carried over to the outbound order; an item to handle asks you to check it. A kit order becomes an outbound order on its components; a variant order gives an outbound order on the variant.
- Reporting deliveries and cancellations (setting unticked by default: the ADMIN ticks it): a delivered or closed outbound order first gets its tracking number (when its shipment has one), then the order moves to the chosen status; GSE-Web does not trigger the shop's e-mail: PrestaShop does not notify the buyer of this change. An outbound order cancelled in GSE-Web sets the chosen cancellation status, without a refund: that is done in PrestaShop. An order the shop has already shipped or delivered is not undone: an item to handle flags it. Partially delivered or being prepared: nothing until the outbound order is complete.
- Pulling the description and photos from the shop (setting unticked by default): on each pass, for each linked product, the shop's description is copied as plain text (an empty description never erases GSE-Web's); photos are added in the shop's order and removed when they disappear from the shop. At most 20 photos per product. Not taken: categories, promotions, features, content specific to each variant, nor names, prices and barcodes modified in the shop.
Day to day
The connector screen reads from top to bottom: status, shop, settings, buttons, then the items to handle and the log.
The “Status” card
It shows where the connection stands, the shop's name and currency, the date of the last sync, the last error and the number of items to handle. On the card of the “Integrations” page, the status fits in a chip.
- Not active yet “Set up, not activated yet”.
- Connected “Active — stock sent as soon as it changes, orders read every 5 minutes”. The state follows the saved settings: without “Receive orders”, “… orders not received”; without “Publish available stock”, “… stock not published”.
- Paused “Paused — nothing is sent or imported”.
- Stopped — check it “Stopped by the server — check the Webservice key and test”.
“Sync now”
Stock is sent to the shop automatically, a few seconds after each change. PrestaShop does not notify GSE-Web: orders are read every 5 minutes. This button starts the full synchronization right away (product pages, order reading, deliveries). The message says whether the pass is finished, whether it raised items to handle, or why it did not start.
The “What flows between GSE-Web and the shop” card
Below the settings, a card tells for each exchange which way it goes: from GSE-Web to the shop (pages, stock, variants, deliveries and cancellations), from the shop to GSE-Web (orders, cancellations, description and photos) and what never goes through (order lines, refunds, categories, tax rules, specific prices, names, prices and barcodes modified in the shop). A line tied to an unticked setting is marked “Disabled”.
The “Log”
Each pass appears there with its type and result. Types: “Product pages”, “Stock”, “Live stock” (sent as soon as a stock changes, recorded only if a quantity changed), “Pull from the shop”, “Order reading”, “Order feedback”, “Connection test”. Results: “Succeeded”, “Partial”, “Failed”, “Running”, “Interrupted”. Clicking a pass opens its detail, item by item. Passes that changed nothing can be hidden.
The “Items to handle”
A line that does not go through never blocks the sync: it becomes an item to handle and the rest carries on. Items about product pages and stock clear themselves once their cause is fixed. Order items have two buttons.
- “Retry” reads the order from the shop again and retries the import, whatever its age. It is not offered for feedback items (fulfilment, cancellation in the shop): the next pass retries them on its own.
- “Ignore” puts the item away: an ignored item does not come back to the list. “Ignore all”, at the top of the list, puts away all open items at once, including those not displayed, after confirmation.
Product pages
- Cause
- The product is not of a type the connector can publish.
- What to do
- Use a simple product, a kit or a product with variants.
- Cause
- The product has no selling price in GSE-Web.
- What to do
- Enter its selling price. The item disappears on the next pass.
- Cause
- The reference is carried by several products of the shop, starts with a square bracket, matches a product of another type (pack, virtual, with combinations) or is already linked to another GSE-Web product.
- What to do
- Make the reference unique in the shop or in GSE-Web; GSE-Web never matches at random.
- Cause
- The shop refused the page (reference too long, empty name, invalid data).
- What to do
- Fix the page in GSE-Web: the item disappears on the next pass.
- Cause
- The linked page was deleted in PrestaShop.
- What to do
- Recreate it, or remove the product from the published scope, then resynchronize.
- Cause
- The product went from simple to variants (or the reverse): the link to the old page is removed.
- What to do
- Deactivate or delete the old page in PrestaShop, then ignore the item.
- Cause
- The kit has no component, a component is archived, or its unit differs from its base unit.
- What to do
- Fix the kit's composition in GSE-Web.
- Cause
- The product has no publishable variant.
- What to do
- Create at least one variant with a price.
- Cause
- The parent is missing, archived, out of scope, not yet published, or its axes are invalid.
- What to do
- Publish the parent product and fix its axes, then resynchronize.
- Cause
- The page was created but PrestaShop did not accept the “deny orders when out of stock” setting.
- What to do
- Set it in PrestaShop if you want it, then ignore the item.
- Cause
- A photo in the shop is not found, in an unsupported format, too large (over 5 MB), the shop is unreachable, or the product has more than 20.
- What to do
- Fix the photo in the shop; the rest of the product is taken anyway.
Stock
- Cause
- The available quantity is not a whole number; PrestaShop only handles whole quantities.
- What to do
- No action needed; the quantity is rounded down to the unit.
- Cause
- The shop refused the quantity sent.
- What to do
- Check the page in the shop; the send is retried on the next pass.
Saved choices (shop)
- Cause
- The chosen group was deleted or deactivated in PrestaShop.
- What to do
- Pause the connection, test, choose another group, save and resume.
- Cause
- The chosen category was deleted in PrestaShop.
- What to do
- Pause the connection, test, choose another category, save and resume.
- Cause
- No status is chosen, or the one that was has been deleted from the shop.
- What to do
- Choose the status in “Settings” (while paused), save and resume.
- Cause
- No status is chosen, or the one that was has been deleted from the shop.
- What to do
- Choose the status in “Settings” (while paused), save and resume.
Orders
- Cause
- A line of the order carries a reference that is not in GSE-Web.
- What to do
- Create the product with the same reference, then “Retry”.
- Cause
- The ordered combination is unknown to GSE-Web, or the reference of a product with variants is ordered without a combination.
- What to do
- Create the variant in GSE-Web, then “Retry”.
- Cause
- The shop provides no e-mail for this buyer.
- What to do
- Fix the customer record in PrestaShop, then “Retry”.
- Cause
- The “Individual” customer linked to this e-mail was archived in GSE-Web.
- What to do
- Unarchive the customer, then “Retry”.
- Cause
- The order's currency is not the organisation's; no conversion is made.
- What to do
- Handle this order by hand in GSE-Web, then ignore the item.
- Cause
- It is older than “Maximum age of a caught-up order”.
- What to do
- “Retry” imports it, whatever its age.
- Cause
- The outbound order is already taken on by someone: GSE-Web does not cancel it silently.
- What to do
- Decide with the warehouse team whether preparation must stop.
- Cause
- The order's lines changed since the outbound order was created.
- What to do
- Check the outbound order and correct it by hand if needed.
- Cause
- An error prevents the outbound order from being created.
- What to do
- Read the cause in the item's detail, fix it, then “Retry”.
- Cause
- The ordered kit has no component, a component is archived, or its unit differs.
- What to do
- Fix the kit's composition, then “Retry”.
- Cause
- The shop refused the status set by GSE-Web.
- What to do
- Check the order in the shop; the next pass retries.
- Cause
- The outbound order was cancelled in GSE-Web, but the shop had already shipped or delivered the order: GSE-Web does not undo it.
- What to do
- Sort the situation out with the customer (refund, return) directly in the shop.
- Cause
- The order has no carrier in PrestaShop, or has several: the tracking number could not be written. The status itself is set.
- What to do
- Enter the tracking number in PrestaShop if needed.
Pause, resume and changes
The connector can be switched off and on again at any time. Some changes follow a rule, which the screen reminds you of and the server enforces.
“Pause”
Nothing is sent or imported any more, and nothing is lost. The stock shown in the shop stays as last sent.
“Resume”
The shop is checked again (key, permissions, currency, tax group, category and chosen statuses), then catch-up starts: orders placed during the pause are imported if they are less than N days old (“Maximum age of a caught-up order”, 30 by default). Older ones become items to handle.
Changing the Webservice key
While the connection is active, the shop address and the key are locked. Follow this order: “Pause”, edit, “Save”, “Test the connection”, “Resume”.
Changing the shop address
“Disconnect” first: the products and orders already linked refer to the old shop. Then enter the new address and its key.
Reconnecting the same shop
Products, orders and customers already linked are found again: no second outbound order is created for an order that was already imported.
Changing the tax group, category or statuses
While paused only. Resuming checks these choices against the shop again: PrestaShop silently accepts a tax group or category that does not exist, so GSE-Web does the checking. A tax group or category deleted in the shop becomes an item to handle, and no page is created.
“Disconnect”
The key is erased and synchronization stops. Nothing is deleted in the shop or in GSE-Web: outbound orders and customers already imported remain.
Module closed
If KLS-Concept closes the module for your organisation, everything stops without anything being deleted. When it reopens, the next pass catches up the orders and publishes the stock again.
Security and data
What the connector keeps, and how.
Encrypted key
The Webservice key is encrypted on the server (AES-256-GCM). It is never displayed again or written to logs.
Two-factor authentication
It is required to enter or replace a shop's credentials.
Public HTTPS shop only
The connector only calls the HTTPS address entered, on a public host whose address is verified; no redirect is followed. Photos taken from the shop are downloaded only from a public HTTPS address, without ever sending the key.
Nothing to open on the GSE-Web side
PrestaShop sends nothing to GSE-Web: GSE-Web queries the shop. No GSE-Web address has to be exposed to the shop, and no module has to be installed in it.
Buyer data
Their contact details go into their customer record and the delivery address onto the outbound order. The link with the shop only keeps a fingerprint of their e-mail.
Nothing in the export
The encrypted credentials are not included in the organisation's portability export.
Troubleshooting
The message shown by the screen, its cause and what to do. The code in square brackets helps support find the case.
“Stopped by the server — check the Webservice key and test”
After five authentication refusals in a row (key deactivated or deleted in PrestaShop), the server stops the connection so as not to keep trying. Check the key in Advanced Parameters › Webservice, enter it again if needed, “Save”, “Test the connection”, then “Activate”.
- What to do
- Enter the shop's HTTPS address, for example https://www.my-shop.com, with no credentials or parameters.
[PRESTASHOP_SHOP_URL_INVALID]
- What to do
- Use the shop's public address.
[PRESTASHOP_SHOP_URL_PRIVATE_HOST]
- What to do
- Check that the key is copied in full (32 characters) and active in Advanced Parameters › Webservice.
[PRESTASHOP_SHOP_AUTH_FAILED]
- What to do
- Test the connection: the screen lists the permissions the key lacks.
[PRESTASHOP_SHOP_ACCESS_DENIED]
- What to do
- In Advanced Parameters › Webservice, tick the listed permissions for this key, then test again.
[PRESTASHOP_RIGHTS_MISSING]
- What to do
- Enable the Webservice in Advanced Parameters › Webservice and check that URL rewriting works.
[PRESTASHOP_WEBSERVICE_UNAVAILABLE]
- What to do
- No conversion is made: align the shop's default currency with the organisation's.
[PRESTASHOP_SHOP_CURRENCY_MISMATCH]
- What to do
- Enable stock management in PrestaShop, or untick “Publish available stock”.
[PRESTASHOP_STOCK_MANAGEMENT_DISABLED]
- What to do
- Create a key limited to a single shop.
[PRESTASHOP_MULTISHOP_UNSUPPORTED]
- What to do
- Choose a tax rules group after testing the connection. A new shop has none: create one in PrestaShop (International › Taxes › Tax rules).
[PRESTASHOP_TAX_GROUP_REQUIRED]
- What to do
- Test the connection, then choose a category from the list.
[PRESTASHOP_CATEGORY_REQUIRED]
- What to do
- Choose a status (for example “Payment accepted”), or untick “Receive orders”.
[PRESTASHOP_IMPORT_STATES_REQUIRED]
- What to do
- Click “Disconnect”, then enter the new address and its key.
[PRESTASHOP_SHOP_CHANGE_REQUIRES_DISCONNECT]
- What to do
- “Pause”, edit, “Save”, “Test the connection”, “Resume”.
[PRESTASHOP_SHOP_SETTINGS_CHANGE_REQUIRES_PAUSE]
- What to do
- “Pause”, change the key, “Save”, “Test the connection”, “Resume”.
[PRESTASHOP_CONNECTION_ACTIVE_CHANGE_REFUSED]
- What to do
- Enter the Webservice key.
[PRESTASHOP_CREDENTIALS_REQUIRED]
- What to do
- Open “My information”, enable two-factor authentication, then come back.
[PRESTASHOP_CONNECTION_TWO_FACTOR_REQUIRED]
- What to do
- Choose a real warehouse as “Published warehouse”.
[PRESTASHOP_WAREHOUSE_EXERCISE_REFUSED]
- What to do
- Check that the shop is online; try again in a few moments.
[PRESTASHOP_SHOP_UNREACHABLE]
- What to do
- Try again; if the message persists, contact support with the code below.
[PRESTASHOP_SHOP_RESPONSE_INVALID]
- What to do
- Wait a few minutes; the next pass resumes.
[PRESTASHOP_SHOP_RATE_LIMITED]
- What to do
- Wait for the current pass to finish.
[INTEGRATIONS_CONNECTION_BUSY]
- What to do
- Enter the Webservice key again, test, then activate.
[INTEGRATIONS_CREDENTIALS_UNREADABLE]
Frequently asked questions
Are products with variants supported?
Yes. A product with variants is published as a product with combinations, and each variant as a combination with its reference, its stock and a price difference from the base price. The axes become option groups of the shop.
Can several shops be connected?
No. An organisation connects one shop, and one GSE-Web warehouse, the “Published warehouse”, feeds that shop. PrestaShop multistore is not supported: a key that sees several shops is refused.
Are deliveries sent back to the shop?
Yes, if “Report deliveries and cancellations to the shop” is ticked (it is unticked by default: the ADMIN must tick it) and if you chose the status to set. A delivered or closed outbound order moves the order to the chosen status, with the tracking number when the shipment has one; GSE-Web does not trigger the shop's e-mail, so PrestaShop does not notify the buyer of this change. A cancelled outbound order sets the chosen cancellation status, without a refund.
Are product images and descriptions exchanged?
They never leave GSE-Web: photos and descriptions are managed in PrestaShop. However, if you check “Pull the description and photos from the shop”, GSE-Web copies them onto the linked product's record on each pass.
Are categories, promotions and features taken over?
No. They remain managed in PrestaShop. Pages created by GSE-Web receive a single default category, which you choose.
Do orders arrive in real time?
No. PrestaShop has no native webhook: GSE-Web reads new or modified orders every 5 minutes. An order can therefore appear up to 5 minutes after it reaches the chosen status. Stock, on the other hand, goes from GSE-Web to the shop a few seconds after each change.
What happens if I pause or the module is closed?
Nothing is sent or imported, and nothing is deleted. The stock in the shop stays as of the last send. On resume, orders placed in the meantime are recovered, within the maximum age chosen.
Which PrestaShop versions are supported?
The connector is tested on PrestaShop 8.2.8, 9.1.0 and 9.1.2. Other versions are accepted, with a warning on the connection screen: contact us if you run into a problem.
Is my products' name modified in the shop?
When creating and updating pages is enabled, yes: the GSE-Web name is authoritative and is rewritten in every active language of the shop, which overwrites translations made in PrestaShop. Without that option, GSE-Web does not touch the pages.
Is a buyer already in my third parties recognized?
No. The connector creates one “Individual” customer per buyer and finds them again by e-mail on later orders.
Are orders placed before activation imported?
No. Only orders read after activation are imported.
How do I get the connector?
The “Integrations” and “PrestaShop” modules are opened organisation by organisation by KLS-Concept. Write to us from the Contact page and tell us your PrestaShop version.
Connect your PrestaShop shop
Ask for the connector to be opened for your organisation, or put your questions to us about your case.