open-api
open-api copied to clipboard
[BUG]: The updateListing endpoint not changing materials for certain products
Is there an existing issue for this?
- [X] I have searched the existing issues
Describe the bug
I am trying to set materials for a listing via updateListing endpoint but materials are not modified
Steps to reproduce
hit
https://openapi.etsy.com/v3/application/shops/10779725/listings/540678554
with
{ "materials": ["Gio"] }
The response is { ..., "materials": ["Ceramic"], ... }
Expected behavior
Modify materials with the value provided in the payload
Additional context
The same happens for a bunch of active listings belonging to this shop: 10779725
This is working via API: https://www.etsy.com/listing/532247579/dog-dad-fathers-day-gift-for-dog-dad?click_key=c2fe27a7a897be98bb30e7d11880194622fe8d00%3A532247579&click_sum=53baedac&ga_search_query=DOG%2BDAD%252C%2BFATHER%2526%252339%253BS%2BDay%2BGift%2Bfor%2BDog%2BDad%252C%2BFunny%2BDog%2BDad%2BMug&ref=shop_items_search_1
Seems to be random
We are looking into this. I am able to duplicate it with one listing but not with others. It's like it's locked to Ceramic on this one listing. Will let you know when we can figure it out.
I am encountering this as well. When I submit new materials, the materials show up correctly in the Etsy admin UI, but the API still returns incorrect materials for the Listing->materials field. For my products, it appears to be somehow tied to the "General Material" property that is also attached to the listing. For products that have a "General Material" (property id 47626760362) specified, the API seems to be returning the "General Material" instead of the comma-delimited list of materials.
@yovasx2 The taxonomy properties at least for category 1062 (mugs) are set to a specific list of materials. That taxonomy property is set to supports_variations
as false
. This means that for the property on the listing, you can only use the possible values.
@sowsinsk I'm not sure what taxonomy category you are using. I can't really look it up by a property value.
@etsyachristensen I'll try and clarify what's happening on our end.
When we PUT to https://openapi.etsy.com/v3/application/shops/{{etsy_shop_id}}/listings/1257453708 with the payload "materials=stone,onyx", the update succeeds and our new materials list appears in Etsy's admin console:
However, if we then GET https://openapi.etsy.com/v3/application/listings/1257453708 (to pull a fresh copy of the listing), the updated materials are not shown in the result. Instead, it shows a single "Gemstone" value:
Other things to note:
- this listing is taxonomy id 6238
- the result of the update (PUT) operation shows the same incorrect listing object as the fresh GET request does.
- taxonomy 6238 has a "General material" property with one of the possible_values being "Gemstone". This is the value that is currently selected for that property on the listing above. So one possibility is that the getListing call (and updateListing result) are showing the "General material" property where we would expect the array of
Listing->materials
to be.
Thanks for looking into it!
@yovasx2 and @sowsinsk - Sorry it took so long to get to the bottom of this one. There was a change made some time back that added a new property to some taxonomies. the new property is "General Material". The intent was that this would replace the "materials" on the listing object, but instead it ended up becoming just another property. So if you want to manage the "General Material" you can do so with the updateListingProperty endpoint. We've now adjusted the get listing endpoints to return the materials as the array of strings as it should be.
This is working perfectly, thx for fixing it, @etsyachristensen you are on a roll