{"id":309477,"date":"2026-05-24T00:49:47","date_gmt":"2026-05-24T00:49:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/order-porter-for-woocommerce\/"},"modified":"2026-05-24T01:04:28","modified_gmt":"2026-05-24T01:04:28","slug":"optimizedmk-order-porter-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/optimizedmk-order-porter-for-woocommerce\/","author":23494719,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Optimized MK Order Porter for WooCommerce","header_author":"Optimized MK","header_description":"Export WooCommerce orders to JSON and import them on another site. Captures every order field including all custom meta (shipping carrier labels, custom plugins, etc.). Works with HPOS and multisite.","assets_banners_color":"","last_updated":"2026-05-24 01:04:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/optimizedmk-order-porter-for-woocommerce\/","header_author_uri":"https:\/\/optimized.mk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"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":"optimizedmk","date":"2026-05-24 01:04:28"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3545708,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3545708,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Export screen \u2014 choose date range, statuses, and field groups","2":"Import screen \u2014 upload JSON, choose duplicate handling, watch live progress log"}},"plugin_section":[],"plugin_tags":[1859,87,4151,16281,286],"plugin_category":[45,59],"plugin_contributors":[264154],"plugin_business_model":[],"class_list":["post-309477","plugin","type-plugin","status-publish","hentry","plugin_tags-export","plugin_tags-import","plugin_tags-migrate","plugin_tags-orders","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-utilities-and-tools","plugin_contributors-optimizedmk","plugin_committers-optimizedmk"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/optimizedmk-order-porter-for-woocommerce\/assets\/icon-128x128.png?rev=3545708","icon_2x":"https:\/\/ps.w.org\/optimizedmk-order-porter-for-woocommerce\/assets\/icon-256x256.png?rev=3545708","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Optimized MK Order Porter for WooCommerce<\/strong> lets you move orders between WooCommerce stores without losing any data. It captures <em>every<\/em> order meta field \u2014 including shipping carrier labels (Econt, Speedy, DHL, etc.), data added by third-party plugins, and custom fields.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Complete order export<\/strong> \u2014 billing, shipping, line items, fees, coupons, notes, and all custom meta<\/li>\n<li><strong>Selective export<\/strong> \u2014 choose which field groups to include per export<\/li>\n<li><strong>Date range + status filters<\/strong> \u2014 export only the orders you need<\/li>\n<li><strong>Batch import with progress bar<\/strong> \u2014 processes orders in small batches so it never times out, even for thousands of orders<\/li>\n<li><strong>Smart duplicate detection<\/strong> \u2014 matches imported orders by their source ID; choose to skip or update existing orders<\/li>\n<li><strong>Product matching by SKU<\/strong> \u2014 links line items to the correct product on the target site even if product IDs differ<\/li>\n<li><strong>HPOS compatible<\/strong> \u2014 fully compatible with WooCommerce High-Performance Order Storage<\/li>\n<li><strong>Multisite compatible<\/strong> \u2014 works as a single-site or network-activated plugin<\/li>\n<li><strong>JSON format<\/strong> \u2014 handles nested order data (meta arrays, line item meta) that CSV cannot represent cleanly<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Install and activate on both the <strong>source<\/strong> and <strong>target<\/strong> site<\/li>\n<li>On the source site go to <strong>WooCommerce \u2192 Order Porter \u2192 Export<\/strong>, choose your filters and download the JSON file<\/li>\n<li>On the target site go to <strong>WooCommerce \u2192 Order Porter \u2192 Import<\/strong>, upload the file and click <strong>Start Import<\/strong><\/li>\n<li>Watch the live progress log \u2014 each order shows as Created, Skipped, Updated, or Error<\/li>\n<\/ol>\n\n<h4>Why not CSV?<\/h4>\n\n<p>Orders contain nested data: each order has multiple line items, each line item has its own meta, shipping lines have their own meta, etc. JSON preserves this structure exactly. CSV flattens it, which means you either lose data or end up with an unwieldy number of columns.<\/p>\n\n<h4>HPOS support<\/h4>\n\n<p>This plugin uses WooCommerce's order data store API (<code>wc_get_orders<\/code>, <code>WC_Order<\/code>, <code>wc_create_order<\/code>) throughout \u2014 it never queries <code>wp_posts<\/code> or <code>wp_postmeta<\/code> directly, making it fully compatible with High-Performance Order Storage on both source and target sites.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For questions or issues contact us at <a href=\"mailto:contact@optimized.mk\">contact@optimized.mk<\/a>.<\/p>\n\n<p>If Order Porter has saved you time, consider <a href=\"https:\/\/optimized.mk\/?add-to-cart=480\">buying us a coffee<\/a> \u2014 it helps us keep the plugin free and maintained.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via <strong>Plugins \u2192 Add New<\/strong><\/li>\n<li>Activate the plugin on both your source and target site<\/li>\n<li>Go to <strong>WooCommerce \u2192 Order Porter<\/strong> to export or import<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20woocommerce%20multisite%3F\"><h3>Does this work with WooCommerce multisite?<\/h3><\/dt>\n<dd><p>Yes. Activate the plugin on the specific subsite you want to import into, then go to that subsite's WooCommerce \u2192 Order Porter page.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20products%20that%20don%27t%20exist%20on%20the%20target%20site%3F\"><h3>What happens to products that don't exist on the target site?<\/h3><\/dt>\n<dd><p>The order is still created with the correct name, quantity, and pricing. The plugin first tries to match products by SKU, then by ID. If no match is found, the line item is recorded with its name and totals but without a product link.<\/p><\/dd>\n<dt id=\"will%20it%20duplicate%20orders%20if%20i%20import%20the%20same%20file%20twice%3F\"><h3>Will it duplicate orders if I import the same file twice?<\/h3><\/dt>\n<dd><p>No. Each imported order is tagged with <code>_opwc_source_id<\/code>. On subsequent imports the plugin detects existing orders and either skips or updates them depending on your choice.<\/p><\/dd>\n<dt id=\"the%20import%20gets%20stuck%20or%20times%20out\"><h3>The import gets stuck or times out<\/h3><\/dt>\n<dd><p>Lower the <strong>Batch size<\/strong> setting (try 5 or even 1). The plugin processes orders in separate AJAX requests so each request handles a small number of orders and cannot time out the page. If a single order causes a fatal error, the error message will appear in the log.<\/p><\/dd>\n<dt id=\"can%20i%20export%20all%20meta%20including%20custom%20plugin%20data%3F\"><h3>Can I export all meta including custom plugin data?<\/h3><\/dt>\n<dd><p>Yes \u2014 tick <strong>All custom meta<\/strong> in the export options. This captures every key\/value pair stored on the order, regardless of which plugin added it.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20the%20woocommerce%20rest%20api%20format%3F\"><h3>Is this compatible with the WooCommerce REST API format?<\/h3><\/dt>\n<dd><p>The JSON format is specific to Order Porter (it includes extra tracking fields like <code>_opwc_source_id<\/code>). It is not the same as the WooCommerce REST API response format.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Export WooCommerce orders to JSON and import them on another site \u2014 including all custom meta, shipping carrier labels, and third-party plugin fields.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/309477","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=309477"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/optimizedmk"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=309477"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=309477"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=309477"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=309477"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=309477"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=309477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}