{"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-08T03:54:51","modified_gmt":"2026-10-08T03:54:51","slug":"kartodesk-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/oci.wordpress.org\/plugins\/kartodesk-for-woocommerce\/","author":20772476,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.8","stable_tag":"0.1.8","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-08 03:54:51","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":233,"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},"0.1.8":{"tag":"0.1.8","author":"shantz1","date":"2026-10-08 03:54:51","revision":3733628}},"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","0.1.8"],"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":[262246],"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_section-dashboard-widgets","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> with up to four selectable, sortable cards: recent-order metrics, orders today, orders this week and custom order statuses. Daily and weekly counts cover the store and use its timezone; weeks start on Monday.<\/li>\n<li><strong>WordPress dashboard widget<\/strong>: enabled by default in a full-width row, using your account's same selected cards. Turn it off under Settings &gt; Dashboard customization, or hide\/collapse it using WordPress's normal dashboard controls.<\/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 or additional database and makes no requests to external services. Personal dashboard preferences are saved on your WordPress account, permissions on WordPress roles, and tracking and refund request identifiers on orders.<\/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.8<\/h4>\n\n<ul>\n<li>Add Dashboard customization in Settings: choose and sort up to four overview cards, including today's orders, this week's orders and custom order statuses.<\/li>\n<li>Add a native WordPress dashboard widget using the same personal card preferences, enabled by default in its own full-width row. Saved off choices and native hide\/collapse controls are respected. Existing dashboard widgets, menus and notices remain unchanged.<\/li>\n<li>Use the store timezone for daily and weekly counts; weeks start on Monday.<\/li>\n<\/ul>\n\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:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/380292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=380292"}],"author":[{"embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shantz1"}],"wp:attachment":[{"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=380292"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=380292"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=380292"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=380292"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=380292"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/oci.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=380292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}