Title: Codihi Smart Cart Order Sync for Skroutz
Author: Codihi
Published: <strong>October 12, 2026</strong>
Last modified: October 12, 2026

---

Search plugins

![](https://ps.w.org/codihi-smart-cart-order-sync-for-skroutz/assets/banner-772x250.
png?rev=3741624)

![](https://ps.w.org/codihi-smart-cart-order-sync-for-skroutz/assets/icon-256x256.
png?rev=3741624)

# Codihi Smart Cart Order Sync for Skroutz

 By [Codihi](https://profiles.wordpress.org/panosrekou/)

[Download](https://downloads.wordpress.org/plugin/codihi-smart-cart-order-sync-for-skroutz.1.1.9.zip)

 * [Details](https://wordpress.org/plugins/codihi-smart-cart-order-sync-for-skroutz/#description)
 * [Reviews](https://wordpress.org/plugins/codihi-smart-cart-order-sync-for-skroutz/#reviews)
 *  [Installation](https://wordpress.org/plugins/codihi-smart-cart-order-sync-for-skroutz/#installation)
 * [Development](https://wordpress.org/plugins/codihi-smart-cart-order-sync-for-skroutz/#developers)

 [Support](https://wordpress.org/support/plugin/codihi-smart-cart-order-sync-for-skroutz/)

## Description

**Codihi Smart Cart Order Sync for Skroutz** connects your WooCommerce store with
the Skroutz Smart Cart (Orders API) and Webhook systems. Skroutz is an independent
marketplace platform; this plugin is an unofficial, third-party integration and 
is not affiliated with, endorsed by, or sponsored by Skroutz.

The plugin adds a secure webhook endpoint to your site. Skroutz calls it whenever
one of your Smart Cart orders is created or changes state, and the plugin creates
or updates the matching WooCommerce order.

This plugin allows merchants to:
 * Automatically receive new Skroutz orders into
WooCommerce through the Skroutz order webhook (customer, address, line items, Skroutz
commission and fees). * Match Skroutz line items to your WooCommerce products by
SKU, Product ID, a custom meta field, or a “Smart Match” (custom meta, SKU, ID, 
EAN, MPN in turn). * Have WooCommerce reduce the ordered items’ stock as soon as
a Skroutz order arrives, and restore it automatically if the order is rejected or
cancelled — using WooCommerce’s own built-in stock management. Stock levels are 
not sent back to Skroutz. * Map each Skroutz order state to one of your existing
WooCommerce order statuses, and optionally mark delivered orders as Completed. *
Receive an email for every new Skroutz order, see Skroutz details (code, state, 
Skroutz Plus, express, pickup point) on the order screen, and filter the order list
to Skroutz orders.

**Why choose this plugin:**
 1. **Lightweight:** one webhook endpoint and one API
request per webhook, no background jobs. 2. **Security-conscious:** the webhook 
is protected by a secret token; built following WordPress coding standards (prepared
SQL statements, nonces, output escaping). 3. **No bundled libraries:** no third-
party libraries or tracking scripts.

_(Upgrade to the Premium version for one-click Courier Vouchers generation, automatic
invoice uploading to Skroutz, and full Skroutz Last Mile integration.)_

### External services

This plugin connects your store to the Skroutz Smart Cart API, operated by Skroutz
S.A., so that orders placed on the Skroutz marketplace can be imported into WooCommerce.

When a Skroutz order webhook is received, the plugin calls `https://api.skroutz.
gr` (using the API token you enter in Settings) to fetch the full order details —
customer, line items and shipping data — so the corresponding WooCommerce order 
can be created or updated. The request carries only your API token and the Skroutz
order code; nothing is sent to Skroutz unless a Skroutz order webhook is received.

This service is provided by Skroutz S.A.: [Terms of Use](https://www.skroutz.gr/terms),
[Privacy Policy](https://www.skroutz.gr/privacy).

**Codihi product catalog (codihi.com)**

When an administrator opens the “Codihi Plugins” overview page in wp-admin, the 
plugin requests the public product list from `https://codihi.com/wp-json/wc/store/
v1/products` to show the other Codihi plugins with their prices. It is a plain GET
request: no store, customer or order data is sent, and the result is cached for 
12 hours. If codihi.com cannot be reached, a built-in list without prices is shown
instead. Nothing is requested from codihi.com on any other page or on the front 
end.

This service is provided by Codihi: [Terms of Use](https://codihi.com/terms-and-conditions/),
[Privacy Policy](https://codihi.com/privacy-policy/).

## Screenshots

[⌊The Skroutz Orders API settings page.⌉⌊The Skroutz Orders API settings page.⌉[

The Skroutz Orders API settings page.

[⌊The Skroutz order details box on the WooCommerce order screen.⌉⌊The Skroutz order
details box on the WooCommerce order screen.⌉[

The Skroutz order details box on the WooCommerce order screen.

## Installation

 1. Upload the plugin files to the `/wp-content/plugins/codihi-skroutz-orders-api-free`
    directory, or install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the ‘Plugins’ screen in WordPress.
 3. Go to Codihi Plugins -> Skroutz Orders to configure the settings.
 4. Add your Skroutz API Token, check the Webhook Secret, and copy the Webhook URL 
    shown there into the Skroutz Merchants Panel.

## FAQ

### Does a Skroutz order reduce my WooCommerce stock?

Yes. When a Skroutz order is imported, WooCommerce’s own stock management reduces
the ordered items’ stock as part of the normal order-creation flow, and restores
it automatically if you reject or cancel the order. This plugin does not send stock
levels back to Skroutz — you still need to keep your Skroutz product feed/listing
up to date the way you already do today.

### How do I manage Vouchers?

Voucher generation is a Premium feature. In the Free version, you manage acceptance/
rejection from the Skroutz Merchants Panel, and the plugin strictly handles the 
WooCommerce order creation and stock deduction.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Codihi Smart Cart Order Sync for Skroutz” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Codihi ](https://profiles.wordpress.org/panosrekou/)

[Translate “Codihi Smart Cart Order Sync for Skroutz” into your language.](https://translate.wordpress.org/projects/wp-plugins/codihi-smart-cart-order-sync-for-skroutz)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/codihi-smart-cart-order-sync-for-skroutz/),
check out the [SVN repository](https://plugins.svn.wordpress.org/codihi-smart-cart-order-sync-for-skroutz/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/codihi-smart-cart-order-sync-for-skroutz/)
by [RSS](https://plugins.trac.wordpress.org/log/codihi-smart-cart-order-sync-for-skroutz/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.9

 * Changed: every text in the order box, the order-list column and filter, the admin
   menu and the Pro-active notice is now in English and translatable (some of it
   was hard-coded in Greek). Skroutz order states share one translatable list.

#### 1.1.8

 * Fixed: new Skroutz orders did not reduce stock on arrival. Skroutz sends new 
   orders with the state “open”, which the plugin did not recognise (it expected“
   new”), so the order stayed “Pending payment” and its stock was only reduced once
   it was accepted. “open” is now treated as “new”: the “New” status mapping applies
   and stock is reduced immediately.
 * Added: “Expired” state (order not accepted in time). It restores stock and has
   its own Status Mapping entry (default: Cancelled).

#### 1.1.7

 * Fixed (WordPress.org review): no CSS is printed as a raw

#### 1.1.6

 * Fixed: choosing “No Change (Ignore)” in the Status Map was saved as an empty 
   value and silently replaced by the default mapping (e.g. DISPATCHED  Completed).
   It is now honoured, and the dropdown shows the default that actually applies 
   when nothing has been saved.
 * Changed: the readme now describes exactly what the code does (webhook endpoint,
   product matching, inbound-only stock handling — no stock is sent to Skroutz),
   with the correct settings location.
 * Changed: “External services” now also documents the product catalog request the“
   Codihi Plugins” overview page makes to codihi.com.
 * Changed: removed “sync” wording from the in-plugin manual’s product-matching 
   and stock sections.
 * Added: the User Manual tab is now also available in English. It opens in Greek
   for Greek-language admins and in English for everyone else, with a switch at 
   the top.
 * Fixed: Plugin Check “OutputNotEscaped” errors in the shared “Codihi Plugins” 
   menu (Codihi_Hub_2): the menu-icon CSS is now attached with wp_add_inline_style()
   instead of being printed as a raw
 * Changed: the Webhook URL is now a field on the Connection tab, right below the
   Webhook Secret it contains, instead of a notice at the top of the page.
 * Fixed: the manual said a rejected/cancelled order always becomes “Cancelled”;
   it now explains that this depends on the Status Map, while the stock is restored
   in every case.
 * Changed: the Settings page no longer shows disabled Pro-only fields (Order Defaults
   tab, Auto Accept, Auto Pick-up Time, Auto Sync, Order Management, Manual Import,
   Advanced Webhook Protection, custom statuses). They are replaced by an informational“
   Available in Pro” panel of feature cards with a single link, which each user 
   can close with its × button (and reopen from the User Manual); every setting 
   shown now works in this plugin.
 * Fixed: the “Learn more about Pro” link now always opens the Pro product page.
   It used to look the product up in the merchant’s own database, so on every store
   other than codihi.com it fell back to the codihi.com home page.
 * Changed: “Plugin URI” now points to the plugin’s current page instead of an old
   address that redirected.
 * Removed: a stray copy of the Skroutz API documentation (`orders_api.html.md.erb`)
   that was not used by the plugin.

#### 1.1.5

 * The Overview product map now includes the plugins about to be sold (AI Product
   Importer, Quick Edit, Semantic Search, Checkout Invoice, myDATA, Barcode Stock
   Updater, Product Presentation, Language Switch) (Codihi_Hub_2).

#### 1.1.4

 * The “Codihi Plugins” menu now sits right under Settings so it no longer leaves
   an odd gap before Appearance (Codihi_Hub_2).

#### 1.1.3

 * The brand-coloured “Codihi Plugins” menu icon is now always visible, not only
   on hover (Codihi_Hub_2).

#### 1.1.2

 * “Codihi Plugins” Overview: the brand-coloured menu icon now renders correctly(
   WordPress was repainting it white), and installed-plugin cards link to each plugin’s
   settings page automatically (Codihi_Hub_2).

#### 1.1.1

 * The “Codihi Plugins” Overview now also lists every plugin sold on codihi.com,
   with price and a link to get it (Codihi_Hub_2).

#### 1.1.0

 * Η σελίδα ρυθμίσεων μεταφέρθηκε στο κοινό μενού «Codihi Plugins».

#### 1.0.23

 * Fixed: cancelling or rejecting an order did not return the stock when the default
   status mapping had been changed. WooCommerce only restores stock on “Cancelled”
   and “Pending”, so shops that mapped Rejected/Canceled to “Refunded” or “Failed”,
   or to “No Change”, never got the stock back. Stock is now settled from the Skroutz
   state itself and applied last, so it is correct for every mapping.

#### 1.0.22

 * Changed: `readme.txt` no longer describes a “stock sync” with Skroutz (short 
   description, feature bullet, FAQ, “External services”). The plugin only ever 
   fetches order details from `https://api.skroutz.gr`; it has no code that pushes
   WooCommerce stock levels to Skroutz. What actually happens — WooCommerce’s own
   built-in stock management reducing/restoring the ordered items’ stock as a Skroutz
   order is imported/rejected/cancelled — is now described accurately and distinguished
   from the (nonexistent) outbound sync.

#### 1.0.21

 * Changed: renamed the plugin from “Codihi Skroutz Orders API – Free” to **Codihi
   Smart Cart Order Sync for Skroutz**, to drop the discouraged “Free” term and 
   place “Skroutz” in a non-affiliation-implying structure, per WordPress.org Plugin
   Directory naming guidelines.
 * Removed: `codihi_skroutz_free_register_custom_statuses()`, `codihi_skroutz_free_add_custom_statuses()`
   and their stock-transition hooks — a fully working implementation of custom WooCommerce
   order-status creation that had no UI in the Free version to enable it, but would
   still run if a `custom` status mapping was set (e.g. a leftover option value 
   from a PRO downgrade). Per the Directory’s guidelines, a built-in feature can’t
   ship gated behind PRO like this; creating custom statuses is now exclusively 
   part of the PRO plugin’s own codebase. The webhook’s order-status handling already
   no-ops safely on a stray `custom` value.
 * Fixed: the sub-tab switcher on the Settings page was a raw `<script>` tag printed
   inline in the page markup, flagged by the WordPress.org Plugin Check. It is now
   registered with `wp_enqueue_script()` / `wp_add_inline_script()`, loaded only
   on the plugin’s own settings page.
 * Removed: the disabled “Create New (Custom) — PRO only” option from the status-
   mapping dropdown. It could never be selected, which is the locked-built-in-feature
   pattern the Plugin Directory guidelines disallow; the plain explanatory text 
   about the PRO-only custom-status feature elsewhere on the page is unaffected.
 * Removed: an unused `assets/js/admin.js` left over from the PRO codebase — it 
   was never enqueued and its two AJAX actions (voucher/invoice handling, manual
   order import) have no matching handler in the Free version.
 * Changed: `readme.txt` — removed the “background sync routines” claim (no cron-
   based sync is implemented in the Free version; the plugin only reacts to incoming
   Skroutz webhooks), reworded the status-mapping bullet to avoid implying the Free
   version can create custom WooCommerce statuses, added a non-affiliation note,
   and added an “External services” section documenting the Skroutz API connection.
 * Changed: `Contributors` in `readme.txt` now lists the actual WordPress.org account(`
   panosrekou`) instead of a non-account name.

#### 1.0.20

 * Fixed: “Plugin URI” and “Author URI” in the plugin header were identical, which
   WordPress.org flags as an error (a plugin URI must describe the plugin, an author
   URI must describe the author). They now point to two distinct, real pages.

#### 1.0.19

 * Changed: “Payment Gateway”, “Shipping”, “User ID” and “Billing Email” are now
   marked as PRO-only in Settings  Order Defaults. They were never applied by the
   Free version’s webhook order-creation logic, so saving them had no effect — they
   now show a clear upgrade badge instead of a misleading, non-functional field.
 * Removed: “Variation participation attributes” and “Color/Parent ID” settings —
   never used by the actual product-matching logic (which relies on SKU/Product 
   ID/Custom Meta/Smart Match), removed rather than left as misleading UI (same 
   cleanup as the PRO version, v1.2.3).
 * Fixed: leftover “variation attributes” text in the in-plugin User Manual, describing
   a setting that no longer exists.
 * Security: hardened a few read-only admin list filters and settings-page inputs/
   outputs (defensive escaping and sanitization, no behavior change).

#### 1.0.18

 * Added: official HPOS (High-Performance Order Storage) compatibility declaration—
   the plugin is no longer listed as incompatible and no longer blocks you from 
   enabling HPOS.
 * Changed: internal hardening of API response handling, so a failed call to Skroutz
   can never turn into a fatal error (same fix as the PRO version).

#### 1.0.17

 * Changed: IP allowlist validation and replay protection for incoming webhooks 
   are now marked as PRO-only features in Settings  Connection & Security.

#### 1.0.16

 * Changed: “Create New (Custom)” order status is now a PRO-only feature. The Free
   version can still map Skroutz states to any of your existing WooCommerce statuses.

#### 1.0.15

 * Added: Auto Complete logic for delivered Skroutz orders.

#### 1.0.13

 * Security: the webhook now fails closed (rejects the request) instead of allowing
   unauthenticated calls when no Webhook Secret is configured, and token comparison
   uses a timing-safe check.
 * Security: a random Webhook Secret is now generated automatically on activation,
   so the webhook is never left unprotected.
 * Security: the Webhook Secret field can no longer be saved empty by mistake.
 * Added: plugin icon on the settings page, matching the Premium version.

#### 1.0.1

 * Fixed: 100% Compliance with WordPress.org Plugin Check.
 * Security: Implemented strict $wpdb->prepare for all queries.
 * Security: Massively improved escaping and nonce validation.
 * i18n: Unified text domains and added translator comments.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.1.9**
 *  Last updated **11 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [Marketplace](https://wordpress.org/plugins/tags/marketplace/)[orders](https://wordpress.org/plugins/tags/orders/)
   [skroutz](https://wordpress.org/plugins/tags/skroutz/)[webhook](https://wordpress.org/plugins/tags/webhook/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/codihi-smart-cart-order-sync-for-skroutz/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/codihi-smart-cart-order-sync-for-skroutz/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/codihi-smart-cart-order-sync-for-skroutz/reviews/)

## Contributors

 *   [ Codihi ](https://profiles.wordpress.org/panosrekou/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/codihi-smart-cart-order-sync-for-skroutz/)