{"id":264398,"date":"2025-12-07T19:32:44","date_gmt":"2025-12-07T19:32:44","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/kitgenix-order-tracking-for-woocommerce\/"},"modified":"2026-08-31T19:39:59","modified_gmt":"2026-08-31T19:39:59","slug":"kitgenix-order-tracking-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/es-ar.wordpress.org\/plugins\/kitgenix-order-tracking-for-woocommerce\/","author":23310025,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.1","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Kitgenix Order Tracking for WooCommerce","header_author":"Kitgenix","header_description":"Add multiple tracking numbers and carriers to WooCommerce orders, show a tracking page, and include tracking in emails.","assets_banners_color":"0d113d","last_updated":"2026-08-31 19:39:59","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/donate\/?hosted_button_id=KALF36K6JJ9B2","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/kitgenix-order-tracking-for-woocommerce\/","header_author_uri":"https:\/\/kitgenix.com\/","rating":0,"author_block_rating":0,"active_installs":10,"downloads":911,"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":"kitgenix","date":"2025-12-07 19:31:17","revision":3413688},"1.0.1":{"tag":"1.0.1","author":"kitgenix","date":"2025-12-18 13:27:34","revision":3422897},"1.0.2":{"tag":"1.0.2","author":"kitgenix","date":"2026-01-01 19:23:09","revision":3430718},"1.0.3":{"tag":"1.0.3","author":"kitgenix","date":"2026-01-05 21:56:09","revision":3433087},"1.0.4":{"tag":"1.0.4","author":"kitgenix","date":"2026-01-27 19:11:50","revision":3448144},"1.0.5":{"tag":"1.0.5","author":"kitgenix","date":"2026-02-19 22:13:02","revision":3465411},"1.0.6":{"tag":"1.0.6","author":"kitgenix","date":"2026-03-19 10:14:12","revision":3486328},"1.1.0":{"tag":"1.1.0","author":"kitgenix","date":"2026-05-07 13:19:16","revision":3525576},"1.1.3":{"tag":"1.1.3","author":"kitgenix","date":"2026-05-26 19:54:08","revision":3549715},"2.0.0":{"tag":"2.0.0","author":"kitgenix","date":"2026-08-31 19:39:59","revision":3674878}},"upgrade_notice":{"2.0.0":"<p>Major admin redesign around the shared Kitgenix design system, a new Kitgenix Hub page, and reworked Analytics\/Carriers\/Bulk Tools\/Support\/Log screens. Recommended for all websites.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3674878,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3674878,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3674878,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3674878,"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.0.3","1.0.4","1.0.5","1.0.6","1.1.0","1.1.3","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3674878,"resolution":"1","location":"assets","locale":"","width":1435,"height":978},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3674878,"resolution":"2","location":"assets","locale":"","width":2400,"height":996},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3674878,"resolution":"3","location":"assets","locale":"","width":2405,"height":3206},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3674878,"resolution":"4","location":"assets","locale":"","width":1239,"height":2575},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3674878,"resolution":"5","location":"assets","locale":"","width":1249,"height":2467},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3674878,"resolution":"6","location":"assets","locale":"","width":1920,"height":672},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3525576,"resolution":"7","location":"assets","locale":"","width":2696,"height":1462},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3525576,"resolution":"8","location":"assets","locale":"","width":2696,"height":1462}},"screenshots":{"1":"Adding tracking to an order: the \"Add tracking\" modal with item quantities, tracking number, carrier, shipped date, and an optional order status update.","2":"The customer tracking page: order number and billing email lookup, with optional postcode verification.","3":"Tracking results: shipment tracking, order details, addresses, and item shipped\/not-shipped status.","4":"WooCommerce Completed Order email showing the Shipment Tracking section.","5":"The plugin's Partially Shipped email for staged fulfilment.","6":"The Tracking Analytics overview: shipment coverage, time-to-ship, exceptions, and lookup totals."}},"plugin_section":[],"plugin_tags":[45369,55977,3546,5561,286],"plugin_category":[45],"plugin_contributors":[246171],"plugin_business_model":[],"class_list":["post-264398","plugin","type-plugin","status-publish","hentry","plugin_tags-order-tracking","plugin_tags-shipment-tracking","plugin_tags-shipping","plugin_tags-tracking-number","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-kitgenix","plugin_committers-kitgenix"],"banners":{"banner":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/banner-772x250.png?rev=3674878","banner_2x":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/banner-1544x500.png?rev=3674878","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/icon-128x128.png?rev=3674878","icon_2x":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/icon-256x256.png?rev=3674878","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/screenshot-1.png?rev=3674878","caption":"Adding tracking to an order: the \"Add tracking\" modal with item quantities, tracking number, carrier, shipped date, and an optional order status update."},{"src":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/screenshot-2.png?rev=3674878","caption":"The customer tracking page: order number and billing email lookup, with optional postcode verification."},{"src":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/screenshot-3.png?rev=3674878","caption":"Tracking results: shipment tracking, order details, addresses, and item shipped\/not-shipped status."},{"src":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/screenshot-4.png?rev=3674878","caption":"WooCommerce Completed Order email showing the Shipment Tracking section."},{"src":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/screenshot-5.png?rev=3674878","caption":"The plugin's Partially Shipped email for staged fulfilment."},{"src":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/screenshot-6.png?rev=3674878","caption":"The Tracking Analytics overview: shipment coverage, time-to-ship, exceptions, and lookup totals."},{"src":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/screenshot-7.png?rev=3525576","caption":""},{"src":"https:\/\/ps.w.org\/kitgenix-order-tracking-for-woocommerce\/assets\/screenshot-8.png?rev=3525576","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Kitgenix Order Tracking for WooCommerce<\/strong> adds shipment tracking to WooCommerce orders so store staff can record one or more parcels, allocate order items to shipments, include tracking details in customer emails and offer a self-service tracking page.<\/p>\n\n<p>The plugin is intentionally different from a live carrier-management platform. It stores the tracking number, selected carrier, tracking URL and staff-managed shipment status; it does <strong>not<\/strong> call courier APIs to obtain live delivery scans and it does not buy labels or book collections.<\/p>\n\n<p>That makes it suitable for stores that already fulfil orders through their preferred courier workflow but need a consistent place in WooCommerce to record and communicate tracking information.<\/p>\n\n<p>Built by <a href=\"https:\/\/kitgenix.com\/\">Kitgenix<\/a>.<\/p>\n\n<h4>WooCommerce Shipment Tracking Features<\/h4>\n\n<ul>\n<li>Add multiple shipments to one WooCommerce order.<\/li>\n<li>Store a tracking number and carrier for each shipment.<\/li>\n<li>Allocate specific order items and quantities to a shipment.<\/li>\n<li>Prevent allocated quantities exceeding what the customer ordered.<\/li>\n<li>Use built-in carrier tracking URL patterns.<\/li>\n<li>Create custom carrier entries for services not included by default.<\/li>\n<li>Track staff-managed shipment states including shipped, in transit, delivered, exception, returned and cancelled.<\/li>\n<li>Add tracking information to supported WooCommerce customer emails.<\/li>\n<li>Provide a dedicated partially-shipped workflow\/status\/email where configured by the plugin.<\/li>\n<li>Give customers a self-service order tracking page.<\/li>\n<li>Support a public tracking form with order-identification checks.<\/li>\n<li>Show tracking information in My Account for authenticated customers.<\/li>\n<li>Provide tracking analytics\/reporting in wp-admin.<\/li>\n<li>Import\/export tracking information in supported bulk workflows.<\/li>\n<li>Optional map presentation using OpenStreetMap tiles and Nominatim geocoding.<\/li>\n<li>Developer hooks\/filters for extending carrier and tracking behaviour.<\/li>\n<li>Declare WooCommerce HPOS compatibility.<\/li>\n<\/ul>\n\n<h4>Multiple Shipments and Partial Fulfilment<\/h4>\n\n<p>An order can contain more than one shipment. Each shipment has its own tracking number, carrier and status, making the plugin suitable for split parcels, backordered lines, replacements or orders dispatched from more than one fulfilment location.<\/p>\n\n<p>Items and quantities can be assigned to an individual shipment. Allocation is bounded by the quantities actually ordered, so the tracking UI cannot legitimately claim that more units were shipped than exist on the order line.<\/p>\n\n<p>The remaining\/unallocated items can continue to represent what has not yet been included in a parcel.<\/p>\n\n<h4>Shipment Statuses<\/h4>\n\n<p>The plugin defines internal tracking states including:<\/p>\n\n<ul>\n<li>Shipped.<\/li>\n<li>In transit.<\/li>\n<li>Delivered.<\/li>\n<li>Exception.<\/li>\n<li>Returned.<\/li>\n<li>Cancelled.<\/li>\n<\/ul>\n\n<p>These values are controlled by store staff or other code that integrates with the plugin. They are not automatically fetched from Royal Mail, DPD, UPS, FedEx or another courier.<\/p>\n\n<p>That distinction is important: a \"Delivered\" status in the plugin means the WooCommerce store has set that status, not that Kitgenix independently confirmed delivery with the carrier.<\/p>\n\n<h4>Built-In and Custom Carriers<\/h4>\n\n<p>The carrier manager includes a set of ready-made carriers with tracking URL patterns. The codebase includes services for the UK, Ireland and international markets, including Royal Mail, Parcelforce\/related services represented in the carrier set, DPD, An Post, DHL, UPS, FedEx, USPS, Canada Post, Australia Post, NZ Post and others.<\/p>\n\n<p>A custom\/Other carrier option is available where a courier is not built in. A custom tracking URL pattern can contain the tracking-number placeholder so customer links still lead to the relevant courier tracking page.<\/p>\n\n<h4>Customer Email Notifications<\/h4>\n\n<p>Tracking information can be inserted into WooCommerce email flows. The plugin also includes a dedicated email class\/workflow for partially shipped orders so customers can be informed when only part of an order has been dispatched.<\/p>\n\n<p>Because tracking data is stored on the WooCommerce order, customer-facing output can reuse the same shipment records rather than staff copying numbers into several separate systems.<\/p>\n\n<h4>Self-Service Tracking Page<\/h4>\n\n<p>The frontend tracking experience lets a customer look up tracking information using supported order-identification details. Logged-in customers can see order-related tracking through My Account, while the public form validates the supplied order data before showing sensitive order context.<\/p>\n\n<p>The output intentionally limits customer information rather than exposing a full order record to anyone who guesses an order number.<\/p>\n\n<p>A shortcode is registered for the tracking form:<\/p>\n\n<pre><code>[kitgenix_tracking_form]\n<\/code><\/pre>\n\n<h4>Tracking Analytics<\/h4>\n\n<p>The plugin includes an admin analytics area for reviewing shipment\/tracking activity. Reporting is based on the tracking data stored with WooCommerce orders; it is not a remote courier analytics product and does not profile visitors across websites.<\/p>\n\n<h4>Optional Route Map<\/h4>\n\n<p>Where enabled by the frontend template\/settings, the tracking page can display a simple map between the store origin and customer destination. The browser uses the bundled Leaflet library with OpenStreetMap map tiles and can query the public Nominatim geocoding service to translate the displayed addresses into coordinates.<\/p>\n\n<p>The map is illustrative. The code draws a straight line between geocoded points; it is not a live courier route, vehicle location or turn-by-turn delivery route.<\/p>\n\n<p>No Google Maps API key is required by this implementation.<\/p>\n\n<h4>Bulk Portability<\/h4>\n\n<p>The plugin includes import\/export functionality for tracking records so stores can move or update shipment information in bulk rather than editing every order manually.<\/p>\n\n<p>Administrators should test bulk imports on a staging copy first when mapping external fulfilment data, especially when orders can have multiple shipments or item allocations.<\/p>\n\n<h4>Privacy and Data<\/h4>\n\n<p>Shipment records are stored with WooCommerce orders. The plugin does not send tracking records to a Kitgenix tracking service. Clicking a courier link takes the customer to that carrier's own website, which then operates under the carrier's own privacy terms.<\/p>\n\n<p>If the optional route map is used, address text is sent from the customer's browser to the configured Nominatim endpoint for geocoding and map tiles are requested from OpenStreetMap infrastructure. Those services are documented in <strong>External Services<\/strong> below.<\/p>\n\n<h4>What This Plugin Does Not Do<\/h4>\n\n<ul>\n<li>It does not buy or print shipping labels.<\/li>\n<li>It does not book courier collections.<\/li>\n<li>It does not pull live tracking scans from carrier APIs.<\/li>\n<li>It does not automatically know when a parcel is delivered unless another user\/integration updates the status.<\/li>\n<li>It does not replace a warehouse management or fulfilment platform.<\/li>\n<\/ul>\n\n<h4>Typical Uses<\/h4>\n\n<ul>\n<li>WooCommerce stores that dispatch with several different couriers.<\/li>\n<li>Orders split into multiple parcels.<\/li>\n<li>Partial shipments where customers need to know which items have left.<\/li>\n<li>Support teams that want tracking visible in the order instead of private notes.<\/li>\n<li>Stores that want a branded self-service tracking lookup without a hosted Kitgenix account.<\/li>\n<\/ul>\n\n<h3>Developers<\/h3>\n\n<p>Text domain:\nkitgenix-order-tracking-for-woocommerce<\/p>\n\n<p>Shortcode:\n[kitgenix_tracking_form]<\/p>\n\n<p>Data model (high level):\n- Shipments are stored as order meta under <code>_kitgenix_tracking_shipments<\/code> (array)\n- Tracking numbers are indexed for fast lookup via repeated order meta <code>_kitgenix_tracking_number<\/code> (one meta row per tracking number)\n- Each shipment can also store a <code>status<\/code> value (shipped, in_transit, delivered, exception, returned, cancelled) for admin records and analytics \u2013 this is set by staff, not fetched from a carrier\n- Admin UI stores the last chosen \"update order status\" action as order meta <code>kitgenix_order_status_action<\/code> (values: <code>no_change<\/code>, <code>partial<\/code>, <code>completed<\/code>)\n- Carrier settings are stored in the option <code>kitgenix_order_tracking_for_woocommerce_carriers_settings<\/code>\n- Counter option: <code>kitgenix_order_tracking_for_woocommerce_tracking_numbers_added<\/code> (privacy-safe total)\n- Counter option: <code>kitgenix_order_tracking_for_woocommerce_lookup_count<\/code> (successful tracking-page lookups)\n- Event log option: <code>kitgenix_order_tracking_event_log<\/code>\n- Analytics aggregates are cached briefly in transients prefixed <code>kitgenix_order_tracking_for_woocommerce_analytics_...<\/code>\n- Activation redirect uses transient <code>kitgenix_order_tracking_for_woocommerce_do_activation_redirect<\/code> (about 30 seconds)\n- No custom database tables are created\n- No custom post types, taxonomies, or REST API routes are registered by this plugin\n- Uninstall does not remove order meta or shipment data (to preserve historical tracking) \u2013 see Uninstall behaviour below<\/p>\n\n<p>Nonces \/ capabilities (summary):\n- Order edit tracking save uses nonce action <code>kitgenix_order_tracking_save<\/code> (<code>kitgenix_order_tracking_nonce<\/code>) and requires <code>edit_shop_order<\/code>.\n- Order-items modal loads via AJAX action <code>kitgenix_order_tracking_for_woocommerce_get_order_items<\/code> using nonce action <code>kitgenix_order_tracking<\/code>.\n- Tracking form submissions use nonce action <code>kitgenix_tracking_lookup<\/code> (<code>kitgenix_tracking_nonce<\/code>).\n- Carriers (Shippers) settings form uses nonce action <code>kitgenix_order_tracking_for_woocommerce_save_carriers<\/code> (<code>kitgenix_order_tracking_for_woocommerce_carriers_nonce<\/code>).\n- CSV export\/import on the Bulk Tools tab use the <code>kitgenix_order_tracking_export_shipments<\/code> and <code>kitgenix_order_tracking_import_shipments<\/code> nonce actions and require the plugin's admin capability (<code>manage_woocommerce<\/code>, or <code>manage_options<\/code> if WooCommerce management capabilities aren't available).<\/p>\n\n<p>Hooks \/ filters:\n- kitgenix_order_tracking_shipment_created( int $order_id, array $shipment ) (action, fires after a new shipment is saved)\n- kitgenix_order_tracking_shipment_updated( int $order_id, array $shipment, array $previous_shipment ) (action, fires after an existing shipment is changed)\n- kitgenix_order_tracking_shipment_deleted( int $order_id, array $shipment ) (action, fires after a shipment is removed)\n- kitgenix_order_tracking_shipment_notification_sent( int $order_id, string $email_id ) (action, fires after the Partially Shipped email is sent)\n- kitgenix_order_tracking_for_woocommerce_debug_save( bool $enabled, int $order_id ): bool (filter, enable a debug order note on save)\n- kitgenix_order_tracking_for_woocommerce_nominatim_email( string $email ): string (filter, supply\/override the Nominatim contact email param)\n- kitgenix_order_tracking_for_woocommerce_nominatim_endpoint( string $endpoint ): string (filter, override the geocoding endpoint)<\/p>\n\n<p>Templates:\n- The custom Partially Shipped email uses standard WooCommerce template override patterns via the files in <code>templates\/emails\/<\/code> and <code>templates\/emails\/plain\/<\/code>.<\/p>\n\n<p>Admin AJAX endpoints:\n- wp_ajax_kitgenix_order_tracking_for_woocommerce_get_order_items (load order items into the shipment modal)<\/p>\n\n<p>Uninstall behaviour:\n- Removed on uninstall: the carrier settings option, the tracking-numbers-added and lookup-count counter options, the event log option, and all plugin-prefixed transients (including any Kitgenix hub caches described below); the same options are also cleaned up per-site on multisite.\n- Not removed on uninstall: order meta (<code>_kitgenix_tracking_shipments<\/code>, <code>_kitgenix_tracking_number<\/code>) and the \"Partially shipped\" order status\/history stay on your orders, so historical tracking data and reporting are preserved even after the plugin is removed.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin may connect to external services in three situations:<\/p>\n\n<p>1) When customers click courier tracking links\nTracking links open the carrier's own tracking page (e.g. Amazon Logistics, An Post, DHL, DPD, DX, Evri, FedEx, Parcelforce Worldwide, Royal Mail, UPS, Woodside Distribution, Yodel, or a custom \"Other\" URL you configure). These links may contain the tracking number. The plugin does not call any carrier API on its own \u2013 it never fetches live delivery status from a courier.<\/p>\n\n<p>2) When the optional route map is enabled\nThe tracking view may request:\n- OpenStreetMap tile images, from <code>https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png<\/code>.\n- Nominatim geocoding requests, to convert store and customer address details into map coordinates. This defaults to <code>https:\/\/nominatim.openstreetmap.org\/search<\/code> and may include the full store and delivery address string in the <code>q<\/code> parameter. A developer filter lets you override the endpoint and supply a contact email for the request.\nLeaflet (the mapping library) is bundled with the plugin \u2013 no CDN or external script is loaded to render the map itself.<\/p>\n\n<p>3) In wp-admin (Kitgenix hub)\nThis plugin includes a shared \"Kitgenix hub\" admin page that helps you find and manage other Kitgenix plugins. It uses WordPress core's <code>plugins_api()<\/code> function to fetch publicly available plugin listing data from the WordPress.org Plugins API (wordpress.org) \u2013 active install counts, ratings, and icon\/banner artwork \u2013 for a fixed list of Kitgenix plugin slugs. No site content, order data, or personal data is sent as part of these requests; results are cached in transients for up to 24 hours (<code>kitgenix_hub_wporg_active_installs_v1<\/code>, <code>kitgenix_hub_wporg_ratings_v1<\/code>, <code>kitgenix_hub_wporg_media_v1<\/code>) to minimise repeat calls.<\/p>\n\n<p>No personal data is sold or shared by this plugin. Where external services are used, requests may include data required to perform the function (for example, a tracking number in a carrier link, or address data used for geocoding). Review the relevant provider's own privacy policy for your use case.<\/p>\n\n<h3>Trademark Notice<\/h3>\n\n<p>All carrier names and logos are trademarks of their respective owners. This plugin is not affiliated with or endorsed by any courier, carrier, OpenStreetMap, or Nominatim service.<\/p>\n\n<h3>Support Development<\/h3>\n\n<p>If this plugin reduces \"where is my order?\" tickets and helps customers self-serve tracking, you can support ongoing development with a donation via PayPal:\nhttps:\/\/www.paypal.com\/donate\/?hosted_button_id=KALF36K6JJ9B2<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Built with \u2764\ufe0e by @kitgenix - https:\/\/kitgenix.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce if you haven't already \u2013 this plugin will not activate without it.<\/li>\n<li>Install this plugin via Plugins \u2192 Add New (search for \"Kitgenix Order Tracking for WooCommerce\"), or upload the ZIP file to \/wp-content\/plugins\/ and activate it.<\/li>\n<li>Create a page (e.g. \"Track Your Order\") and add the shortcode:\n   [kitgenix_tracking_form]<\/li>\n<li>Open any WooCommerce order and use the Kitgenix Order Tracking meta box to add a shipment.<\/li>\n<li>Send a Completed Order email (or use the Partially Shipped status) to confirm tracking appears correctly.<\/li>\n<li>Optional: visit Kitgenix \u2192 Order Tracking \u2192 Carriers to apply a regional carrier pack, and \u2192 Bulk Tools if your fulfilment team needs CSV import\/export.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce must be installed and active. If WooCommerce isn't active, the plugin deactivates itself automatically and shows a notice.<\/p><\/dd>\n<dt id=\"can%20i%20add%20multiple%20tracking%20numbers%20to%20one%20order%3F\"><h3>Can I add multiple tracking numbers to one order?<\/h3><\/dt>\n<dd><p>Yes. Add as many shipments as you need per order, including split parcels and partial shipments, each with its own carrier and tracking number.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20fetch%20live%20tracking%20status%20from%20couriers%3F\"><h3>Does the plugin fetch live tracking status from couriers?<\/h3><\/dt>\n<dd><p>No. It stores the tracking number and links to the carrier's own tracking page. Any shipment status shown in the admin or analytics (Shipped, In transit, Delivered, etc.) is set manually by your staff \u2013 the plugin does not call carrier APIs.<\/p><\/dd>\n<dt id=\"which%20couriers%20are%20supported%3F\"><h3>Which couriers are supported?<\/h3><\/dt>\n<dd><p>Built-in carriers include Amazon Logistics, An Post, Australia Post, Bpost, Canada Post, Chronopost, Colissimo\/La Poste, Correos, DHL, Deutsche Post\/DHL Germany, DPD Ireland, DPD UK, DX, Evri, FedEx, GLS, NZ Post, Parcelforce Worldwide, PostNL, PostNord, Royal Mail, UPS (US, Ireland, UK), USPS, Woodside Distribution, and Yodel, plus an \"Other\" option for custom links.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20courier%20that%20isn%27t%20listed%3F\"><h3>Can I use a courier that isn't listed?<\/h3><\/dt>\n<dd><p>Yes. Use Kitgenix \u2192 Order Tracking \u2192 Carriers to add a custom carrier with its own tracking URL pattern (using <code>{tracking_number}<\/code>) and icon, or select \"Other\" when adding tracking to an order.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20guess%20the%20carrier%20for%20me%3F\"><h3>Does the plugin guess the carrier for me?<\/h3><\/dt>\n<dd><p>It can suggest one for tracking numbers with a distinctive, unambiguous format (UPS's \"1Z\" prefix, Amazon Logistics' \"TBA\" prefix, Royal Mail\/Parcelforce and USPS formats). This is always shown as an unconfirmed suggestion \u2013 it never overwrites a carrier you've explicitly chosen, and ambiguous numeric formats are left unmatched rather than guessed.<\/p><\/dd>\n<dt id=\"can%20i%20import%20or%20export%20tracking%20in%20bulk%3F\"><h3>Can I import or export tracking in bulk?<\/h3><\/dt>\n<dd><p>Yes. The Bulk Tools tab exports all tracked shipments to CSV and lets you re-import edited files, either appending new shipments or replacing all shipments on the matched orders. Per-item quantities round-trip using an <code>item_id:qty|item_id:qty<\/code> format.<\/p><\/dd>\n<dt id=\"do%20customers%20get%20tracking%20in%20emails%20automatically%3F\"><h3>Do customers get tracking in emails automatically?<\/h3><\/dt>\n<dd><p>Yes, once a shipment exists on the order. Tracking appears in the WooCommerce Completed Order email and in the plugin's Partially Shipped email.<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22partially%20shipped%22%20order%20status%20and%20email%3F\"><h3>What is the \"Partially shipped\" order status and email?<\/h3><\/dt>\n<dd><p>The plugin adds a custom order status, \"Partially shipped\", and a matching customer email. It's designed for stores that ship orders in stages and want to notify customers with tracking before the whole order is complete.<\/p><\/dd>\n<dt id=\"can%20customers%20track%20an%20order%20without%20logging%20in%3F\"><h3>Can customers track an order without logging in?<\/h3><\/dt>\n<dd><p>Yes. The <code>[kitgenix_tracking_form]<\/code> tracking page is public and supports lookup by order number and billing email, or by tracking number alone.<\/p><\/dd>\n<dt id=\"why%20can%27t%20a%20customer%20see%20the%20full%20address%20or%20item%20details%20on%20the%20tracking%20page%3F\"><h3>Why can't a customer see the full address or item details on the tracking page?<\/h3><\/dt>\n<dd><p>For privacy, full addresses, the route map, and item-level shipment detail are only shown after the customer confirms the postcode, ZIP code, or postal code stored on the order. This check uses country-aware matching, not a single fixed postcode format.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20woocommerce%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Does the plugin work with WooCommerce High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares HPOS compatibility and its order meta box and save logic work on both the classic and HPOS order-edit screens.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20maps%20api%20key%20for%20the%20route%20map%3F\"><h3>Do I need a Google Maps API key for the route map?<\/h3><\/dt>\n<dd><p>No. The optional map uses Leaflet (bundled with the plugin) and OpenStreetMap tiles, with no API key or CDN required.<\/p><\/dd>\n<dt id=\"the%20route%20map%20isn%27t%20showing%20%E2%80%93%20what%20should%20i%20check%3F\"><h3>The route map isn't showing \u2013 what should I check?<\/h3><\/dt>\n<dd><p>Check for a strict Content Security Policy or aggressive script\/asset optimisation that might block the bundled Leaflet script or the OpenStreetMap tile and geocoding requests.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20create%20shipping%20labels%20or%20replace%20a%20fulfilment%20system%3F\"><h3>Does this plugin create shipping labels or replace a fulfilment system?<\/h3><\/dt>\n<dd><p>No. It records tracking numbers you already have and displays them to customers; it doesn't generate labels, rates, or replace a fulfilment\/shipping suite.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20gdpr-friendly%3F\"><h3>Is this plugin GDPR-friendly?<\/h3><\/dt>\n<dd><p>It doesn't set tracking cookies and uses WooCommerce's existing order data for lookups. Carrier tracking links and the optional map's tile\/geocoding requests are external services \u2013 review their own privacy policies for your needs.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20talk%20to%20any%20other%20kitgenix%20plugins%20or%20a%20remote%20kitgenix%20server%3F\"><h3>Does this plugin talk to any other Kitgenix plugins or a remote Kitgenix server?<\/h3><\/dt>\n<dd><p>No customer or store data is sent to Kitgenix. The plugin adds an optional \"Kitgenix\" admin page that can look up publicly available plugin listing information (install counts, ratings, icons) from WordPress.org for other Kitgenix plugins, to help you find and manage them \u2013 see External Services below.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0 (31 August 2026)<\/h4>\n\n<ul>\n<li>New: Redesigned the entire admin experience around the shared Kitgenix design system \u2013 a sticky topbar with an Analytics dropdown menu, live settings search, dark\/light theme toggle, and mobile hamburger menu replaces the previous page header and tab strip.<\/li>\n<li>New: Added a redesigned central Kitgenix Hub page for discovering, installing, activating, and reviewing every Kitgenix plugin from one screen, including the new Image Optimizer plugin.<\/li>\n<li>Improved: Rebuilt the Analytics, Carriers, Bulk Tools, Support, and Log tabs around a consistent set of cards, toggle switches, colour-coded status badges, empty states, and a drag-and-drop CSV upload zone, replacing the previous form tables and plain links.<\/li>\n<li>Improved: The Tracking Analytics stat-tile grid \u2013 including orders in range, time-to-ship, lookups, and other metrics \u2013 now uses a fixed four-column layout on wider screens, with responsive fallbacks to two columns and then one column on smaller displays.<\/li>\n<li>Improved: The \"Add tracking\" modal on the WooCommerce order edit screen and the custom carrier edit modal now share a common accessible modal component with proper focus handling, Escape-to-close support, and accessible labelling.<\/li>\n<li>Improved: Custom carrier rows now use compact icon-only edit and delete action buttons with colour-coded enabled\/disabled badges instead of plain text links.<\/li>\n<li>Improved: The Log tab now displays entries in a searchable, paginated table containing time, context, outcome, and a plain-English note instead of a plain text block.<\/li>\n<li>Improved: CSV bulk import failures now record the specific underlying reason \u2013 including unreadable files, files that cannot be opened, missing or invalid headers, and unexpected processing errors \u2013 in the Log tab alongside the existing on-screen message.<\/li>\n<li>Improved: Added a reference table to the Log tab explaining what each recorded category means and whether administrator action is required.<\/li>\n<li>Improved: The Support tab is now three focused cards \u2013 a donate card with a collapsible monthly-amount picker, a \"what your support funds\" summary, and a \"get involved\" panel for reviews and plugin links \u2013 replacing the previous stack of donate, trust, and community cards.<\/li>\n<li>Improved: Moved the Log tab directly before Support in the admin navigation for a more logical workflow.<\/li>\n<li>Improved: Refreshed the Kitgenix logo and favicon assets used throughout the admin menu icon, Kitgenix Hub header, and Analytics header.<\/li>\n<li>Fix: The \"Follow Us\" social links no longer appear twice on the Support tab, removing the previous duplication between the inline social block and sidebar.<\/li>\n<li>Fix: The \"Shipments over time\" sparkline no longer displays a bold solid line when there is no shipment data. Empty charts now render a thinner, muted baseline so the absence of data cannot be mistaken for a genuine flat trend.<\/li>\n<li>Fix: Number inputs across the Analytics and settings screens are no longer cramped to a fixed 50px width.<\/li>\n<li>Dev: Added a shared <code>kitgenix-admin-components.js<\/code> controller providing modal open\/close handling, toast notifications, collapsible cards, copy-to-clipboard controls, and live table search. Both <code>admin-analytics.js<\/code> and <code>admin-order-tracking.js<\/code> now use the shared component controller.<\/li>\n<li>Dev: Three previously silent internal errors \u2013 Analytics date parsing, tracking-count lookups, and HPOS order-screen detection \u2013 are now recorded in the Log tab for easier diagnostics while remaining non-blocking and preserving existing behaviour.<\/li>\n<\/ul>","raw_excerpt":"Add WooCommerce shipment tracking, multiple parcels, tracking emails and a self-service customer tracking page.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/264398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=264398"}],"author":[{"embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kitgenix"}],"wp:attachment":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=264398"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=264398"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=264398"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=264398"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=264398"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=264398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}