=== GS1 Diagnostic v4 === --- Step 1: GET existing product --- GTIN: 5905316173910 Status: WIT --- Step 2: Verbose PUT (minimal + name + subBrandName) --- REQ: {"data":{"type":"products","id":"5905316173910","attributes":{"brandName":"bibs","subBrandName":"bibs","commonName":"smoczek","name":"bibs smoczek Baby Blue - On size","gpcCode":10000504,"netContent":1,"netContentUnit":"szt","status":"WIT","targetMarket":["PL"],"descriptionLanguage":"PL"}}} HTTP 400: {"status":400,"title":"Niepoprawny parametr","detail":"Pole zawiera niepoprawną wartość","errors":[]} VERBOSE: * Host mojegs1.pl:443 was resolved. * IPv6: (none) * IPv4: 9.223.73.230 * Trying 9.223.73.230:443... * ALPN: curl offers h2,http/1.1 * CAfile: /etc/pki/tls/certs/ca-bundle.crt * CApath: none * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / [blank] / UNDEF * ALPN: server accepted h2 * Server certificate: * subject: C=PL; ST=wielkopolskie; L=Pozna\U0144; O=Fundacja GS1 Polska; CN=*.mojegs1.pl * start date: Oct 24 09:41:36 2025 GMT * expire date: Oct 24 09:41:35 2026 GMT * subjectAltName: host "mojegs1.pl" matched cert's "mojegs1.pl" * issuer: C=PL; O=Asseco Data Systems S.A.; CN=Certum OV TLS G2 R39 CA * SSL certificate verify ok. * Certificate level 0: Public key type ? (2048/112 Bits/secBits), signed using sha256WithRSAEncryption * Certificate level 1: Public key type ? (4096/128 Bits/secBits), signed using sha512WithRSAEncryption * Certificate level 2: Public key type ? (4096/128 Bits/secBits), signed using sha512WithRSAEncryption * Connected to mojegs1.pl (9.223.73.230) port 443 * using HTTP/2 * Server auth using Basic with user 'user_85c27342-bc97-4f42-8890-f6b27d3233c4' * [HTTP/2] [1] OPENED stream for https://mojegs1.pl/api/v2/products/5905316173910 * [HTTP/2] [1] [:method: PUT] * [HTTP/2] [1] [:scheme: https] * [HTTP/2] [1] [:authority: mojegs1.pl] * [HTTP/2] [1] [:path: /api/v2/products/5905316173910] * [HTTP/2] [1] [authorization: Basic dXNlcl84NWMyNzM0Mi1iYzk3LTRmNDItODg5MC1mNmIyN2QzMjMzYzQ6SzNzYXdHQTNYP0w/ZV5iSiRacXloaWVGRyl3I2M4Zis/Vl56] * [HTTP/2] [1] [accept: application/json] * [HTTP/2] [1] [content-type: application/json] * [HTTP/2] [1] [content-length: 291] > PUT /api/v2/products/5905316173910 HTTP/2 Host: mojegs1.pl Authorization: Basic dXNlcl84NWMyNzM0Mi1iYzk3LTRmNDItODg5MC1mNmIyN2QzMjMzYzQ6SzNzYXdHQTNYP0w/ZV5iSiRacXloaWVGRyl3I2M4Zis/Vl56 Accept: application/json Content-Type: application/json Content-Length: 291 * upload completely sent off: 291 bytes < HTTP/2 400 < date: Tue, 24 Feb 2026 20:08:31 GMT < content-type: application/json; charset=utf-8 < server: nginx < * Connection #0 to host mojegs1.pl left intact --- Step 3: PATCH instead of PUT --- HTTP 405: --- Step 4: gpcCode as string --- REQ: {"data":{"type":"products","id":"5905316173910","attributes":{"brandName":"bibs","subBrandName":"bibs","commonName":"smoczek","name":"bibs smoczek Baby Blue - On size","gpcCode":"10000504","netContent":1,"netContentUnit":"szt","status":"WIT","targetMarket":["PL"],"descriptionLanguage":"PL"}}} HTTP 400: {"status":400,"title":"Niepoprawny parametr","detail":"Pole zawiera niepoprawną wartość","errors":[]} --- Step 5: vnd.api+json content type --- HTTP 400: {"status":400,"title":"Niepoprawny parametr","detail":"Pole zawiera niepoprawną wartość","errors":[]} --- Step 6: netContent as float 1.0 --- REQ: {"data":{"type":"products","id":"5905316173910","attributes":{"brandName":"bibs","subBrandName":"bibs","commonName":"smoczek","name":"bibs smoczek Baby Blue - On size","gpcCode":10000504,"netContent":1.0,"netContentUnit":"szt","status":"WIT","targetMarket":["PL"],"descriptionLanguage":"PL"}}} HTTP 400: {"status":400,"title":"Niepoprawny parametr","detail":"Pole zawiera niepoprawną wartość","errors":[]} --- Step 7: Empty attributes --- REQ: {"data":{"type":"products","id":"5905316173910","attributes":{}}} HTTP 400: {"type":"https://tools.ietf.org/html/rfc9110#section-15.5.1","title":"One or more validation errors occurred.","status":400,"errors":{"Data.Attributes.Status":["The Status field is required."],"Data.Attributes.TargetMarket":["The TargetMarket field is required."]},"traceId":"00-7f7d0419a26ec9bd0d2f56422ca3b837-5e5d8704f5b4d14e-01"} --- Step 8: Single field tests --- brandName => HTTP 400 commonName => HTTP 400 gpcCode => HTTP 400 netContent => HTTP 400 netContentUnit => HTTP 400 status => HTTP 400 targetMarket => HTTP 400 descriptionLanguage => HTTP 400 === DONE ===