I am calling the AddItemFromSellingManagerTemplate which the documentation says simply needs the SaleTemplateID to create an active listing for the corresponding template.
However for ‘SOME’ calls I keep getting an error code back which says 21916389 – Handling time is required.
Before anyone shouts at me to check the documentation… I do know that the Item ‘DispatchTimeMax’ field is where you specify the Handling Time and it I do know that it is now a requirement for all listings. The DispatchTimeMax is definitely set in the selling manager template I am trying to list. I can list from the selling template directly through the eBay backend with no errors… but obviously I need it to be done via the API.
The annoying thing is that the code calling this works for some selling manager templates but not for others. The selling manager templates are created in exactly the same way (in code).
Some context:
- Although I am coding in PHP and using a third party library, to debug this I am making the calls to the web service using RAW crafted xml suing CURL.
- I was using version 729 of the API but I have changed to the latest version 815. No difference.
-
For what its worth here is the XML I’m using
<?xml version="1.0" encoding="utf-8"?> <AddItemFromSellingManagerTemplateRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <RequesterCredentials> ... </RequesterCredentials> <Version>815</Version> <SaleTemplateID>[SALETEMPLATEID INSERTED HERE]</SaleTemplateID> </AddItemFromSellingManagerTemplateRequest>
Does anyone know of some subtle trick I need to get this to work 100% of the time?
3
Answers
If you go to the selling manager pro, edit the template and just save it (without changing anything), the AddItemFromSellingManagerTemplate will work. I didn’t find any rational answer too.
Another thing is I keep send the AddItemFromSellingManagerTemplate till it goes through and adds the item (usually 3 or 4 times). I guess this is because of the 807 2013-01-23 update to Trading API to make DispatchTimeMax mandatory.
See http://developer.ebay.com/DevZone/xml/docs/Reference/ebay/AddSellingManagerTemplate.html#ChangeHistory
The solution I came up with is to put AddItemFromSellingManagerTemplate into a loop till Ack == ‘Success’. Hopefully it will help.
Try this
Item.DispatchTimeMax Data type —Int
Specifies the maximum number of business days the seller commits to for preparing an item to be shipped after receiving a cleared payment. This time does not include the shipping time (the carrier’s transit time).
For the AddItem family of calls: Required for listings in certain categories when certain shipping services (with delivery) are offered. See HandlingTimeEnabled in GetCategoryFeatures. The seller sets this field to a positive integer value indicating the number of days. For a list of allowed values on each eBay site, use GeteBayDetails with DetailName set to DispatchTimeMaxDetails. (Typical values are 0, 1, 2, 3, 4, 5, 10, 15, or 20, but this can vary by site and these may change over time.)
Valid for flat and calculated shipping. Does not apply when there is no shipping, when it is local pickup only or when it is freight shipping. For example, when ShippingService=Pickup or ShipToLocations=None, then DispatchTimeMax is not required.
A DispatchTimeMax value of 0 indicates same day handling for an item. In this case, the seller’s shipping commitment depends on the order cut off time set in the seller’s user preferences. This defaults to 2:00 PM local time on most sites, which can be overridden by using SetUserPreferences to set DispatchCutoffTimePreference.CutoffTime for the eBay site on which the item is listed. For orders placed (and cleared payment received) before the local order cut off time, the item must be shipped by the end of the current day. For orders completed on or after the order cut off time, the item must be shipped by the end of the following day (excluding weekends and local holidays).