Once the job of fulfilling an order has been completed, then OrderFlow needs to inform Magento that this has happened. This serves two purposes.
- to allow the order to be closed off, so that it no longer appears as requiring fulfilment.
- to pass back additional information that may be used for notifying customers of despatch, such as courier details and tracking references.
The shipment import on Magento is triggered at the point where the shipment is marked as picked and packed. Of course, the process of allocating stock, picking and packing will need to take place, but these operations are outside of the scope of this document.
There are a number of ways of marking a shipment as despatched on OrderFlow.
- from the shipment detail screen, using the Despatch button. This allows a single shipment to be marked as despatched.
- from the shipment search screen. This is only possible if configured correctly, and if the search has been limited to 'Packed' shipments. This option allows multiple shipments to be despatched manually.
- manually, using the Despatch -> Bulk Operations -> Despatch menu. This allows all packed shipments to be despatched by courier via single operation.
- automatically via a scheduled job, either at specific time intervals or after a configurable delay.
In the example below, we will navigate to a shipment that has been packed, and despatch it using the Despatch button below:
Once invoked, the outcome is similar to that of the Inventory Import, in that a new message is queued for sending, and will appear listed in the Integration -> Remote Messages -> Search menu.
The specific records will be easily found by applying the additional filters for Category ('API Integration') and Purpose ('Shipment despatched'). Once sent, the shipment will appear on the listing as shown below:
The body of the shipment despatch message contains details of the shipment despatch, the courier used, and the tracking number, if apppropriate.
It also contains a listing of the individual product and quantity combinations that have been included in the shipment.
This allows the extension to support partial fulfilments. If only a part of the initial order has been fulfilled, a shipment will be created for the order in Magento but the order will be kept open for further fulfilment updates.
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="[property:api.magento2.soap.base.url]?services=realtimeDespatchOrderFlowShipmentRequestManagementV1"> <SOAP-ENV:Body> <ns1:realtimeDespatchOrderFlowShipmentRequestManagementV1CreateRequest> <sessionId>[session_authentication_token]</sessionId> <orderIncrementId>000000005</orderIncrementId> <skuQty> <item> <sku>24-MB01</sku> <qty>1</qty> </item> </skuQty> <comment>Shipment Created</comment> <email>1</email> <includeComment>1</includeComment> <courierName>Generic</courierName> <serviceName></serviceName> <trackingNumber></trackingNumber> <dateShipped>2017-03-22 15:25:16</dateShipped> <messageSeqId>[message_id]</messageSeqId> </ns1:realtimeDespatchOrderFlowShipmentRequestManagementV1CreateRequest> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
As soon as the notification request has been sent to Magento, it will be visible in the Magento Admin Panel under the Settings -> OrderFlow Imports -> Requests menu, as shown below.
Again, as with the inventory import, the Processed field is not populated immediately, but is only set once the request has been processed. The timing of this will depend on the configuration settings for the Shipment Import, as described in the Magento Configuration section.
Once Processed is set, the import report log can be viewed. Navigate to Settings -> OrderFlow Imports -> Shipments to this will show the details of the import, which will confirm, as shown below that the shipment has been created.
Navigating to the order within Magento will show the shipment against the order. If no more items need to be fulfilled, the expected behaviour at this point is for the order to be marked as complete.