I was having a small API integration, which was archiving products with 0 stock from the website. All of sudden yesterday it broke with
" [403] ForbiddenError: User is not authorized to perform this action: Cannot complete operation for the ecommerce collection [SKUs] with this endpoint."
Previously it was based on “collections” endpoint.
The change seems to be going in the right direction, but I could find 0 info about endpoint change in the Change Log or for that matter anywhere…
Is Webflow announcing anywhere changes to API or just throwing them to Production? It is hard to think to build serious feature if things stop working all of sudden
Yeah! this is an awesome update! I was sniffing around in the api wondering how they had got shippo cranking and there it was. The changelog says the update was in March 2020. There have been no emails or posts on this at all. Must be a soft release . My specialty too
This is because the endpoint changed from being regular collection endpoint to:
/sites/:site_id/products/:product_id/skus/:sku_id
Not sure if Zapier allows you to change the endpoint. I am using Integromat and the “Make API Call” module - which allows for sort of direct API calls.
Webflow needs to start treating the development side of things a bit more seriously. What’s the point of having an “api-version” header being required but not making use of it? That change probably broke all the apps that interacted somehow with the “update product” endpoint. Clients could lose a LOT of money because of something like that, specially those who sell products that have their prices changed each second/minute.
It’s sad to see the focus on the “design” side of the platform but the api being left behind or treated poorly. Even the SDK implementation for javascript, it’s been missing several integrations for a long time.
[403] ForbiddenError: User is not authorized to perform this action: Cannot complete operation for the ecommerce collection [E-commerce Products] with this endpoint.
The “native” Integromat-Webflow modules are having a lot of issues - so if you are using those it might the reason. I am able to update the e-commerce products using the “Make API Call” module.
What I crossed out on screen below is the store id.
I tried this with and without quotes around fields, but neither transmitted any data. Is your setup passing data successfully from Airtable to Webflow?
Is it giving you a schema error? My impressions is that the “Name” field is actually “name”. The fields are small caps in schema. What you see is not what you get
Otherwise please check the endpoint. For each e-commerce item you actually have at least 2 items - Product and underlying SKU (one or more SKUs).
It looks like there are actually 2 endpoints for Product and SKU:
/sites/:site_id/products/:product_id
/sites/:site_id/products/:product_id/skus/:sku_id
The documentation, I believe wrongly gives the same endpoint for products and SKUs, but from my testing above worked.
I’m having the problem that not all my products have the new “sku” field in the schema. Most of them only have the old sku format (the one inside the “sku-values” object). Now I’m waiting on the credentials for the account so I can go ahead and try to fix stuff
I wanted to let you know that the endpoints for both CMS and E-commerce have been fixed. The update item action in a Zap or any public CMS patch endpoint will work now.
Please let me know if you have any other questions,
I was able to get it working with a custom API call with some help from @gregf and an Integromat expert. Greg, good call on changing “Name” to “name”. That fixed it.
And thank you for fixing the built-in version, Brandon.
Can we also expect built-in e-commerce product creation and updates to work in Integromat without using custom API calls?
Hey I am trying to create new products via zapier/integromat, it still give me the [403] ForbiddenError: User is not authorized to perform this action: Cannot complete operation for the ecommerce collection [Products] with this endpoint. Please can you update on what to do with that please.