{"id":305239,"date":"2026-05-28T14:10:48","date_gmt":"2026-05-28T14:10:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/marques-de-france\/"},"modified":"2026-07-01T15:06:52","modified_gmt":"2026-07-01T15:06:52","slug":"marques-de-france-connector-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/tr.wordpress.org\/plugins\/marques-de-france-connector-for-woocommerce\/","author":23487299,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.1","stable_tag":"1.3.1","tested":"7.0.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Marques de France","header_author":"Marques de France","header_description":"Connect your WooCommerce store to the Marques de France guide. Track attributed sales, generate a product feed, and automatically sync data to the MDF platform.","assets_banners_color":"051440","last_updated":"2026-07-01 15:06:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/Marques-de-France\/marques-de-france-connector-for-woocommerce","header_author_uri":"https:\/\/www.marques-de-france.fr","rating":0,"author_block_rating":0,"active_installs":10,"downloads":401,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"marquesdefrance","date":"2026-05-29 07:04:03"},"1.0.1":{"tag":"1.0.1","author":"marquesdefrance","date":"2026-05-29 08:21:14"},"1.0.2":{"tag":"1.0.2","author":"marquesdefrance","date":"2026-05-29 11:08:38"},"1.1.0":{"tag":"1.1.0","author":"marquesdefrance","date":"2026-06-01 14:09:41"},"1.2.0":{"tag":"1.2.0","author":"marquesdefrance","date":"2026-06-08 12:13:02"},"1.2.1":{"tag":"1.2.1","author":"marquesdefrance","date":"2026-06-10 10:23:18"},"1.3.0":{"tag":"1.3.0","author":"marquesdefrance","date":"2026-06-17 09:46:49"},"1.3.1":{"tag":"1.3.1","author":"marquesdefrance","date":"2026-07-01 15:06:52"}},"upgrade_notice":{"1.3.0":"<p>More reliable sales attribution after a store migration or reinstall. A small database update runs automatically on upgrade.<\/p>","1.2.1":"<p>Bug fixes and stability improvements for feed branding, attribution persistence, and translation accuracy.<\/p>","1.2.0":"<p>Improved partner-facing wording in admin notices and updated translations for clearer messaging.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3552304,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3552304,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3552304,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3552304,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.1.0","1.2.0","1.2.1","1.3.0","1.3.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3552304,"resolution":"1","location":"assets","locale":"","width":2528,"height":1534},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3552304,"resolution":"2","location":"assets","locale":"","width":2524,"height":1542},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3552304,"resolution":"3","location":"assets","locale":"","width":2500,"height":1580},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3552304,"resolution":"4","location":"assets","locale":"","width":2318,"height":1482}},"screenshots":{"1":"Dashboard overview: connection status, total revenue, and 12-month sales chart.","2":"Product feed: full product list with name\/SKU search, brand, price, tag, and availability.","3":"Sales tracking: daily analytics chart with attributed orders table (order number, attribution, amount, status, date).","4":"Settings: Secure Token (access code) configuration to connect the store to Marques de France."}},"plugin_section":[],"plugin_tags":[5418,264801,286],"plugin_category":[45],"plugin_contributors":[264802],"plugin_business_model":[],"class_list":["post-305239","plugin","type-plugin","status-publish","hentry","plugin_tags-product-feed","plugin_tags-sales-attribution","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-marquesdefrance","plugin_committers-marquesdefrance"],"banners":{"banner":"https:\/\/ps.w.org\/marques-de-france-connector-for-woocommerce\/assets\/banner-772x250.png?rev=3552304","banner_2x":"https:\/\/ps.w.org\/marques-de-france-connector-for-woocommerce\/assets\/banner-1544x500.png?rev=3552304","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/marques-de-france-connector-for-woocommerce\/assets\/icon-128x128.png?rev=3552304","icon_2x":"https:\/\/ps.w.org\/marques-de-france-connector-for-woocommerce\/assets\/icon-256x256.png?rev=3552304","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/marques-de-france-connector-for-woocommerce\/assets\/screenshot-1.png?rev=3552304","caption":"Dashboard overview: connection status, total revenue, and 12-month sales chart."},{"src":"https:\/\/ps.w.org\/marques-de-france-connector-for-woocommerce\/assets\/screenshot-2.png?rev=3552304","caption":"Product feed: full product list with name\/SKU search, brand, price, tag, and availability."},{"src":"https:\/\/ps.w.org\/marques-de-france-connector-for-woocommerce\/assets\/screenshot-3.png?rev=3552304","caption":"Sales tracking: daily analytics chart with attributed orders table (order number, attribution, amount, status, date)."},{"src":"https:\/\/ps.w.org\/marques-de-france-connector-for-woocommerce\/assets\/screenshot-4.png?rev=3552304","caption":"Settings: Secure Token (access code) configuration to connect the store to Marques de France."}],"raw_content":"<!--section=description-->\n<p><strong>Marques de France<\/strong> is the official plugin for WooCommerce stores listed in the <a href=\"https:\/\/www.marques-de-france.fr\">Marques de France<\/a> directory, a curated platform showcasing authentic French brands.<\/p>\n\n<p>Once activated, the plugin works silently in the background to connect your store to the Marques de France platform. No ongoing configuration needed.<\/p>\n\n<h4>What the plugin does<\/h4>\n\n<p><strong>Tracks attributed sales<\/strong>\nWhen a customer clicks on your listing in Marques de France (site et app mobile) and completes a purchase on your store, the plugin automatically records the sale and reports it to Marques de France. It works across multiple visits: if someone browses, leaves, and comes back within 30 days, the attribution is still credited to your listing.<\/p>\n\n<p><strong>Keeps your revenue data accurate<\/strong>\nEvery attributed order is synced to Marques de France in real time. If a customer cancels or gets a refund, the platform is updated automatically so your revenue figures always stay accurate.<\/p>\n\n<p><strong>Generates your product feed<\/strong>\nThe plugin gives Marques de France access to your product catalog through a secure, token-protected endpoint. This powers the product listings displayed to visitors browsing your brand on the platform.<\/p>\n\n<p><strong>WooCommerce admin dashboard<\/strong>\nA dedicated panel in your WooCommerce admin lets you monitor your connection status, view attributed revenue over time, and preview exactly which products are shared with Marques de France.<\/p>\n\n<h4>What is and is not tracked<\/h4>\n\n<p>The plugin tracks which orders originated from a Marques de France visit, using the same URL parameter technology as Google Analytics (utm_source, utm_medium, etc.). Attribution is stored for 30 days using first-touch logic: the first traffic source gets the credit.<\/p>\n\n<p>No personal data is ever shared with Marques de France. Only the order number, amount, currency, and source attribution are transmitted. Customer names, email addresses, phone numbers, and shipping addresses are never collected or sent.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>A brand listed on <a href=\"https:\/\/www.marques-de-france.fr\">marques-de-france.fr<\/a><\/li>\n<li>A Secure Token provided by Marques de France (configured in the plugin settings)<\/li>\n<li>WooCommerce 8.0 or later<\/li>\n<\/ul>\n\n<h4>Source Code<\/h4>\n\n<p>The full source code including unminified JavaScript is available on GitHub:\n<a href=\"https:\/\/github.com\/Marques-de-France\/marques-de-france-connector-for-woocommerce\">https:\/\/github.com\/Marques-de-France\/marques-de-france-connector-for-woocommerce<\/a><\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin communicates with <strong>Marques de France<\/strong>, a service operated by Marques de France.<\/p>\n\n<p><strong>Service endpoint<\/strong>: <code>https:\/\/flux.marques-de-france.fr<\/code><\/p>\n\n<p><strong>When data is sent<\/strong>:<\/p>\n\n<ul>\n<li>On plugin activation: the store URL is sent to register the installation.<\/li>\n<li>On each attributed order (checkout completion): order ID, total amount, currency, and attribution signals (UTM parameters, referrer URL) are sent.<\/li>\n<li>On order cancellation or refund: the order ID and new status are sent to update the revenue record.<\/li>\n<\/ul>\n\n<p><strong>Data sent<\/strong>: site URL, WooCommerce order ID, order number, order amount, currency, and optional marketing attribution signals (UTM source, medium, campaign, content, term, landing page, referrer). No personal customer data (names, addresses, emails) is ever transmitted.<\/p>\n\n<p><strong>Service terms and privacy<\/strong>:<\/p>\n\n<ul>\n<li>Terms of Use: <a href=\"https:\/\/www.marques-de-france.fr\/cgv\/\">https:\/\/www.marques-de-france.fr\/cgv\/<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/www.marques-de-france.fr\/politique-de-confidentialite-et-donnees-personnelles\/\">https:\/\/www.marques-de-france.fr\/politique-de-confidentialite-et-donnees-personnelles\/<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via WP Admin &gt; Plugins &gt; Add New &gt; Upload Plugin or search the plugin from the store via WP Admin &gt; Plugins &gt; And search \"Marques de France\".<\/li>\n<li>Activate the plugin through <strong>WP Admin &gt; Plugins<\/strong>.<\/li>\n<li>Navigate to <strong>Marques de France &gt; Settings<\/strong> in your WP admin sidebar.<\/li>\n<li>Enter the <strong>Secure Token<\/strong> provided by Marques de France.<\/li>\n<li>Click <strong>Save<\/strong>. The plugin will automatically connect to Marques de France and begin tracking attributed sales.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20my%20secure%20token%3F\"><h3>Where do I get my Secure Token?<\/h3><\/dt>\n<dd><p>Your Secure Token is provided by Marques de France when you join the partner program. Log in to your partner dashboard at <a href=\"https:\/\/www.marques-de-france.fr\">marques-de-france.fr<\/a> to retrieve it.<\/p><\/dd>\n<dt id=\"which%20sales%20are%20tracked%3F\"><h3>Which sales are tracked?<\/h3><\/dt>\n<dd><p>Only sales that can be attributed to a visit originating from the Marques de France directory are recorded. Orders from other sources are not sent to Marques de France.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20marques%20de%20france%3F\"><h3>What data is sent to Marques de France?<\/h3><\/dt>\n<dd><p>Order totals, currency, order ID, and marketing attribution signals (UTM parameters, landing page, referrer). No personal customer data is transmitted.<\/p>\n\n<p>For more details on how tracking works, see our <a href=\"https:\/\/www.marques-de-france.fr\/faq-category\/suivi-et-tracking\/\">tracking FAQ<\/a>.<\/p><\/dd>\n<dt id=\"can%20i%20test%20the%20connection%3F\"><h3>Can I test the connection?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Marques de France &gt; Dashboard<\/strong> in WP Admin. The dashboard shows the current connection status with Marques de France and a summary of attributed sales and revenue.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fix: always enqueue the frontend attribution tracker on storefront pages, even before the secure token is saved, so first-touch signals are not lost on unconfigured stores.<\/li>\n<li>Improvement: persist <code>click_id<\/code> directly on local sales rows and include the schema migration on upgrade.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Improvement: attributed sales are now de-duplicated using the WooCommerce order key (a stable, non-sequential identifier) instead of the order ID. This prevents genuine new sales from being skipped when a store's order numbering resets after a migration or reinstall. Older orders already synced are unaffected; a small database column is added automatically on upgrade.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fix: decode HTML entities in product brand names shown in the feed and admin UI.<\/li>\n<li>Improvement: strengthen attribution persistence with localStorage + cookie fallback for Safari\/ITP resilience.<\/li>\n<li>Fix: sync and refresh translation strings for the latest admin experience.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Improvement: clearer admin notice wording for sales restore flow (partner-facing language).<\/li>\n<li>Improvement: replaced end-user \"Hub\" wording with \"Marques de France\" in restore\/sync notices.<\/li>\n<li>Feature: added manual product selection for the feed (in addition to the <code>product_tag<\/code> tag mode).<\/li>\n<li>Improvement: UI improvements across the plugin admin screens.<\/li>\n<li>Fix: synchronized translation catalogs (POT\/PO\/JSON) with the updated admin copy.<\/li>\n<li>Fix: security hardening in tracker input handling for plugin checks.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fix: strip HTML tags from product and variation titles in the feed to prevent malformed XML.<\/li>\n<li>Fix: expose separate <code>parent_image<\/code> and <code>variant_image<\/code> fields in the feed for simple products and variations; the main image now correctly falls back to the parent image when no variation-specific image is set.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Feature: report plugin version to Marques de France on each API request via X-Plugin-Version header.<\/li>\n<li>Fix: composite products (WooCommerce Composite Products by SomewhereWarm) now appear correctly in the product feed and admin product list. WC 10.7+ auto-injects a product_type tax_query that silently excludes unregistered types; both endpoints now use WP_Query directly to bypass this restriction.<\/li>\n<li>Fix: minor French (fr_FR) translation improvements.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: frontend tracker script missing from deployed package (MIME type error on page load).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Sales attribution tracking via UTM parameters and referrer signals.<\/li>\n<li>Automatic order sync to Marques de France with immediate + retry (Action Scheduler) strategy.<\/li>\n<li>Order cancellation and refund status propagation to Marques de France.<\/li>\n<li>Product feed REST endpoint (token-gated).<\/li>\n<li>React-powered WooCommerce admin dashboard with sales analytics chart, product feed preview, and connection status.<\/li>\n<li>French (fr_FR) translation included for all admin UI strings.<\/li>\n<\/ul>","raw_excerpt":"Connect your WooCommerce store to Marques de France. Track attributed sales, generate a product feed, and sync data to the MDF platform.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/305239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=305239"}],"author":[{"embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/marquesdefrance"}],"wp:attachment":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=305239"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=305239"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=305239"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=305239"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=305239"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=305239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}