{"id":380292,"date":"2026-10-06T05:07:19","date_gmt":"2026-10-06T05:07:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kartodesk-for-woocommerce\/"},"modified":"2026-10-06T05:06:44","modified_gmt":"2026-10-06T05:06:44","slug":"kartodesk-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/ps.wordpress.org\/plugins\/kartodesk-for-woocommerce\/","author":20772476,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.7","stable_tag":"0.1.7","tested":"7.1.3","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"KartoDesk for WooCommerce","header_author":"Shantanu Udasi","header_description":"A store operations workspace inside wp-admin: orders, products, stock, customers, reports and shipment tracking.","assets_banners_color":"","last_updated":"2026-10-06 05:06:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/shantz1\/wooops","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":107,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.7":{"tag":"0.1.7","author":"shantz1","date":"2026-10-06 05:06:44","revision":3730024}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3730029,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3730029,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3730029,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3730024,"resolution":"1","location":"assets","locale":"","width":2880,"height":1800},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3730024,"resolution":"10","location":"assets","locale":"","width":2880,"height":1800},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3730024,"resolution":"11","location":"assets","locale":"","width":2880,"height":1800},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3730024,"resolution":"12","location":"assets","locale":"","width":2880,"height":1800},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3730024,"resolution":"13","location":"assets","locale":"","width":2880,"height":1800},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3730024,"resolution":"14","location":"assets","locale":"","width":2880,"height":1800},"screenshot-15.png":{"filename":"screenshot-15.png","revision":3730024,"resolution":"15","location":"assets","locale":"","width":2880,"height":1800},"screenshot-16.png":{"filename":"screenshot-16.png","revision":3730024,"resolution":"16","location":"assets","locale":"","width":2880,"height":1800},"screenshot-17.png":{"filename":"screenshot-17.png","revision":3730024,"resolution":"17","location":"assets","locale":"","width":2880,"height":1800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3730024,"resolution":"2","location":"assets","locale":"","width":2880,"height":1800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3730024,"resolution":"3","location":"assets","locale":"","width":2880,"height":1800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3730024,"resolution":"4","location":"assets","locale":"","width":2880,"height":1800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3730024,"resolution":"5","location":"assets","locale":"","width":2880,"height":1800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3730024,"resolution":"6","location":"assets","locale":"","width":2880,"height":1800},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3730024,"resolution":"7","location":"assets","locale":"","width":2880,"height":1800},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3730024,"resolution":"8","location":"assets","locale":"","width":2880,"height":1800},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3730024,"resolution":"9","location":"assets","locale":"","width":2880,"height":1800}},"screenshots":{"1":"Overview with the latest orders and store snapshot.","2":"Orders list with search, status filter, column choice and row density.","3":"Saved views for quick filters such as Processing, On hold, Failed and Completed.","4":"Select several orders to change their status in one step.","5":"Order summary with items, totals, customer, shipping address and payment details.","6":"Edit shipping and billing addresses with validation and a save bar.","7":"Courier tracking on an order, with optional customer notification.","8":"Payments tab with refund history and what is left to refund.","9":"Guided refund form with item quantities, tax split, restock option and a record-only or gateway choice.","10":"Product catalogue with stock controls.","11":"Product editor with a visual editor for descriptions.","12":"Inventory view for stock quantity and status.","13":"Customers list with orders and spend.","14":"Order reports with date filters and CSV export.","15":"Settings with store details, panel preferences and customer notifications.","16":"Roles and permissions: choose what each WordPress role can do in KartoDesk.","17":"Role details, for example a fulfilment role limited to orders and tracking."}},"plugin_section":[],"plugin_tags":[5564,220486,16281,55977,286],"plugin_category":[45],"plugin_contributors":[284628],"plugin_business_model":[],"class_list":["post-380292","plugin","type-plugin","status-publish","hentry","plugin_tags-fulfilment","plugin_tags-order-notes","plugin_tags-orders","plugin_tags-shipment-tracking","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-shantz1","plugin_committers-shantz1"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/icon.svg?rev=3730029","icon":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/icon.svg?rev=3730029","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-1.png?rev=3730024","caption":"Overview with the latest orders and store snapshot."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-2.png?rev=3730024","caption":"Orders list with search, status filter, column choice and row density."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-3.png?rev=3730024","caption":"Saved views for quick filters such as Processing, On hold, Failed and Completed."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-4.png?rev=3730024","caption":"Select several orders to change their status in one step."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-5.png?rev=3730024","caption":"Order summary with items, totals, customer, shipping address and payment details."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-6.png?rev=3730024","caption":"Edit shipping and billing addresses with validation and a save bar."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-7.png?rev=3730024","caption":"Courier tracking on an order, with optional customer notification."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-8.png?rev=3730024","caption":"Payments tab with refund history and what is left to refund."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-9.png?rev=3730024","caption":"Guided refund form with item quantities, tax split, restock option and a record-only or gateway choice."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-10.png?rev=3730024","caption":"Product catalogue with stock controls."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-11.png?rev=3730024","caption":"Product editor with a visual editor for descriptions."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-12.png?rev=3730024","caption":"Inventory view for stock quantity and status."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-13.png?rev=3730024","caption":"Customers list with orders and spend."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-14.png?rev=3730024","caption":"Order reports with date filters and CSV export."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-15.png?rev=3730024","caption":"Settings with store details, panel preferences and customer notifications."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-16.png?rev=3730024","caption":"Roles and permissions: choose what each WordPress role can do in KartoDesk."},{"src":"https:\/\/ps.w.org\/kartodesk-for-woocommerce\/assets\/screenshot-17.png?rev=3730024","caption":"Role details, for example a fulfilment role limited to orders and tracking."}],"raw_content":"<!--section=description-->\n<p>KartoDesk gives your team one fast screen for daily order work, without leaving WordPress.<\/p>\n\n<ul>\n<li><strong>Overview<\/strong> of the five most recent orders, clearly labelled as a snapshot rather than store-wide totals.<\/li>\n<li><strong>Orders list<\/strong> with search, status filter, pagination and bulk status changes (with a confirmation).<\/li>\n<li><strong>Order workspace<\/strong> with items, photos, SKU and variation details, an exact totals breakdown (items, discount, fees, shipping, tax, refunds), shipping and billing addresses, the customer's checkout note, guest or registered customer, and payment details.<\/li>\n<li><strong>Products and inventory<\/strong>: browse products, create simple products using Media Library image URLs and update stock.<\/li>\n<li><strong>Customers<\/strong>: search registered customers.<\/li>\n<li><strong>Reports<\/strong>: filter orders and inventory and export CSV.<\/li>\n<li><strong>Settings<\/strong>: panel name and theme, store details and WordPress account access.<\/li>\n<li><strong>Order notes<\/strong>: read and add private notes or customer-facing notes. The email consequence is shown before a customer note is added.<\/li>\n<li><strong>Shipment tracking<\/strong> without another plugin: courier, tracking number, optional HTTPS tracking link and shipped date, stored on the order. Optionally add a customer-facing tracking note.<\/li>\n<\/ul>\n\n<p>KartoDesk uses WooCommerce's own REST API inside your site as the signed-in user. It needs no API keys, stores no data of its own beyond tracking on the order, and makes no requests to external services.<\/p>\n\n<h4>Who can use it<\/h4>\n\n<p>Administrators always have full access, and Shop managers start with full access. Under KartoDesk &gt; Settings, administrators choose what each other role can do: view orders, change order status, add private notes, notify customers, manage shipment tracking, view products, edit products, change stock, view customers, view reports, open settings, issue refunds, manage discounts, edit customers and run maintenance tools. Permissions are standard WordPress capabilities (prefixed <code>kartodesk_<\/code>), so role-editor plugins can manage them as well. WooCommerce's own permission checks still apply to every request.<\/p>\n\n<h4>Emails<\/h4>\n\n<p>Customer-facing notes are sent by WooCommerce's <strong>Customer note<\/strong> email to the order's billing email, if that email is enabled under WooCommerce \u2192 Settings \u2192 Emails. KartoDesk reports only that WooCommerce accepted the note; it cannot confirm delivery. Changing an order status can also trigger WooCommerce's own status emails.<\/p>\n\n<h4>Source code<\/h4>\n\n<p>The JavaScript in <code>build\/<\/code> is compiled from TypeScript and React source in the public repository: https:\/\/github.com\/shantz1\/wooops (the panel components are in <code>src\/<\/code>, the plugin entry in <code>wordpress\/<\/code>). Build it with <code>npm ci &amp;&amp; npm run build:wp<\/code>.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>KartoDesk does not track users or send telemetry. Its own scripts and styles load locally; product images can use the store's image or CDN URLs. It displays customer details that WooCommerce already stores, only to users who can manage WooCommerce.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the <code>kartodesk-for-woocommerce<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or upload the zip under Plugins \u2192 Add New \u2192 Upload Plugin.<\/li>\n<li>Activate <strong>KartoDesk for WooCommerce<\/strong>.<\/li>\n<li>Open <strong>KartoDesk<\/strong> in the admin menu.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20change%20my%20orders%20automatically%3F\"><h3>Does it change my orders automatically?<\/h3><\/dt>\n<dd><p>No. Adding tracking does not change the order status and does not email anyone unless you choose to add a customer-facing note.<\/p><\/dd>\n<dt id=\"where%20is%20tracking%20stored%3F\"><h3>Where is tracking stored?<\/h3><\/dt>\n<dd><p>In the order's <code>wooops_shipments<\/code> metadata, in the same format as the standalone WooOps app, so both can be used on one store. It does not appear in other shipment tracking plugins.<\/p><\/dd>\n<dt id=\"can%20two%20people%20edit%20tracking%20on%20the%20same%20order%20at%20once%3F\"><h3>Can two people edit tracking on the same order at once?<\/h3><\/dt>\n<dd><p>Avoid it. Tracking is saved as one value on the order; two simultaneous edits can overwrite each other. Reload the order before editing if others may be working on it.<\/p><\/dd>\n<dt id=\"does%20it%20support%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Does it support High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. It works through WooCommerce's REST controllers and declares HPOS compatibility.<\/p><\/dd>\n<dt id=\"what%20else%20can%20i%20manage%3F\"><h3>What else can I manage?<\/h3><\/dt>\n<dd><p>Products, simple product creation, stock, registered customers, order and inventory reports with CSV, and panel settings. Product and customer lists have pagination. Reports load up to 500 records and flag incomplete results; inventory reports exclude variation stock. Enabling stock management requires explicit confirmation.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.7<\/h4>\n\n<ul>\n<li>Add order address editing and refunds with tax breakdowns, refund history and duplicate-request checks.<\/li>\n<li>Add per-user saved order views, column controls and list density preferences.<\/li>\n<li>Add visual editors for product descriptions, short descriptions and purchase notes, and refresh the panel styling.<\/li>\n<li>Add permissions for issuing refunds, managing discounts, editing customers and running maintenance tools. Administrators and Shop managers receive them automatically; other roles keep exactly what they had.<\/li>\n<\/ul>\n\n<h4>0.1.6<\/h4>\n\n<ul>\n<li>Add permission-based access: choose per WordPress role who can view orders, change status, add notes, notify customers, manage tracking, view or edit products, change stock, view customers, view reports and open settings.<\/li>\n<li>Administrators always keep full access; Shop managers keep full access by default.<\/li>\n<li>Remove KartoDesk capabilities from all roles when the plugin is deleted.<\/li>\n<\/ul>\n\n<h4>0.1.5<\/h4>\n\n<ul>\n<li>Add a product editor for descriptions, pricing, image URLs and galleries, stock, shipping and related products.<\/li>\n<li>Add categories, attribute terms, variations and review moderation to the product workspace.<\/li>\n<li>Separate catalogue editing from inventory quantity operations.<\/li>\n<li>Detect stale product edits before saving.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Use a vertical KartoDesk menu inside its admin page (a drawer on small screens), alongside the WordPress menu.<\/li>\n<li>Remove the separate front-end panel URL; KartoDesk opens from its admin menu only.<\/li>\n<li>Use the kartodesk prefix for all handles and identifiers.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Keep WordPress navigation and other plugins' notices visible on the KartoDesk admin page.<\/li>\n<li>Scope the WooCommerce dependency notice to the Plugins screen.<\/li>\n<li>Keep the separate \/manage workspace available.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Support registered custom order statuses in filters, status updates and reports.<\/li>\n<li>Preserve order list filters in URLs and add previous\/next order navigation.<\/li>\n<li>Add printable packing slips and editable courier tracking-link suggestions.<\/li>\n<li>Wait for packing slip data before printing.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Load screens on demand and share concurrent reads.<\/li>\n<li>Reduce list\/report payloads; paginate products and customers.<\/li>\n<li>Prevent caching of private API responses and bound write payloads.<\/li>\n<li>Require confirmation before enabling product stock management.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release with overview, orders, products, customers, inventory, reports, settings, notes and tracking.<\/li>\n<\/ul>","raw_excerpt":"A focused order workspace inside wp-admin: review orders, add private or customer notes and record shipment tracking.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/380292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=380292"}],"author":[{"embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shantz1"}],"wp:attachment":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=380292"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=380292"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=380292"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=380292"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=380292"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=380292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}