{"id":326872,"date":"2026-06-19T14:05:19","date_gmt":"2026-06-19T14:05:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easywp-shop-connect\/"},"modified":"2026-06-19T14:04:45","modified_gmt":"2026-06-19T14:04:45","slug":"cartman-connect","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/cartman-connect\/","author":23517261,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.4","stable_tag":"1.6.4","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"CartMan Connect for WooCommerce","header_author":"waveinfotech","header_description":"Third-party REST API for the CartMan mobile app. Manage WooCommerce orders, products, reports, and support from your phone.","assets_banners_color":"","last_updated":"2026-06-19 14:04:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/waveinfotechsolutions.com\/cartman-connect\/","header_author_uri":"https:\/\/profiles.wordpress.org\/waveinfotech\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.6.4":{"tag":"1.6.4","author":"waveinfotech","date":"2026-06-19 14:04:45"}},"upgrade_notice":{"1.6.4":"<p>Compliance update for WordPress.org plugin review. Safe to upgrade.<\/p>","1.6.3":"<p>Enables proper in-app refunds through WooCommerce refund records.<\/p>","1.2.0":"<p>Regenerate your connection key after upgrading and reconnect the mobile app.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.6.4"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"CartMan Connect settings page with connection details and security options.","2":"Customer support form rendered via shortcode."}},"plugin_section":[],"plugin_tags":[282,841,16281,23853,286],"plugin_category":[45],"plugin_contributors":[267910],"plugin_business_model":[],"class_list":["post-326872","plugin","type-plugin","status-publish","hentry","plugin_tags-ecommerce","plugin_tags-mobile","plugin_tags-orders","plugin_tags-rest-api","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-waveinfotech","plugin_committers-waveinfotech"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/cartman-connect.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>CartMan Connect for WooCommerce adds a secure REST API to your WooCommerce store so you can manage orders, payments, sales reports, and customer support from the CartMan app.<\/p>\n\n<p><strong>Disclaimer:<\/strong> This is a third-party plugin. It is not affiliated with, endorsed by, or sponsored by WooCommerce, Automattic, or WordPress.<\/p>\n\n<p>This plugin does <strong>not<\/strong> require a third-party SaaS account. All data stays on your WordPress site. Authentication uses a hashed connection key or WordPress Application Passwords.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Secure REST API for WooCommerce order management<\/li>\n<li>View new orders, update order status (processing, shipped\/completed, on hold, cancelled)<\/li>\n<li>Payment transaction listing<\/li>\n<li>Basic sales reports (today, 7, 30, 90 days)<\/li>\n<li>Customer support tickets with email notifications<\/li>\n<li>Customer support form shortcode for your storefront<\/li>\n<li>WooCommerce product catalog CRUD for the mobile app<\/li>\n<li>Hashed connection keys, HTTPS enforcement, rate limiting, and audit logging<\/li>\n<\/ul>\n\n<h4>Mobile app<\/h4>\n\n<p>Pair this plugin with the <strong>CartMan<\/strong> mobile app (available on Google Play and the App Store). After activating the plugin, open <strong>WooCommerce \u2192 CartMan Connect<\/strong> to copy your store URL and connection key.<\/p>\n\n<h4>Shortcode<\/h4>\n\n<p>Add a customer support form to any page:<\/p>\n\n<pre><code>[cartman_support_form]\n<\/code><\/pre>\n\n<p>Customers must enter their order ID and billing email. Submissions are verified, rate limited, and emailed to your store.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.2 or later<\/li>\n<li>WooCommerce 7.0 or later<\/li>\n<li>Pretty permalinks enabled<\/li>\n<li>HTTPS recommended for production<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/cartman-connect<\/code>, or install through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Ensure WooCommerce is installed and active.<\/li>\n<li>Go to <strong>WooCommerce \u2192 CartMan Connect<\/strong>.<\/li>\n<li>Copy your Store URL and Connection Key into the CartMan app.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20without%20the%20mobile%20app%3F\"><h3>Does this plugin work without the mobile app?<\/h3><\/dt>\n<dd><p>The REST API and customer support shortcode work independently. The mobile app is optional but designed to use this plugin.<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20the%20mobile%20app%3F\"><h3>How do I connect the mobile app?<\/h3><\/dt>\n<dd><p>Install CartMan Connect for WooCommerce, then in the app enter your HTTPS store URL and tap <strong>Log in with your store<\/strong>. Sign in with your WordPress admin or shop manager account and approve access. You can also use a connection key or application password from <strong>WooCommerce \u2192 CartMan Connect<\/strong> if needed.<\/p><\/dd>\n<dt id=\"is%20the%20connection%20key%20stored%20securely%3F\"><h3>Is the connection key stored securely?<\/h3><\/dt>\n<dd><p>Yes. Connection keys are stored hashed in the database using PHP's <code>password_hash()<\/code>. The plain key is only shown briefly after generation.<\/p><\/dd>\n<dt id=\"does%20the%20connection%20key%20expire%3F\"><h3>Does the connection key expire?<\/h3><\/dt>\n<dd><p>By default, keys never expire. In <strong>WooCommerce \u2192 CartMan Connect<\/strong>, you can choose <strong>Never expire<\/strong> or <strong>Expire after X days<\/strong>. When expiry is enabled, the mobile app must use a freshly regenerated key after the expiry date.<\/p><\/dd>\n<dt id=\"why%20is%20my%20api%20request%20rejected%3F\"><h3>Why is my API request rejected?<\/h3><\/dt>\n<dd><p>Common causes: missing HTTPS (in production), expired request timestamp (check server\/device clock), invalid connection key, or IP not on the allowlist (if configured).<\/p><\/dd>\n<dt id=\"how%20do%20customers%20submit%20support%20requests%3F\"><h3>How do customers submit support requests?<\/h3><\/dt>\n<dd><p>Add <code>[cartman_support_form]<\/code> to a WordPress page. Customers enter their order ID, billing email, and message. Verified submissions create a ticket and email your store.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>WordPress.org review: load wp-admin includes only when required and call their functions immediately<\/li>\n<li>Base64 product uploads use image.php helpers only; URL sideloads use media.php via media_sideload_image()<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Proper WooCommerce refunds from the app via wc_create_refund (line items, restock, totals)<\/li>\n<li>PATCH status=refunded now creates a real refund record instead of only changing status<\/li>\n<li>POST \/orders\/{id}\/refund endpoint for explicit refunds from CartMan<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>Block refund status changes from the app (refunds must be processed in WooCommerce admin)<\/li>\n<li>Harden order list\/detail API against plugin conflicts and malformed order data<\/li>\n<li>Declare WooCommerce HPOS (custom order tables) compatibility<\/li>\n<li>Add admin URL on order detail responses for mobile deep links<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Internal identifiers migrated to cartman prefix (API, options, shortcodes)<\/li>\n<li>OAuth client ID and redirect schemes updated for the CartMan app<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Rebranded to CartMan Connect for WooCommerce (slug: cartman-connect) for WordPress.org compliance<\/li>\n<li>Distinctive plugin name; third-party disclaimer; scoped admin notices<\/li>\n<li>Plugin URI and Author URI are separate<\/li>\n<\/ul>\n\n<h4>1.5.6<\/h4>\n\n<h4>1.5.4<\/h4>\n\n<ul>\n<li>Custom fields: only schema-defined and explicitly allowlisted meta keys are exposed (no more plugin junk like PEWC_, EKIT_, WCBOOST_)<\/li>\n<li>Empty non-schema meta values are hidden from the mobile app<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Fixed auth lockout blocking valid OAuth\/application password logins after failed attempts<\/li>\n<li>Successful login now clears IP lockout automatically<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Fixed OAuth \"Invalid OAuth request\" for Expo Go and development redirect URIs (exp:\/\/)<\/li>\n<li>Improved OAuth redirect URI validation and clearer error messages<\/li>\n<li>Discover endpoint now validates redirect_uri before login<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Fixed OAuth \/ application password authentication for REST API requests<\/li>\n<li>Extended connection test with store software health and admin shortcut URLs<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added product custom fields \/ meta support for the mobile app (read, write, schema endpoint)<\/li>\n<li>Expose all product attributes including descriptive (non-variation) attributes<\/li>\n<li>Admin settings for extra meta keys and mobile custom field schema<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Extended product API: categories, tags, shipping dimensions, tax, inventory, sale dates, and variable products with variations<\/li>\n<li>Added GET \/products\/tags endpoint for mobile product editor<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added store OAuth login for the mobile app (authorization code + PKCE)<\/li>\n<li>Mobile users can log in on their WordPress site instead of pasting keys manually<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added optional connection key expiry (never expire by default, or expire after N days)<\/li>\n<li>Added security hardening: hashed keys, HTTPS enforcement, rate limiting, auth lockout, audit log, IP allowlist<\/li>\n<li>Added support tickets and customer support shortcode<\/li>\n<li>Added order status updates via REST API<\/li>\n<li>Added sales reports and transaction endpoints<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added support system and improved mobile API responses<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Secure REST API bridge for the CartMan mobile app. Not affiliated with or endorsed by WooCommerce or Automattic.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=326872"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/waveinfotech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326872"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326872"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326872"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326872"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326872"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}