Correct ShippingServiceCost may not be returned for international buyers prior to Checkout
Find the answer to your question
Please enter a search keyword.
Advanced Search
Products
Question
Question: Sometimes GetItemTransactions does not return the international ShippingServiceCost in the SelectedShippingService container for international buyers. Why does this happen?
Answer
Summary
Answer: It is a product limitation that GetItemTransactions and GetSellerTransactions may not return the correct ShippingServiceSelected.ShippingServiceCost for international buyers based on their default shipping address. You should not use the information returned in ShippingServiceSelected till the buyer has completed checkout. Once the buyer completes checkout, it will return the correct information if the transaction is not a part of an order.
Detailed Description
Consider that you listed an Item on eBay US for a US seller with the following shipping services:
<ShippingDetails>
<ShippingServiceOptions>
<ShippingService>USPSParcel</ShippingService>
<ShippingServiceCost currencyID="USD">23.0</ShippingServiceCost>
<ShippingServiceAdditionalCost currencyID="USD">0.0</ShippingServiceAdditionalCost>
<ShippingServicePriority>1</ShippingServicePriority>
</ShippingServiceOptions>
<InternationalShippingServiceOption>
<ShippingService>UPSWorldWideExpress</ShippingService>
<ShippingServiceCost currencyID="USD">20.0</ShippingServiceCost>
<ShippingServiceAdditionalCost currencyID="USD">0.0</ShippingServiceAdditionalCost>
<ShippingServicePriority>1</ShippingServicePriority>
<ShipToLocation>DE</ShipToLocation>
</InternationalShippingServiceOption>
</ShippingDetails>
Now lets say a German buyer purchases the item and you call GetItemTransactions / GetSellerTransactions before the buyer completes checkout. You will most likely see the following in the ShippingServiceSelected:
<Status> <eBayPaymentStatus>NoPaymentFailure</eBayPaymentStatus> <CheckoutStatus>CheckoutIncomplete</CheckoutStatus> <LastTimeModified>2006-10-04T18:14:29.000Z</LastTimeModified> <PaymentMethodUsed>None</PaymentMethodUsed> <CompleteStatus>Incomplete</CompleteStatus> <BuyerSelectedShipping>false</BuyerSelectedShipping> </Status> <TransactionID>0</TransactionID> <TransactionPrice currencyID="USD">10.0</TransactionPrice> <BestOfferSale>false</BestOfferSale> <ShippingServiceSelected> <ShippingInsuranceCost currencyID="USD">0.0</ShippingInsuranceCost> <ShippingService>USPSParcel</ShippingService> <ShippingServiceCost currencyID="USD">23.0</ShippingServiceCost> </ShippingServiceSelected>Instead of selecting UPSWorldWideExpress, it selects the domestic shipping service. The key to this lies in the Status.CheckoutStatus tag. If it is CheckoutIncomplete, you should ignore the information. It is only when it changes to CheckoutComplete that you should process the information.
If you need the information prior to Checkout, you need to look at the Buyer's default Shipping Address returned in the response, and try and match a ShippingService for that address. In our example, since the Buyer has a German Shipping Address, it would be UPSWorldWideExpress and the ShippingServiceCost would be USD 20.
Additional Resources
- Knowledge Base Article: ShippingServiceSelectedCost is returned as 0 in GetItemTransactions