Ecommerce Shopify WordPress Discussion

Woocommerce Orders API returning "woocommerce_rest_shop_order_exists"

I can't figure out how to get SITE B to accept the order from SITE A I essentially need SITE A to be a proxy of SITE B, sending all orders processed to site Bs orders API using my current code, I get the response: "woocommerce_rest_shop_order_exists" The order IDs are not clashing since site B has set up a test environment for me to test with, so I can see all the orders and their ids, nothing is clashing. I have been asking chat GPT but I feel its time to ask real people Here is the exact error response I am getting: Array ( [headers] => WpOrg\Requests\Utility\CaseInsensitiveDictionary Object ( [data:protected] => Array ( [date] => Sun, 18 Feb 2024 13:02:46 GMT [server] => Apache [x-robots-tag] => noindex [link] => <REMOVED>; rel="https://api.w.org/" [x-content-type-options] => nosniff [access-control-expose-headers] => X-WP-Total, X-WP-TotalPages, Link [access-control-allow-headers] => Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type [allow] => GET, POST [expires] => Wed, 11 Jan 1984 05:00:00 GMT [cache-control] => no-cache, must-revalidate, max-age=0, no-store, private [x-frame-options] => sameorigin [x-xss-protection] => 1; mode=block [referrer-policy] => same-origin [strict-transport-security] => max-age=63072000; preload; [upgrade] => h2,h2c [content-type] => application/json; charset=UTF-8 ) ) [body] => {"code":"woocommerce_rest_shop_order_exists","message":"Kan bestaande shop_order niet aanmaken.","data":{"status":400}} [response] => Array ( [code] => 400 [message] => Bad Request ) [cookies] => Array ( ) [filename] => [http_response] => WP_HTTP_Requests_Response Object ( [response:protected] => WpOrg\Requests\Response Object ( [body] => {"code":"woocommerce_rest_shop_order_exists","message":"Kan bestaande shop_order niet aanmaken.","data":{"status":400}} [raw] => HTTP/1.1 400 Bad Request Date: Sun, 18 Feb 2024 13:02:46 GMT Server: Apache X-Robots-Tag: noindex Link: <REMOVED>; rel="https://api.w.org/" X-Content-Type-Options: nosniff Access-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages, Link Access-Control-Allow-Headers: Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type Allow: GET, POST Expires: Wed, 11 Jan 1984 05:00:00 GMT Cache-Control: no-cache, must-revalidate, max-age=0, no-store, private X-Frame-Options: sameorigin X-XSS-Protection: 1; mode=block Referrer-Policy: same-origin Strict-Transport-Security: max-age=63072000; preload; Upgrade: h2,h2c Connection: Upgrade, close Transfer-Encoding: chunked Content-Type: application/json; charset=UTF-8 {"code":"woocommerce_rest_shop_order_exists","message":"Kan bestaande shop_order niet aanmaken.","data":{"status":400}} [headers] => WpOrg\Requests\Response\Headers Object ( [data:protected] => Array ( [date] => Array ( [0] => Sun, 18 Feb 2024 13:02:46 GMT ) [server] => Array ( [0] => Apache ) [x-robots-tag] => Array ( [0] => noindex ) [link] => Array ( [0] => <REMOVED>; rel="https://api.w.org/" ) [x-content-type-options] => Array ( [0] => nosniff ) [access-control-expose-headers] => Array ( [0] => X-WP-Total, X-WP-TotalPages, Link ) [access-control-allow-headers] => Array ( [0] => Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type ) [allow] => Array ( [0] => GET, POST ) [expires] => Array ( [0] => Wed, 11 Jan 1984 05:00:00 GMT ) [cache-control] => Array ( [0] => no-cache, must-revalidate, max-age=0, no-store, private ) [x-frame-options] => Array ( [0] => sameorigin ) [x-xss-protection] => Array ( [0] => 1; mode=block ) [referrer-policy] => Array ( [0] => same-origin ) [strict-transport-security] => Array ( [0] => max-age=63072000; preload; ) [upgrade] => Array ( [0] => h2,h2c ) [content-type] => Array ( [0] => application/json; charset=UTF-8 ) ) ) [status_code] => 400 [protocol_version] => 1.1 [success] => [redirects] => 0 [url] => <REMOVED> [history] => Array ( ) [cookies] => WpOrg\Requests\Cookie\Jar Object ( [cookies:protected] => Array ( ) ) ) [filename:protected] => [data] => [headers] => [status] => ) ) I am writing a script where when an order is made on site A, it sends it to Site B's woocommerce orders api for them to deal with, package, and ship. here is my current code, I apologise for the mess, this error has been getting to me: function send_order_to_another_site($order_id) { //SITE B API DATA $site_url = 'SITE B URL'; $consumer_key = 'SITE B KEY'; $consumer_secret = 'SITE B SECRET'; // Get site As newly submitted order and store order ID $order = wc_get_order($order_id); $order_id = $order->get_id(); //SITE A API INFO $ck = 'SITE A KEY'; $cs = 'SITE A SECRET'; $store_url = SITE A URL'; // fetch highest order number from SITE B and add 1 $url = $store_url . '/wp-json/wc/v3/orders?consumer_key=' . $consumer_key . '&consumer_secret=' . $consumer_secret . '&per_page=1&orderby=id&order=desc'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); $response = curl_exec($ch); if ($response === false) { echo 'Error: ' . curl_error($ch); exit; } curl_close($ch); $order_data = json_decode($response, true); if (empty($order_data)) { echo 'No orders found.'; exit; } $newOrderNum = $order_data[0]['number']+1; // Fetch New Order object from SITE A $url = $store_url . '/wp-json/wc/v3/orders/' . $order_id . '?consumer_key=SITEAKEY&consumer_secret=SITEASECRET'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',)); $response = curl_exec($ch); if ($response === false) { echo 'Error: ' . curl_error($ch); mail("MY EMAIL","ORDER FAIL",print_r(curl_error($ch),true)); exit; } $order_data1 = json_decode($response, true); if (isset($order_data1['code'])) { echo 'Failed to retrieve order. Error code: ' . $order_data1['code']; mail("MY EMAIL","ORDER FAIL",print_r($order_data1['code'],true)); exit; } else { // Order retrieved successfully // Change all occurrences of Order id for the new order ID of site B $order_data1['id']=$newOrderNum; $order_data1['number']=$newOrderNum; $original_string = $order_data1['payment_url']; $string_to_replace = $order_id.''; $replacement_string = $newOrderNum.''; $order_data1['payment_url'] = str_replace($string_to_replace, $replacement_string, $original_string); foreach($order_data1['links']['self'] as &$link){ if(isset($link['href'])){ $original_string = $link['href']; $string_to_replace = $order_id.''; $replacement_string = $newOrderNum.''; $link['href'] = str_replace($string_to_replace, $replacement_string, $original_string); } } foreach($order_data1['meta_data'] as &$mdat){ if(isset($mdat['key'])) { if($mdat['key']=="_wcpdf_invoice_number_data"){ if(isset($mdat['value'])){ $mdat['value']['order_id']=$newOrderNum; } } } } foreach ($order_data1['line_items'] as &$item) { if($item['parent_name']==null){ $item['parent_name']=""; } foreach ($item['meta_data'] as &$mdata) { if (isset($mdata['display_value'])) { $mdata['display_value'] = ""; } } } unset($mdata); unset($mdat); unset($item); $newData = json_encode($order_data1); } curl_close($ch); // Set request arguments $args = array( 'method' => 'POST', 'headers' => array( 'Authorization' => 'Basic ' . base64_encode($consumer_key . ':' . $consumer_secret), 'Content-Type' => 'application/json' ), 'body' => $newData ); // Make the request $response = wp_remote_post($site_url . '/wp-json/wc/v3/orders', $args); $resp = print_r($response, true); mail("MY EMAIL", "responseData", $resp, ""); // Check for errors if (is_wp_error($response)) { $error_message = $response->get_error_message(); mail("MY EMAIL", "Error", $error_message, ""); echo "Error: $error_message"; } else { // Order created successfully $order = json_decode(wp_remote_retrieve_body($response), true); $ordDeet = print_r($order,true); mail("MY EMAIL", "Success", $ordDeet, ""); echo "Order created successfully. Order ID: " . $order['id']; } } This is the JSON data for the object I am sending: { "id": 11402, "parent_id": 0, "status": "processing", "currency": "EUR", "version": "8.6.0", "prices_include_tax": false, "date_created": "2024-02-18T12:55:28", "date_modified": "2024-02-18T12:55:44", "discount_total": "0.00", "discount_tax": "0.00", "shipping_total": "5.95", "shipping_tax": "0.00", "cart_tax": "0.00", "total": "19.90", "total_tax": "0.00", "customer_id": 7, "order_key": "wc_order_RJdTCaxIsyefI", "billing": { "first_name": "MYNAME", "last_name": "MYSURNAME", "company": "", "address_1": "Torensteeg 1-Torensteeg", "address_2": "", "city": "Amsterdam", "state": "", "postcode": "1012 TH", "country": "NL", "email": "MYEMAIL", "phone": "07984394843" }, "shipping": { "first_name": "MYNAME", "last_name": "MYSURNAME", "company": "", "address_1": "Torensteeg 1-Torensteeg", "address_2": "", "city": "Amsterdam", "state": "", "postcode": "1012 TH", "country": "NL", "phone": "", "naarwie": "", "adreskeuze": "priveadres", "ziekenhuis": "", "afdeling": "", "verdieping": "", "kamer": "" }, "payment_method": "mollie_wc_gateway_ideal", "payment_method_title": "iDEAL", "transaction_id": "ord_1.9akoml", "customer_ip_address": "", "customer_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36", "created_via": "checkout", "customer_note": "", "date_completed": null, "date_paid": "2024-02-18T12:55:38", "cart_hash": "397825dfcb209da19183750323e5cfc3", "number": "11402", "meta_data": [ { "id": 2181, "key": "adreskeuze", "value": "priveadres" }, { "id": 2168, "key": "is_vat_exempt", "value": "no" }, { "id": 2174, "key": "jckwds_date", "value": "19\/02\/2024" }, { "id": 2175, "key": "jckwds_date_ymd", "value": "20240219" }, { "id": 2176, "key": "jckwds_shipping_method", "value": "flat_rate:1" }, { "id": 2177, "key": "jckwds_timeslot", "value": "08:00 - 17:00" }, { "id": 2178, "key": "jckwds_timeslot_id", "value": "0|0.00" }, { "id": 2171, "key": "jckwds_timestamp", "value": "1708326000" }, { "id": 2162, "key": "_billing_house_number", "value": "1" }, { "id": 2163, "key": "_billing_house_number_suffix", "value": "Torensteeg" }, { "id": 2164, "key": "_billing_street_name", "value": "Torensteeg" }, { "id": 2173, "key": "_iconic_wds_is_next_day", "value": "1" }, { "id": 2172, "key": "_iconic_wds_is_same_day", "value": "" }, { "id": 2196, "key": "_mollie_customer_id", "value": "cst_FHbnGvvSNq" }, { "id": 2193, "key": "_mollie_order_id", "value": "ord_1.9akoml" }, { "id": 2205, "key": "_mollie_paid_and_processed", "value": "1" }, { "id": 2194, "key": "_mollie_payment_id", "value": "tr_bh3fYpRHqi" }, { "id": 2197, "key": "_mollie_payment_instructions", "value": "Payment completed by <strong>T. TEST<\/strong> (IBAN (last 4 digits): 4588, BIC: NNBANL2G)" }, { "id": 2195, "key": "_mollie_payment_mode", "value": "test" }, { "id": 2165, "key": "_shipping_house_number", "value": "1" }, { "id": 2166, "key": "_shipping_house_number_suffix", "value": "Torensteeg" }, { "id": 2167, "key": "_shipping_street_name", "value": "Torensteeg" }, { "id": 2180, "key": "_thwcfe_disabled_fields", "value": "shipping_company,ziekenhuis,afdeling,verdieping,kamer" }, { "id": 2179, "key": "_thwcfe_ship_to_billing", "value": "0" }, { "id": 2200, "key": "_wcpdf_invoice_creation_trigger", "value": "email_attachment" }, { "id": 2201, "key": "_wcpdf_invoice_date", "value": "1708257328" }, { "id": 2202, "key": "_wcpdf_invoice_date_formatted", "value": "202 4-02-18 12:55:28" }, { "id": 2199, "key": "_wcpdf_invoice_display_date", "value": "order_date" }, { "id": 2203, "key": "_wcpdf_invoice_number", "value": "50" }, { "id": 2204, "key": "_wcpdf_invoice_number_data", "value": { "number": 50, "formatted_number": "50", "prefix": "", "suffix": "", "document_type": "invoice", "order_id": 11402, "padding": "" } }, { "id": 2198, "key": "_wcpdf_invoice_settings", "value": { "display_shipping_address": "always", "display_email": "1", "display_phone": "1", "display_customer_notes": "1", "display_date": "order_date", "due_date": "", "display_number": "invoice_number", "header_logo": "", "header_logo_height": "1cm", "vat_number": { "default": "" }, "coc_number": { "default": "67599389" }, "shop_name": { "default": "SITEAURL.nl" }, "shop_address": { "default": "Nieuwe Langeweg 123\r\n3194 DC Hoogvliet" }, "footer": { "default": "" }, "extra_1": { "default": "" }, "extra_2": { "default": "" }, "extra_3": { "default": "" } } }, { "id": 2192, "key": "_wc_order_attribution_device_type", "value": "Desktop" }, { "id": 2183, "key": "_wc_order_attribution_referrer", "value": "https:\/\/www.mollie.com\/" }, { "id": 2190, "key": "_wc_order_attribution_session_count", "value": "4" }, { "id": 2187, "key": "_wc_order_attribution_session_entry", "value": "https:\/\/www.SITEAURL.nl\/afrekenen\/order-received\/11400\/?key=wc_order_ry9J7sDPtetxJ&utm_nooverride=1" }, { "id": 2189, "key": "_wc_order_attribution_session_pages", "value": "4" }, { "id": 2188, "key": "_wc_order_attribution_session_start_time", "value": "2024-02-16 20:23:53" }, { "id": 2182, "key": "_wc_order_attribution_source_type", "value": "referral" }, { "id": 2191, "key": "_wc_order_attribution_user_agent", "value": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/121.0.0.0 Safari\/537.36" }, { "id": 2186, "key": "_wc_order_attribution_utm_content", "value": "\/" }, { "id": 2185, "key": "_wc_order_attribution_utm_medium", "value": "referral" }, { "id": 2184, "key": "_wc_order_attribution_utm_source", "value": "mollie.com" } ], "line_items": [ { "id": 112, "name": "baby boy", "product_id": 10221, "variation_id": 0, "quantity": 1, "tax_class": "", "subtotal": "13.95", "subtotal_tax": "0.00", "total": "13.95", "total_tax": "0.00", "taxes": [], "meta_data": [ { "id": 1060, "key": "_tmdata", "value": [ { "tmcp_post_fields": { "tmcp_select_0": "" }, "product_id": 10221, "per_product_pricing": true, "cpf_product_price": "13.95", "variation_id": false, "form_prefix": "", "tc_added_in_currency": "EUR", "tc_default_currency": "EUR" } ], "display_key": "_tmdata", "display_value": [ { "tmcp_post_fields": { "tmcp_select_0": "" }, "product_id": 10221, "per_product_pricing": true, "cpf_product_price": "13.95", "variation_id": false, "form_prefix": "", "tc_added_in_currency": "EUR", "tc_default_currency": "EUR" } ] }, { "id": 1061, "key": "_tmpost_data", "value": [ { "tm-epo-counter": "1", "tcaddtocart": "10221", "tmcp_select_0": "", "cpf_product_price": "13.95", "tc_form_prefix": "", "quantity": "1", "wd-add-to-cart": "10221" } ], "display_key": "_tmpost_data", "display_value": [ { "tm-epo-counter": "1", "tcaddtocart": "10221", "tmcp_select_0": "", "cpf_product_price": "13.95", "tc_form_prefix": "", "quantity": "1", "wd-add-to-cart": "10221" } ] }, { "id": 1062, "key": "_alg_ean", "value": "071444879996", "display_key": "EAN", "display_value": "071444879996" }, { "id": 1069, "key": "_reduced_stock", "value": "1", "display_key": "_reduced_stock", "display_value": "1" } ], "sku": "16affd24bacf", "price": 13.95, "image": { "id": "9963", "src": "https:\/\/www.SITEAURL.nl\/wp-content\/uploads\/2023\/12\/geboorte-1.png" }, "parent_name": null } ], "tax_lines": [], "shipping_lines": [ { "id": 113, "method_title": "Verzendkosten", "method_id": "flat_rate", "instance_id": "1", "total": "5.95", "total_tax": "0.00", "taxes": [], "meta_data": [ { "id": 1068, "key": "Artikelen", "value": "baby boy × 1", "display_key": "Artikelen", "display_value": "baby boy × 1" } ] } ], "fee_lines": [], "coupon_lines": [], "refunds": [], "payment_url": "https:\/\/www.SITEAURL.nl\/afrekenen\/order-pay\/11402\/?pay_for_order=true&key=wc_order_RJdTCaxIsyefI", "is_editable": false, "needs_payment": false, "needs_processing": true, "date_created_gmt": "2024-02-18T11:55:28", "date_modified_gmt": "2024-02-18T11:55:44", "date_completed_gmt": null, "date_paid_gmt": "2024-02-18T11:55:38", "iconic_delivery_meta": { "date": "19\/02\/2024", "time": "08:00 - 17:00", "timeslot_id": "0|0.00", "timestamp": "1708326000", "ymd": "20240219", "override_rules": "", "shipping_method": "flat_rate:1" }, "currency_symbol": "\u20ac", "_links": { "self": [ { "href": "https:\/\/www.SITEAURL.nl\/wp-json\/wc\/v3\/orders\/11402" } ], "collection": [ { "href": "https:\/\/www.SITEAURL.nl\/wp-json\/wc\/v3\/orders" } ], "customer": [ { "href": "https:\/\/www.SITEAURL.nl\/wp-json\/wc\/v3\/customers\/7" } ] } }
TurboCommerce make the better internet purchasing globaly

Turbo Multi-language Translator

Make the better internet purchasing globaly

Turbosify SEO Speed Booster

5.0 (7) Free plan available
Get better conversions by improving store loading speed Installed

Turbo Multi-language Chat - AI Customer service in one hand

TurboCommerce make the better internet purchasing globaly
Our products

The help you need, when you need it

App by Turbo Engine

3 apps • 5.0 average rating

Turbosify Speed Booster

5.0 (7)
Get better conversions by optimizing shopify store Google page speed Installed

Turbosify Translator for Wordpress Woocommerce

5.0 (74) Free Wordpress Woocommerce Plugin
Translate your wordpress website to multiple language within 1 click, no configuration needed, no No technical required

Grow your business here

Whether you want to sell products down the street or around the world, we have all the tools you need.