Marketplaces / ASOS - Technical Scope / ASOS Order Management / ASOS - Ship Orders

ASOS - Ship Orders

The purpose of this page is to describe the shipment process on MIRAKL.

To ship an order, the order must be accepted & tool status “Ready for shipping“.

Once we have Orders > Update Shipping Pending = Yes, first we need to update the shipping details (Courier, Tracking, Tracking URL) using OR23 then we just mark the order as shipped in Mirakl with OR24 but before all this happen we need to validate the shipping details. In order to do so we check if the Orders > Courier is part from the Mirakl shipping list (SH21).

At the moment when sending shipping updates to Asos, we are using the courier from Order Shipments > Carrier We want to introduce Courier mapping. Thus we need to create a slave table under Courier called “Asos Courier Mapping”. In this table we need to have a dropdown field with all the carriers.

field name notes
Asos Courier This should be a drop-down menu with the carriers which we get with the GET SH21 - List all carriers. ASOS - Ship Orders. We need to send the carrier_code related to the carrier as well.

Have all this structure the mapping will works based on: If Order Shipment > Carrier match Courier > Name we send the selected courier from Asos Courier Mapping > Asos Courier

We also would like to introduce a default case in Account Asos called “Default Carrier” where again the same list with carriers (GET SH21 - List all carriers.) to be displayed and to be able to select on specific carrier.

This way the logic will be first we are checking if there is any mapping set in Asos Courier Mapping and if we match any of the couriers. If not We are checking if there is default carrier set in Account Asos. If not error to be returned.

We want to be doing this mapping when sending the actual shipping update to the marketplace, so there will be no changes in the record created in Orders > Order Shipments table and we will create the record as we do with our current functionality.

This will be our pilot mapping for a Mirakl integration and ideally we would want to implement it across all Mirakl integrations at some point.

Please note it would be good if we can have button to update the carriers in Asos Courier Mapping table.

  • GET SH21 - List all carriers

With this call we get all carriers that we could ship with. Please, bear in mind, If we do not match any courier we are shipping with “other“ carrier we have to push carrier code as “Other“ with carrier name (Order Shipment > Carrier) and tracking num (Order Shipment> Tracking Number)

API Call: /api/shipping/carriers

API Docs: https://asosuk-dev.mirakl.net/help/api-doc/seller/mmp.html#SH21

{
    "carriers": [
        {
            "code": "20-FED",
            "label": "Fed Ex",
            "tracking_url": "http://www.fedex.com/Tracking?action=track&tracknumbers={trackingId}&zipcode={zipCode}"
        },
        {
            "code": "45-UPS",
            "label": "UPS",
            "tracking_url": "https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums={trackingId}"
        },
        {
            "code": "23-EVRI",
            "label": "EVRI",
            "tracking_url": "https://www.evri.com/track/receipt/{trackingId}/list"
        }
    ]
}
  • PUT OR23 - Update carrier tracking information for a specific order.

Via this call, we should push to order the reuired information as stated into the below example.

API Call: /api/orders/{order_id}/tracking

API Docs: https://asosuk-dev.mirakl.net/help/api-doc/seller/mmp.html#OR23

Parameters:

Parameter Value Required
order_id String
Order identifier Yes

Example Call:

{
  "carrier_code": "UPS",
  "carrier_name": "UPS",
  "carrier_url": "https://ups.com",
  "tracking_number": 5555
}

Mapping:

Integration Field Integration Notes Integration required Hemi Mapping Note
carrier_code String
The code of a carrier. This information is mandatory for a registered carrier. N N/A We Get this from the Shipping List if we match our Order Shipment > Courier with the label
carrier_name String
The name of a carrier. This information is mandatory for an unregistered carrier. Y N/A We Get this from the Shipping List if we match our Order Shipment > Courier with the label
carrier_url String
The tracking url of a carrier. This information is unused for registered carriers (because computed automatically). This information is optional for unregistered carriers. Y N/A We Get this from the Shipping List if we match our Order Shipment> Courier with the label
tracking_number String
The carrier tracking number. This information is mandatory for a registered carrier with a URL requiring a tracking number. Y Order Shipment > Tracking Number

Example Call with “Other“:

{
  "carrier_code": "Other",
  "carrier_name": "UPS",
  "carrier_url": "https://ups.com",
  "tracking_number": 5555
}

Mapping with Other:

Integration Field Integration Notes Integration required Hemi Mapping Note
carrier_code String
The code of a carrier. This information is mandatory for a registered carrier. N Hardcoded as “Other“
(If there is no match with the ASOS carrier list)
carrier_name String
The name of a carrier. This information is mandatory for an unregistered carrier. Y Order Shipment > Courier
carrier_url String
The tracking url of a carrier. This information is unused for registered carriers (because computed automatically). This information is optional for unregistered carriers. Y Order Shipment >Tracking URL
tracking_number String
The carrier tracking number. This information is mandatory for a registered carrier with a URL requiring a tracking number. Y Order Shipment > Tracking Number
  • PUT OR24 - Validate the shipment of an order

Using this call we simply make a validation of the shipment, after success, the status of the order in Hemi will be “Shipped“

API Call: /api/orders/{order_id}/ship

API Docs: https://asosuk-dev.mirakl.net/help/api-doc/seller/mmp.html#OR24

Parameters:

Parameter Value Required
order_id String
Order identifier Yes

*Note:** OR23 & OR24 API calls should be incorporated into 1 cron! First we update shipping information (OR23) and then we should validate the shipment (OR24).

Because Mirakl do no support partial shipping we still need to add the shipments in the order but will always ship the full order. However we might have the case where the order will be shipped on Mirakl so we will have to add additional case where if we receive error:

{ "message": "Cannot mark the order with id 'DUX004667443-A' to the new status. Current status is 'SHIPPED', expected is one of '[SHIPPING]'.", "status": 400 }

Again to update our orders > tool status as “Shipped”.

Is this article helpful?
0 0 0