Unable to modify Product Title Via REST API

Hi There, I’ve been able to create products, updated variations and their stock levels as well as update metadata. However I don’t seem to be able to change the Product Title. Simply I am using the following PUT which returns a 301 to redirect to a GET for the product - but nothing is being updated.

curl -L -d ‘{“product”:{“id”:8838562873632,“title”:“NEW TITLE”}}’
-X PUT “https://{shop}/admin/api/2023-10/products/8838562873632.json”
-H “X-Shopify-Access-Token: {API TOKEN}”
-H “Content-Type: application/json”

I have checked my scopes and even given my token all 112 scopes just to make sure. This had no effect.

Anyone have any idea why I can’t change the product after creating it?

Hey @nthnthcandrew

That command looks fine :thinking: Are you able to capture + share the request ID from the response headers?

This is the curl debug

-X PUT “https://{shop}/admin/api/2023-10/products/8838562873632.json”
-H “X-Shopify-Access-Token: {API_TOKEN}”
-H “Content-Type: application/json”

  • Trying 23.227.38.65:443…
  • Connected to {shop} (23.227.38.65) port 443 (#0)
  • ALPN: offers h2,http/1.1
  • (304) (OUT), TLS handshake, Client hello (1):
  • CAfile: /etc/ssl/cert.pem
  • CApath: none
  • (304) (IN), TLS handshake, Server hello (2):
  • (304) (IN), TLS handshake, Unknown (8):
  • (304) (IN), TLS handshake, Certificate (11):
  • (304) (IN), TLS handshake, CERT verify (15):
  • (304) (IN), TLS handshake, Finished (20):
  • (304) (OUT), TLS handshake, Finished (20):
  • SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384
  • ALPN: server accepted h2
  • Server certificate:
  • subject: CN={shop}
  • start date: Oct 9 11:11:46 2023 GMT
  • expire date: Jan 7 11:11:45 2024 GMT
  • subjectAltName: host “{shop}” matched cert’s “{shop}”
  • issuer: C=US; O=Let’s Encrypt; CN=R3
  • SSL certificate verify ok.
  • using HTTP/2
  • h2 [:method: PUT]
  • h2 [:scheme: https]
  • h2 [:authority: {shop}]
  • h2 [:path: /admin/api/2023-10/products/8838562873632.json]
  • h2 [user-agent: curl/8.1.2]
  • h2 [accept: /]
  • h2 [x-shopify-access-token: {API_TOKEN}]
  • h2 [content-type: application/json]
  • h2 [content-length: 55]
  • Using Stream ID: 1 (easy handle 0x7fc92e013400)

PUT /admin/api/2023-10/products/8838562873632.json HTTP/2
Host: {shop}
User-Agent: curl/8.1.2
Accept: /
X-Shopify-Access-Token: {API_TOKEN}
Content-Type: application/json
Content-Length: 55

  • We are completely uploaded and fine
    < HTTP/2 301
    < date: Fri, 10 Nov 2023 11:23:20 GMT
    < content-type: text/html; charset=utf-8
    < location: https://{shop}.myshopify.com/admin/api/2023-10/products/8838562873632.json
    < cf-ray: 823dec3a08075747-SYD
    < cf-cache-status: DYNAMIC
    < set-cookie: request_method=PUT; path=/; SameSite=Lax
    < strict-transport-security: max-age=7889238
    < content-security-policy: default-src ‘self’ data: blob: ‘unsafe-inline’ ‘unsafe-eval’ https://* shopify-pos://; block-all-mixed-content; child-src ‘self’ https:// shopify-pos://; connect-src ‘self’ wss:// https://*; frame-ancestors ‘none’; img-src ‘self’ data: blob: https:; script-src https://cdn.shopify.com https://cdn.shopifycdn.net https://checkout.shopifycs.com https://api.stripe.com https://mpsnare.iesnare.com https://appcenter.intuit.com https://www.paypal.com https://js.braintreegateway.com https://c.paypal.com https://maps.googleapis.com https://www.google-analytics.com https://v.shopify.com ‘self’ ‘unsafe-inline’ ‘unsafe-eval’; upgrade-insecure-requests; report-uri /csp-report?source%5Baction%5D=update&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fproducts&source%5Bsection%5D=admin_api&source%5Buuid%5D=da13315d-8b1d-4efe-82a7-d83f25a7eeeb
    < referrer-policy: origin-when-cross-origin
    < server-timing: processing;dur=23
    < x-checkout-edge-proxied: 1
    < x-content-type-options: nosniff
    < x-dc: gcp-australia-southeast1,gcp-us-east1,gcp-us-east1
    < x-download-options: noopen
    < x-frame-options: DENY
    < x-permitted-cross-domain-policies: none
    < x-request-id: da13315d-8b1d-4efe-82a7-d83f25a7eeeb
    < x-shardid: 287
    < x-shopid: 82426069280
    < x-shopify-stage: production
    < x-sorting-hat-podid: 287
    < x-sorting-hat-shopid: 82426069280
    < x-xss-protection: 1; mode=block; report=/xss-report?source%5Baction%5D=update&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fproducts&source%5Bsection%5D=admin_api&source%5Buuid%5D=da13315d-8b1d-4efe-82a7-d83f25a7eeeb
    < report-to: {“endpoints”:[{“url”:“https://a.nel.cloudflare.com/report/v3?s=lMNacvlHVmzTKL3EhlSLKlUkq1vvkHK%2FTXmFDE4NFC3yJPwO%2B%2B21MuACEy2yIDftRTjZ5Y%2FsCLDgn5XPZQ3ixVpcW8yIErczaDIuhYjBJRmkv4N6utIW%2FSMA2YZmew%3D%3D”}],“group”:“cf-nel”,“max_age”:604800}
    < nel: {“success_fraction”:0.01,“report_to”:“cf-nel”,“max_age”:604800}
    < server-timing: cfRequestDuration;dur=235.999823
    < server-timing: cfRequestDuration;dur=246.999979
    < server: cloudflare
    < alt-svc: h3=“:443”; ma=86400
    <
  • Connection #0 to host {shop} left intact

Thanks. Has that produce been removed since? Are you still experiencing the issue on another product / can you provide the ID or request ID please?