QuoShop for WooCommerce

Description

QuoShop for WooCommerce links your WooCommerce store to your QuoSuite workspace through the public QuoShop API, with a QuoShop key — never your QuoSuite login.

  • Catalogue, QuoShop WooCommerce: published products are created and kept up to date — title, descriptions, images, price incl. tax (promotions included), stock and availability, categories. Withdrawn products become drafts, never deleted.
  • Orders, WooCommerce QuoShop: paid (or processing) orders are sent to QuoShop, which posts them to the ERP: customer found by email, invoice for the full amount, stock, payment matched. Exactly once — a retry, a lost response or a double click never creates a second order or a second invoice.
  • Statuses, both ways: completing or cancelling an order in WooCommerce updates QuoShop; shipping or cancelling it in QuoSuite updates WooCommerce.
  • Signed webhooks: QuoShop pushes stock, product and order changes within seconds; each delivery is verified (HMAC-SHA256, 5-minute window) and processed once. A scheduled pass (every 15 minutes to daily) catches anything missed.
  • Live overview: connection, catalogue pass progress, orders to check, webhooks and background jobs at a glance.

Source of truth: QuoShop / the QuoSuite ERP owns products, prices and stock. WooCommerce owns its checkout, customers and order flow.

Full documentation: https://quosuite.com/docs/quoshop/guides/woocommerce

Requirements

  • A QuoSuite workspace with QuoShop (https://quosuite.com) and a QuoShop API key.
  • WooCommerce 8.0 or later, PHP 7.4 or later with the sodium extension (bundled with PHP 7.2+).
  • Simple products: variable products are not synchronised yet.

External services

This plugin is a connector: it cannot work without QuoShop, the e-commerce service of QuoSuite ERP, operated by Tunbeta Tunisia SUARL. Nothing is sent before you paste a QuoShop key and click Connect.

It talks to the QuoSuite public API, server to server, authenticated with your QuoShop key:

  • When you connect, and on each scheduled sync (every 15 minutes to daily, as you choose): the plugin reads your published catalogue, prices and stock. Product images are downloaded from the addresses QuoShop returns (QuoSuite’s media servers).
  • When an order reaches the status you chose (paid by default): the plugin sends the order — order number, date, currency, line items (SKU, quantity), shipping cost, total, payment method, and the customer’s name, e-mail address, phone number, billing and shipping addresses and order note — so that QuoSuite can create the customer and issue the invoice.
  • When an order is completed, cancelled or paid later: its new status or payment.
  • When you register the endpoint: your site’s webhook address (/wp-json/quoshop/v1/webhook). QuoShop then sends signed notifications (stock, product and order changes) to that address.

No data is sent to any other service, and nothing about your site’s visitors is collected.

  • QuoSuite terms of use: https://quosuite.com/terms-of-use
  • QuoSuite privacy policy: https://quosuite.com/privacy-policy

Screenshots

Installation

  1. In QuoSuite, Settings › API & Integrations › QuoShop keys › New key: name it “WooCommerce”, leave Allowed domains empty (server-to-server), grant catalog:read, inventory:read, orders:write and webhooks:write (add customers:write if your store refuses guest orders). Copy the key (qsh_…): it is shown once.
  2. In WordPress, Plugins › Add New › Upload Plugin, choose quoshop-for-woocommerce-x.y.z.zip, then Activate.
  3. WooCommerce › QuoShop: paste the key and click Connect, then choose your store in the list (chosen automatically when your workspace has only one). The catalogue import starts at once.
  4. On the Overview tab, click Register the endpoint (webhooks).

The key can also be defined in wp-config.php: define( 'QUOSHOP_API_KEY', 'qsh_…' );.

FAQ

My key was revoked or has expired

The plugin pauses (no API call), shows a notice explaining what to do, and keeps queueing orders. Create a new key in QuoSuite and paste it in WooCommerce › QuoShop: queued orders are sent at once.

An order says “Not sent to QuoShop”

The order note gives the reason: insufficient stock, a product without SKU, a coupon or fee QuoShop cannot reproduce (its orders carry catalogue prices), a currency mismatch. Fix it, then click Send to QuoShop now on the order, or Retry failed orders in the settings.

Can I edit a synced product in WooCommerce?

WooCommerce-only fields (tags, upsells, shipping class, custom fields, your own categories) are yours. Fields owned by QuoShop (title, descriptions, SKU, prices, stock, images, QuoShop categories) are overwritten at the next sync: edit them in QuoSuite.

Which prices are used?

The QuoShop prices including tax, the ones QuoShop invoices: the WooCommerce total is then the QuoShop total. If WooCommerce adds tax to the prices entered, the price excluding tax is derived from the price including tax (6 decimals) so the checkout total stays the same; WooCommerce’s tax rates must then match QuoSuite’s.

Does it work with HPOS?

Yes: high-performance order storage and the legacy posts storage are both supported and tested.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“QuoShop for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.2.0

  • Ready for the WordPress.org directory: passes Plugin Check. Every request to QuoShop goes through the WordPress HTTP API (the bundled SDK no longer ships its cURL fallback), and each bundled file refuses direct access.
  • Translations: language packs from translate.wordpress.org are used when installed; the bundled French translation fills in otherwise.
  • Error messages are escaped where they are raised; the plugin’s own table is queried with prepared identifiers.
  • Settings page header shows the QuoSuite logo.

1.1.0

  • Prices: always from the QuoShop price incl. tax. With WooCommerce taxes disabled, the price excl. tax used to be imported and orders were refused for a total mismatch. Products are rewritten once after the update.
  • Connection with the key only (QuoSuite’s API address is built in); the store is chosen from the list of the workspace’s stores, the content language from the store’s languages.
  • New Overview tab: live progress of catalogue passes, last and next runs, orders to check, last webhook received, late background jobs.
  • Catalogue and stock cycles from every 15 minutes to daily; a full resync rewrites every product; a running pass can be stopped.

1.0.0

  • First release: catalogue and stock sync, order export with strict idempotency, status and payment updates, signed webhooks, French translation.