cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

CompleteSaleCall has issue where it only marks the order as shipped but does not save tracking info

The ebay API CompleteSaleCall for updating tracking details has an issue in the last day where it only marks the order as shipped but does not save the tracking details. Example with the request:

?xml version="1.0" encoding="utf-8"?
soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:Header
RequesterCredentials xmlns="urn:ebay:apis:eBLBaseComponents"
eBayAuthToken******/eBayAuthToken
/RequesterCredentials
/soap:Header
soap:Body
CompleteSaleRequest xmlns="urn:ebay:apis:eBLBaseComponents"
MessageIDe647f56b-b0b3-4524-95e1-ad71f11XXXXX/MessageID
Version1131/Version
ItemID2043202XXXXX/ItemID
Shippedtrue/Shipped
Shipment
ShippingCarrierUsedDHL/ShippingCarrierUsed
ShippingServiceUsedEconomy/ShippingServiceUsed
ShipmentTrackingNumber9261290223352704XXXXXX/ShipmentTrackingNumber
ShippedTime2023-06-29T13:20:08.6199067-04:00/ShippedTime
/Shipment
OrderID07-10232-XXXXX/OrderID
/CompleteSaleRequest
/soap:Body
/soap:Envelope

and response is success:

?xml version="1.0" encoding="UTF-8"?
soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
soapenv:Header
ebl:RequesterCredentials soapenv:mustUnderstand="0" xmlns:ns="urn:ebay:apis:eBLBaseComponents" xmlns:ebl="urn:ebay:apis:eBLBaseComponents"
ebl:HardExpirationWarning xmlns:ebl="urn:ebay:apis:eBLBaseComponents"2023-06-30 01:08:48/ebl:HardExpirationWarning
/ebl:RequesterCredentials
/soapenv:Header
soapenv:Body
CompleteSaleResponse xmlns="urn:ebay:apis:eBLBaseComponents"
Timestamp2023-06-29T17:20:34.915Z/Timestamp
AckSuccess/Ack
CorrelationIDe647f56b-b0b3-4524-95e1-ad71f115b238/CorrelationID
Version1319/Version
BuildE1289_CORE_APIXO_19220561_R1/Build
HardExpirationWarning2023-06-30 01:08:48/HardExpirationWarning
/CompleteSaleResponse
/soapenv:Body
/soapenv:Envelope

and I can see the order is marked shipped, however, it is missing tracking details when looking at the order in ebay.

Up until yesterday, this was not a problem for years.

Message 1 of 3
latest reply
1 BEST ANSWER

Accepted Solutions

CompleteSaleCall has issue where it only marks the order as shipped but does not save tracking info

Just spent 2 hours fixing this exact issue in my application.

 

The problem is using a deprecated feature that was officially dropped in 2009 but has still worked up until 48 hours ago. In the change history this is what is now being enforced:

 

0635
2009-09-16
  • Shipment (modified): The ShippingCarrierUsed and ShipmentTrackingNumber elements have been grouped into the new ShipmentTrackingDetails container, which is returned as a node within the Shipment container. ShipmentTrackingDetails is a repeatable container, allowing you to list details for multiple packages shipped for a single item purchased by a buyer. With this refinement, ShippingCarrierUsed and ShipmentTrackingNumber are no longer returned as individual child elements of Shipment.

    If ShippingCarrierUsed and ShipmentTrackingNumber are passed in the request as individual child elements of Shipment (e.g., Shipment.ShipmentTrackingNumber), they are ignored.

 

You therefore MUST now pass ShippingCarrierUsed and ShipmentTrackingNumber requests, inside the ShipmentTrackingDetails container - otherwise the tracking numbers will be ignored and not updated.

 

It is not necessary to specify lineitem details in each request (unless the Global shipping program has been used on that order) - but you must put at least the number of entries in corresponding to the number of lines for that order. If you only put one entry in the container for the tracking number / carrier then if the order has more than one line, only the first line will have it's tracking number updated.

 

Also note it doesn't seem to matter if you put more tracking number entries in the container than there are lines on the order - it will just update the appropriate number of lines in the order, but you must have at least the number of entries in as there are lines on the order for all the lines to be updated with the tracking numbers.

View Best Answer in original post

Message 2 of 3
latest reply
2 REPLIES 2

CompleteSaleCall has issue where it only marks the order as shipped but does not save tracking info

Just spent 2 hours fixing this exact issue in my application.

 

The problem is using a deprecated feature that was officially dropped in 2009 but has still worked up until 48 hours ago. In the change history this is what is now being enforced:

 

0635
2009-09-16
  • Shipment (modified): The ShippingCarrierUsed and ShipmentTrackingNumber elements have been grouped into the new ShipmentTrackingDetails container, which is returned as a node within the Shipment container. ShipmentTrackingDetails is a repeatable container, allowing you to list details for multiple packages shipped for a single item purchased by a buyer. With this refinement, ShippingCarrierUsed and ShipmentTrackingNumber are no longer returned as individual child elements of Shipment.

    If ShippingCarrierUsed and ShipmentTrackingNumber are passed in the request as individual child elements of Shipment (e.g., Shipment.ShipmentTrackingNumber), they are ignored.

 

You therefore MUST now pass ShippingCarrierUsed and ShipmentTrackingNumber requests, inside the ShipmentTrackingDetails container - otherwise the tracking numbers will be ignored and not updated.

 

It is not necessary to specify lineitem details in each request (unless the Global shipping program has been used on that order) - but you must put at least the number of entries in corresponding to the number of lines for that order. If you only put one entry in the container for the tracking number / carrier then if the order has more than one line, only the first line will have it's tracking number updated.

 

Also note it doesn't seem to matter if you put more tracking number entries in the container than there are lines on the order - it will just update the appropriate number of lines in the order, but you must have at least the number of entries in as there are lines on the order for all the lines to be updated with the tracking numbers.

Message 2 of 3
latest reply

CompleteSaleCall has issue where it only marks the order as shipped but does not save tracking info

As a follow up to this, eBay have made further changes and you must also now specify tracking number updates per line item - it doesn't seem possible to do this at the order level anymore, even if you pass multiple ShipmentTrackingNumber requests inside the ShipmentTrackingDetails container.

 

To update tracking numbers you will need to call CompleteSale with a OrderLineItemID or ItemID/TransactionID reference rather than with OrderID. You will need to make the call for each line in the order to update all the tracking numbers for that order.

 

They basically have completely broken the purpose of using OrderID to make an 'order-level' update.

Message 3 of 3
latest reply