A recent Shopify admin interface change has removed the visibility of the fulfilmentOrderID from both the UI and URL path. Previously, clicking “Fulfill item” opened a separate page with the ID visible in the URL (e.g., /orders/123456/fulfillment_orders/7890123).
Impact:
The ID was used as an identifier for shipping providers
Enabled automatic tracking information updates via API
Critical for existing logistics workflows
Current workaround:
Using Shopify Flow to fetch the fulfilmentOrderID and save it as an order note
This solution is cumbersome and fails when splitting fulfillments
Request:
Seeking methods to restore visibility of the fulfilmentOrderID in the UI or URL without installing additional apps. The issue remains unresolved with no responses yet.
Summarized with AI on October 30.
AI used: claude-sonnet-4-5-20250929.
We rely on the “fulfilmentOrderID” for our logistics processes. Until a few days ago, this fulfilment order id was visible in the URL. We were able to open a separate page by clicking on “Fulfill item”. The URL path looked something like this: /orders/123456/fulfillment_orders/7890123
We then took the fulfilment order id (e.g. 7890123), and used it as the identifier for our shipping provider. This allowed us to update tracking information etc. automatically via API.
Now this fulfilmentOrderID is impossible to see on the UI or in the URL. Are there any ways to make this visible in the UI or URL?
Cheers
TJ
__
PS: Our short term workaround was to create a flow in shopify flow that will fetch the fulfilmentOrderId and then save it as a order note. This is however cumbersome, and will not work whenever we split fulfilments.
PPS: Please don’t suggest any solution that requires us to install new apps.
Great, thank you for your help. I actually need the fulfillmentOrderId and not the fulfillmentID. But the proposed concept to create a Bookmarklet has helped me regardless.
If anyone is looking for a similar solution, here’s the Bookmarklet that I have added to Google Chrome. Disclaimer: I’m not a developer and it was written by ChatGPT, so it might not be the most sustainable/robust code.
javascript:(function(){const fulfillmentCards=document.querySelectorAll('.Polaris-Card:has([id^="CREATE_FULFILLMENT-"])');if(fulfillmentCards.length===0){alert("No unfulfilled sections with Fulfillment Order IDs found.");return}let htmlContent='<div style="font-family: Arial, sans-serif; padding: 20px; background: #fff;%20border:%201px%20solid%20#ccc;%20border-radius:%205px;%20box-shadow:%200%206px%2016px%20rgba(0,0,0,0.3);%20max-width:%20500px;%20max-height:%2090vh;%20overflow-y:%20auto;%22%3E';htmlContent+='%3Ch3%20style=%22margin-top:%200;%20color:%20#333;%20border-bottom:%201px%20solid%20#eee;%20padding-bottom:%2010px;%22%3EFulfilment%20IDs%20to%20Copy%3C/h3%3E';let%20fulfillmentCount=1;fulfillmentCards.forEach(card=%3E{const%20fulfillmentButton=card.querySelector('[id^=%22CREATE_FULFILLMENT-%22]');if(!fulfillmentButton)return;const%20fullId=fulfillmentButton.id;const%20fulfillmentIdMatch=fullId.match(/(\d+)$/);const%20fulfillmentId=fulfillmentIdMatch?fulfillmentIdMatch[1]:'ID_NOT_FOUND';const%20lineItemElements=card.querySelectorAll('._LineItemContainer_y6zui_22');const%20itemDetails=[];lineItemElements.forEach(itemEl=%3E{const%20quantityElement=itemEl.querySelector('.Polaris-Tag__Text%20.Polaris-Box%20span');const%20quantity=quantityElement?quantityElement.textContent.trim():'N/A';const%20productNameElement=itemEl.querySelector('h3%20a');const%20productName=productNameElement?productNameElement.textContent.trim():'N/A';itemDetails.push(%60${quantity}%20x%20${productName}%60)});const%20detailsString=itemDetails.join('%20|%20');htmlContent+=%60%3Cdiv%20style=%22margin-bottom:%2015px;%22%3E%3Clabel%20style=%22display:%20block;%20font-weight:%20bold;%20margin-bottom:%205px;%20font-size:%2014px;%20color:%20#1e3a8a;%22%3EFulfilment%20${fulfillmentCount}%20(${detailsString})%3C/label%3E%3Cinput%20type=%22text%22%20value=%22${fulfillmentId}%22%20readonly%20style=%22width:%20100%;%20padding:%208px;%20border:%201px%20solid%20#ccc;%20border-radius:%204px;%20box-sizing:%20border-box;%20background:%20#f0f4f8;%20font-family:%20monospace;%20font-size:%2015px;%22%20onclick=%22this.select();%22%3E%3C/div%3E%60;fulfillmentCount++});htmlContent+='%3Cbutton%20onclick=%22document.getElementById(\'shopify-copy-modal\').remove()%22%20style=%22width:%20100%;%20padding:%2010px;%20margin-top:%2015px;%20background:%20#5c6ac4;%20color:%20white;%20border:%20none;%20border-radius:%204px;%20cursor:%20pointer;%20font-size:%2015px;%20font-weight:%20bold;%22%3EClose%3C/button%3E';htmlContent+='%3C/div%3E';const%20modal=document.createElement('div');modal.id='shopify-copy-modal';modal.style.cssText='position:%20fixed;%20top:%2020px;%20right:%2020px;%20z-index:%2099999;%20max-width:%20500px;';modal.innerHTML=htmlContent;document.body.appendChild(modal);const%20firstInput=modal.querySelector('input');if(firstInput){firstInput.select()}})()```