| Server IP : 65.108.144.40 / Your IP : 216.73.217.165 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : dev ( 1000) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/dev/.pm2/logs/ |
Upload File : |
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
[shopify-app/INFO] Session was not valid. Redirecting to /api/auth?shop=undefined | {shop: undefined}
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-app/INFO] Session was not valid. Redirecting to /api/auth?shop=undefined | {shop: undefined}
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-app/INFO] Handling request to complete OAuth process
[shopify-api/INFO] Completing OAuth | {shop: fivewishesdev.myshopify.com}
[shopify-api/INFO] Creating new session | {shop: fivewishesdev.myshopify.com, isOnline: false}
[shopify-api/INFO] Registering webhooks | {shop: fivewishesdev.myshopify.com}
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-app/INFO] Handling request to complete OAuth process
[shopify-api/INFO] Completing OAuth | {shop: fivewishesdev.myshopify.com}
[shopify-api/INFO] Creating new session | {shop: fivewishesdev.myshopify.com, isOnline: false}
[shopify-api/INFO] Registering webhooks | {shop: fivewishesdev.myshopify.com}
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
[shopify-api/INFO] Beginning OAuth | {shop: fivewishesdev.myshopify.com, isOnline: false, callbackPath: /api/auth/callback}
[shopify-app/INFO] Handling request to complete OAuth process
[shopify-api/INFO] Completing OAuth | {shop: fivewishesdev.myshopify.com}
[shopify-api/INFO] Creating new session | {shop: fivewishesdev.myshopify.com, isOnline: false}
[shopify-api/INFO] Registering webhooks | {shop: fivewishesdev.myshopify.com}
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1
Creating discount with data: {
title: 'Tiered Pricing Discount',
tier1Quantity: '10',
tier1Price: '200',
tier2Quantity: '25',
tier2Price: '100',
tier3Quantity: '50',
tier3Price: '100'
}
Available functions: {
"data": {
"shopifyFunctions": {
"nodes": [
{
"id": "019a7d1e-ff66-7533-9617-d906bab35f64",
"apiType": "discount",
"title": "tier-discount",
"apiVersion": "2025-04",
"app": {
"id": "gid://shopify/App/295861256193",
"title": "my-tiered-discount-app"
}
}
]
}
},
"extensions": {
"cost": {
"requestedQueryCost": 16,
"actualQueryCost": 3,
"throttleStatus": {
"maximumAvailable": 20000,
"currentlyAvailable": 19997,
"restoreRate": 1000
}
}
},
"headers": {
"Alt-Svc": [
"h3=\":443\"; ma=86400"
],
"Cf-Cache-Status": [
"DYNAMIC"
],
"Cf-Ray": [
"99de9c85b9518d7e-HEL"
],
"Connection": [
"keep-alive"
],
"Content-Encoding": [
"gzip"
],
"Content-Language": [
"en"
],
"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.pci.shopifyinc.com https://checkout.pci.shopifyinc.com/build/75a428d/card_fields.js 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=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=e8a832fa-46ce-4c9c-8aa5-e8e80e040b5b-1763040497; report-to shopify-csp"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Date": [
"Thu, 13 Nov 2025 13:28:17 GMT"
],
"Nel": [
"{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}"
],
"Referrer-Policy": [
"origin-when-cross-origin"
],
"Report-To": [
"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=XKuqbFO1MvRDs37W3FJEOb2%2F5vyM%2FOKppSIMFt5jyA%2BNuSarRH21%2B0RKZVi%2BRt97gRaCgaS7gSKcj1boMXgX5d9GppPNud7d4NTaGi8HS8FY5lzeLHBe4aQZcZiD8fENZABcQZDeACYrhg7dAOBpLWIaUHIn53Syhw%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
],
"Reporting-Endpoints": [
"shopify-csp=\"/csp-report?source%5Baction%5D=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=e8a832fa-46ce-4c9c-8aa5-e8e80e040b5b-1763040497\""
],
"Server": [
"cloudflare"
],
"Server-Timing": [
"processing;dur=50, verdict_flag_enabled;desc=\"count=10\";dur=1.474, graphql;desc=\"admin/query/other\", _y;desc=\"3b7211c8-e11f-4038-9e4d-0081d736baac\", _s;desc=\"a7fc17b4-55f1-404e-a121-0b66e1acee8e\", cfRequestDuration;dur=276.000023, ipv6"
],
"Strict-Transport-Security": [
"max-age=7889238"
],
"Transfer-Encoding": [
"chunked"
],
"Vary": [
"Accept-Encoding"
],
"X-Content-Type-Options": [
"nosniff"
],
"X-Dc": [
"gcp-us-central1,gcp-us-central1,gcp-us-central1"
],
"X-Download-Options": [
"noopen"
],
"X-Frame-Options": [
"DENY"
],
"X-Permitted-Cross-Domain-Policies": [
"none"
],
"X-Request-Id": [
"e8a832fa-46ce-4c9c-8aa5-e8e80e040b5b-1763040497"
],
"X-Shardid": [
"248"
],
"X-Shopid": [
"75892064505"
],
"X-Shopify-Api-Version": [
"2025-07"
],
"X-Sorting-Hat-Podid": [
"248"
],
"X-Sorting-Hat-Shopid": [
"75892064505"
],
"X-Stats-Apiclientid": [
"295861256193"
],
"X-Stats-Apipermissionid": [
"611119005945"
],
"X-Stats-Userid": [
""
],
"X-Xss-Protection": [
"1; mode=block"
]
}
}
Using function ID: 019a7d1e-ff66-7533-9617-d906bab35f64
Sending GraphQL mutation with variables: {
"automaticAppDiscount": {
"title": "Tiered Pricing Discount",
"functionId": "019a7d1e-ff66-7533-9617-d906bab35f64",
"startsAt": "2025-11-13T13:28:17.845Z",
"discountClasses": [
"PRODUCT"
],
"combinesWith": {
"orderDiscounts": false,
"productDiscounts": false,
"shippingDiscounts": false
}
}
}
GraphQL response: {
"data": {
"discountAutomaticAppCreate": {
"automaticAppDiscount": {
"discountId": "gid://shopify/DiscountAutomaticNode/1473625817337",
"title": "Tiered Pricing Discount",
"status": "ACTIVE"
},
"userErrors": []
}
},
"extensions": {
"cost": {
"requestedQueryCost": 10,
"actualQueryCost": 10,
"throttleStatus": {
"maximumAvailable": 20000,
"currentlyAvailable": 19990,
"restoreRate": 1000
}
}
},
"headers": {
"Alt-Svc": [
"h3=\":443\"; ma=86400"
],
"Cf-Cache-Status": [
"DYNAMIC"
],
"Cf-Ray": [
"99de9c878bc28d7e-HEL"
],
"Connection": [
"keep-alive"
],
"Content-Encoding": [
"gzip"
],
"Content-Language": [
"en"
],
"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.pci.shopifyinc.com https://checkout.pci.shopifyinc.com/build/75a428d/card_fields.js 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=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=569bae76-c01f-41d0-94bc-3a9dbbe4d8c5-1763040497; report-to shopify-csp"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Date": [
"Thu, 13 Nov 2025 13:28:18 GMT"
],
"Nel": [
"{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}"
],
"Referrer-Policy": [
"origin-when-cross-origin"
],
"Report-To": [
"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=%2FwcfdgkD7Pqg3lX2zbMcq5MgAaP0%2B3qzkqJUNvbPQyBBv14JBFMqIe07nshcCYbOvJG%2BmRm3Iz1eipJtvI99stE1UE7nrscdX8blhiATeL5llN1F0N30eNpAixglXl91zTmbf07Zq0Q7sdbJGEcq6m7PG%2B2NgUD%2FHA%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
],
"Reporting-Endpoints": [
"shopify-csp=\"/csp-report?source%5Baction%5D=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=569bae76-c01f-41d0-94bc-3a9dbbe4d8c5-1763040497\""
],
"Server": [
"cloudflare"
],
"Server-Timing": [
"processing;dur=248, verdict_flag_enabled;desc=\"count=19\";dur=17.909, graphql;desc=\"admin/mutation/other\", _y;desc=\"3ed9a223-9146-44b9-8250-cd5563bd2a6f\", _s;desc=\"9b4089c1-488e-4be8-af87-e4ca93a2f3a8\", cfRequestDuration;dur=637.999773, ipv6"
],
"Strict-Transport-Security": [
"max-age=7889238"
],
"Transfer-Encoding": [
"chunked"
],
"Vary": [
"Accept-Encoding"
],
"X-Content-Type-Options": [
"nosniff"
],
"X-Dc": [
"gcp-us-central1,gcp-us-central1,gcp-us-central1"
],
"X-Download-Options": [
"noopen"
],
"X-Frame-Options": [
"DENY"
],
"X-Permitted-Cross-Domain-Policies": [
"none"
],
"X-Request-Id": [
"569bae76-c01f-41d0-94bc-3a9dbbe4d8c5-1763040497"
],
"X-Shardid": [
"248"
],
"X-Shopid": [
"75892064505"
],
"X-Shopify-Api-Version": [
"2025-07"
],
"X-Sorting-Hat-Podid": [
"248"
],
"X-Sorting-Hat-Shopid": [
"75892064505"
],
"X-Stats-Apiclientid": [
"295861256193"
],
"X-Stats-Apipermissionid": [
"611119005945"
],
"X-Stats-Userid": [
""
],
"X-Xss-Protection": [
"1; mode=block"
]
}
}
Loading discount targeting for ID: 1473625817337
📥 Received discount targeting update: {
discountId: '1473625817337',
targetingType: 'products',
productIds: [ 'gid://shopify/Product/9017343934713' ],
collectionIds: [],
pricingConfig: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
}
📊 Pricing config received: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
📊 Pricing config type: object
Saving targeting configuration for 1473625817337 : {
type: 'products',
products: [ 'gid://shopify/Product/9017343934713' ],
collections: [],
pricing: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
}
💾 Saving metafield with variables: {
"metafields": [
{
"ownerId": "gid://shopify/DiscountAutomaticNode/1473625817337",
"namespace": "app",
"key": "targeting_config",
"value": "{\"type\":\"products\",\"products\":[\"gid://shopify/Product/9017343934713\"],\"collections\":[],\"pricing\":{\"tier1\":{\"quantity\":10,\"price\":5},\"tier2\":{\"quantity\":25,\"price\":2},\"tier3\":{\"quantity\":50,\"price\":1}}}",
"type": "json"
}
]
}
💾 Metafield save response: {
"data": {
"metafieldsSet": {
"metafields": [
{
"id": "gid://shopify/Metafield/35082541793529",
"namespace": "app",
"key": "targeting_config",
"value": "{\"type\":\"products\",\"products\":[\"gid://shopify/Product/9017343934713\"],\"collections\":[],\"pricing\":{\"tier1\":{\"quantity\":10,\"price\":5},\"tier2\":{\"quantity\":25,\"price\":2},\"tier3\":{\"quantity\":50,\"price\":1}}}"
}
],
"userErrors": []
}
},
"extensions": {
"cost": {
"requestedQueryCost": 10,
"actualQueryCost": 10,
"throttleStatus": {
"maximumAvailable": 20000,
"currentlyAvailable": 19990,
"restoreRate": 1000
}
}
},
"headers": {
"Alt-Svc": [
"h3=\":443\"; ma=86400"
],
"Cf-Cache-Status": [
"DYNAMIC"
],
"Cf-Ray": [
"99de9e5c6b5e1bf4-HEL"
],
"Connection": [
"keep-alive"
],
"Content-Encoding": [
"gzip"
],
"Content-Language": [
"en"
],
"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.pci.shopifyinc.com https://checkout.pci.shopifyinc.com/build/75a428d/card_fields.js 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=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=149220c7-e761-4f74-8f9b-4da8ded52503-1763040572; report-to shopify-csp"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Date": [
"Thu, 13 Nov 2025 13:29:33 GMT"
],
"Nel": [
"{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}"
],
"Referrer-Policy": [
"origin-when-cross-origin"
],
"Report-To": [
"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=OoubHvXqeToBiY9Gt%2FpAoRNb7r3OiLYWbrwHtY5ANfdeEd1vBLaeTqLaNKJAOQjpQF34crMqXnGaMkMPaZ87QmCxT5HFXxA0haEjkdGmwHZ53y4PyCwaOAw5ik5XoYHqB2Fj7j%2BuxMHo7j0P66m3L%2BgpMOWQIgQ0lw%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
],
"Reporting-Endpoints": [
"shopify-csp=\"/csp-report?source%5Baction%5D=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=149220c7-e761-4f74-8f9b-4da8ded52503-1763040572\""
],
"Server": [
"cloudflare"
],
"Server-Timing": [
"processing;dur=105, verdict_flag_enabled;desc=\"count=21\";dur=23.844, graphql;desc=\"admin/mutation/other\", _y;desc=\"84cbcd8f-23cf-4788-bd88-a8e19ef41791\", _s;desc=\"276b0977-2cf9-4cf6-a6eb-325615b2c1aa\", cfRequestDuration;dur=283.999920, ipv6"
],
"Strict-Transport-Security": [
"max-age=7889238"
],
"Transfer-Encoding": [
"chunked"
],
"Vary": [
"Accept-Encoding"
],
"X-Content-Type-Options": [
"nosniff"
],
"X-Dc": [
"gcp-us-central1,gcp-us-central1,gcp-us-central1"
],
"X-Download-Options": [
"noopen"
],
"X-Frame-Options": [
"DENY"
],
"X-Permitted-Cross-Domain-Policies": [
"none"
],
"X-Request-Id": [
"149220c7-e761-4f74-8f9b-4da8ded52503-1763040572"
],
"X-Shardid": [
"248"
],
"X-Shopid": [
"75892064505"
],
"X-Shopify-Api-Version": [
"2025-07"
],
"X-Sorting-Hat-Podid": [
"248"
],
"X-Sorting-Hat-Shopid": [
"75892064505"
],
"X-Stats-Apiclientid": [
"295861256193"
],
"X-Stats-Apipermissionid": [
"611119005945"
],
"X-Stats-Userid": [
""
],
"X-Xss-Protection": [
"1; mode=block"
]
}
}
✅ Configuration saved to metafield successfully
📄 Saved metafield value: {"type":"products","products":["gid://shopify/Product/9017343934713"],"collections":[],"pricing":{"tier1":{"quantity":10,"price":5},"tier2":{"quantity":25,"price":2},"tier3":{"quantity":50,"price":1}}}
📊 Saved pricing config: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
Configuration also saved to in-memory store for discount ID: 1473625817337
Updating discount: {
"id": "gid://shopify/DiscountAutomaticApp/1473625817337",
"automaticAppDiscount": {
"combinesWith": {
"orderDiscounts": false,
"productDiscounts": false,
"shippingDiscounts": false
}
}
}
Discount update response: {
"data": {
"discountAutomaticAppUpdate": {
"automaticAppDiscount": {
"discountId": "gid://shopify/DiscountAutomaticNode/1473625817337",
"title": "Tiered Pricing Discount",
"status": "ACTIVE"
},
"userErrors": []
}
},
"extensions": {
"cost": {
"requestedQueryCost": 10,
"actualQueryCost": 10,
"throttleStatus": {
"maximumAvailable": 20000,
"currentlyAvailable": 19990,
"restoreRate": 1000
}
}
},
"headers": {
"Alt-Svc": [
"h3=\":443\"; ma=86400"
],
"Cf-Cache-Status": [
"DYNAMIC"
],
"Cf-Ray": [
"99de9e5e39711bf4-HEL"
],
"Connection": [
"keep-alive"
],
"Content-Encoding": [
"gzip"
],
"Content-Language": [
"en"
],
"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.pci.shopifyinc.com https://checkout.pci.shopifyinc.com/build/75a428d/card_fields.js 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=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=5655642f-380c-46d2-ae90-5ed197cb5381-1763040573; report-to shopify-csp"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Date": [
"Thu, 13 Nov 2025 13:29:33 GMT"
],
"Nel": [
"{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}"
],
"Referrer-Policy": [
"origin-when-cross-origin"
],
"Report-To": [
"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=FL236qXI5EXKeNbHFIN3erI0LQqifNOPtdEJ1iYRRWiMjFYXP8aeg1cIUk%2FboMRpinXxzbQTRJTnvEBs8eFB8prr01DAMmi31FkLNI1IQPWhw69J4kogeuinrg3T2zs7VtvVKM0NL%2BaGPTdH5FtGOHPy6y1yT7Z7iw%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
],
"Reporting-Endpoints": [
"shopify-csp=\"/csp-report?source%5Baction%5D=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=5655642f-380c-46d2-ae90-5ed197cb5381-1763040573\""
],
"Server": [
"cloudflare"
],
"Server-Timing": [
"processing;dur=51, verdict_flag_enabled;desc=\"count=12\";dur=1.863, graphql;desc=\"admin/mutation/other\", _y;desc=\"e6ff0210-f26f-4102-a170-a266e562ccd5\", _s;desc=\"57722534-b442-46ac-bfc6-a76fa8b20c1b\", cfRequestDuration;dur=243.000031, ipv6"
],
"Strict-Transport-Security": [
"max-age=7889238"
],
"Transfer-Encoding": [
"chunked"
],
"Vary": [
"Accept-Encoding"
],
"X-Content-Type-Options": [
"nosniff"
],
"X-Dc": [
"gcp-us-central1,gcp-us-central1,gcp-us-central1"
],
"X-Download-Options": [
"noopen"
],
"X-Frame-Options": [
"DENY"
],
"X-Permitted-Cross-Domain-Policies": [
"none"
],
"X-Request-Id": [
"5655642f-380c-46d2-ae90-5ed197cb5381-1763040573"
],
"X-Shardid": [
"248"
],
"X-Shopid": [
"75892064505"
],
"X-Shopify-Api-Version": [
"2025-07"
],
"X-Sorting-Hat-Podid": [
"248"
],
"X-Sorting-Hat-Shopid": [
"75892064505"
],
"X-Stats-Apiclientid": [
"295861256193"
],
"X-Stats-Apipermissionid": [
"611119005945"
],
"X-Stats-Userid": [
""
],
"X-Xss-Protection": [
"1; mode=block"
]
}
}
Loading discount targeting for ID: 1473625817337
Found cached targeting config: {
type: 'products',
products: [ 'gid://shopify/Product/9017343934713' ],
collections: [],
pricing: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
}
📥 Received discount targeting update: {
discountId: '1473625817337',
targetingType: 'products',
productIds: [ 'gid://shopify/Product/9017343934713' ],
collectionIds: [],
pricingConfig: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
}
📊 Pricing config received: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
📊 Pricing config type: object
Saving targeting configuration for 1473625817337 : {
type: 'products',
products: [ 'gid://shopify/Product/9017343934713' ],
collections: [],
pricing: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
}
💾 Saving metafield with variables: {
"metafields": [
{
"ownerId": "gid://shopify/DiscountAutomaticNode/1473625817337",
"namespace": "app",
"key": "targeting_config",
"value": "{\"type\":\"products\",\"products\":[\"gid://shopify/Product/9017343934713\"],\"collections\":[],\"pricing\":{\"tier1\":{\"quantity\":10,\"price\":5},\"tier2\":{\"quantity\":25,\"price\":2},\"tier3\":{\"quantity\":50,\"price\":1}}}",
"type": "json"
}
]
}
💾 Metafield save response: {
"data": {
"metafieldsSet": {
"metafields": [
{
"id": "gid://shopify/Metafield/35082541793529",
"namespace": "app",
"key": "targeting_config",
"value": "{\"type\":\"products\",\"products\":[\"gid://shopify/Product/9017343934713\"],\"collections\":[],\"pricing\":{\"tier1\":{\"quantity\":10,\"price\":5},\"tier2\":{\"quantity\":25,\"price\":2},\"tier3\":{\"quantity\":50,\"price\":1}}}"
}
],
"userErrors": []
}
},
"extensions": {
"cost": {
"requestedQueryCost": 10,
"actualQueryCost": 10,
"throttleStatus": {
"maximumAvailable": 20000,
"currentlyAvailable": 19990,
"restoreRate": 1000
}
}
},
"headers": {
"Alt-Svc": [
"h3=\":443\"; ma=86400"
],
"Cf-Cache-Status": [
"DYNAMIC"
],
"Cf-Ray": [
"99de9ec80cc58d91-HEL"
],
"Connection": [
"keep-alive"
],
"Content-Encoding": [
"gzip"
],
"Content-Language": [
"en"
],
"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.pci.shopifyinc.com https://checkout.pci.shopifyinc.com/build/75a428d/card_fields.js 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=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=1d31560a-541a-4b72-b7d9-adc02ba705ce-1763040590; report-to shopify-csp"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Date": [
"Thu, 13 Nov 2025 13:29:50 GMT"
],
"Nel": [
"{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}"
],
"Referrer-Policy": [
"origin-when-cross-origin"
],
"Report-To": [
"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=QvqpL8Y1OBcxbX3z2tOEWkjI1VDDYzmSOTjd%2FSefBO00reT7LJ7wPq2tKnnBK%2BdKlPRkL9jYoGHNKCeDqCI8FdoaqD2g07G20Pl9YniGkeqoeKKtsaHWbcRUR290TapOH8uewRq6Fh12Tdop1P9dTV3WSPscXZ3ufA%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
],
"Reporting-Endpoints": [
"shopify-csp=\"/csp-report?source%5Baction%5D=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=1d31560a-541a-4b72-b7d9-adc02ba705ce-1763040590\""
],
"Server": [
"cloudflare"
],
"Server-Timing": [
"processing;dur=51, verdict_flag_enabled;desc=\"count=18\";dur=1.974, graphql;desc=\"admin/mutation/other\", _y;desc=\"bbf92446-cfcc-473c-945d-64641d7bbae4\", _s;desc=\"3d833617-22c7-4582-8575-81e7cd3497ca\", cfRequestDuration;dur=455.999851, ipv6"
],
"Strict-Transport-Security": [
"max-age=7889238"
],
"Transfer-Encoding": [
"chunked"
],
"Vary": [
"Accept-Encoding"
],
"X-Content-Type-Options": [
"nosniff"
],
"X-Dc": [
"gcp-us-central1,gcp-us-central1,gcp-us-central1"
],
"X-Download-Options": [
"noopen"
],
"X-Frame-Options": [
"DENY"
],
"X-Permitted-Cross-Domain-Policies": [
"none"
],
"X-Request-Id": [
"1d31560a-541a-4b72-b7d9-adc02ba705ce-1763040590"
],
"X-Shardid": [
"248"
],
"X-Shopid": [
"75892064505"
],
"X-Shopify-Api-Version": [
"2025-07"
],
"X-Sorting-Hat-Podid": [
"248"
],
"X-Sorting-Hat-Shopid": [
"75892064505"
],
"X-Stats-Apiclientid": [
"295861256193"
],
"X-Stats-Apipermissionid": [
"611119005945"
],
"X-Stats-Userid": [
""
],
"X-Xss-Protection": [
"1; mode=block"
]
}
}
✅ Configuration saved to metafield successfully
📄 Saved metafield value: {"type":"products","products":["gid://shopify/Product/9017343934713"],"collections":[],"pricing":{"tier1":{"quantity":10,"price":5},"tier2":{"quantity":25,"price":2},"tier3":{"quantity":50,"price":1}}}
📊 Saved pricing config: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
Configuration also saved to in-memory store for discount ID: 1473625817337
Updating discount: {
"id": "gid://shopify/DiscountAutomaticApp/1473625817337",
"automaticAppDiscount": {
"combinesWith": {
"orderDiscounts": false,
"productDiscounts": false,
"shippingDiscounts": false
}
}
}
Discount update response: {
"data": {
"discountAutomaticAppUpdate": {
"automaticAppDiscount": {
"discountId": "gid://shopify/DiscountAutomaticNode/1473625817337",
"title": "Tiered Pricing Discount",
"status": "ACTIVE"
},
"userErrors": []
}
},
"extensions": {
"cost": {
"requestedQueryCost": 10,
"actualQueryCost": 10,
"throttleStatus": {
"maximumAvailable": 20000,
"currentlyAvailable": 19990,
"restoreRate": 1000
}
}
},
"headers": {
"Alt-Svc": [
"h3=\":443\"; ma=86400"
],
"Cf-Cache-Status": [
"DYNAMIC"
],
"Cf-Ray": [
"99de9ecae8418d91-HEL"
],
"Connection": [
"keep-alive"
],
"Content-Encoding": [
"gzip"
],
"Content-Language": [
"en"
],
"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.pci.shopifyinc.com https://checkout.pci.shopifyinc.com/build/75a428d/card_fields.js 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=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=2fa08e69-f362-4c59-b968-01ee81617b84-1763040590; report-to shopify-csp"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Date": [
"Thu, 13 Nov 2025 13:29:50 GMT"
],
"Nel": [
"{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}"
],
"Referrer-Policy": [
"origin-when-cross-origin"
],
"Report-To": [
"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=Yy4W68e87wzoOqOhAFufhnT7i1XBBV4VLlHlTbEmIwcx7g%2FY96GWySAHgEtG1lcKgSKgnjYERPn4mweyE0N0mezxDd91B35rUdDU6jU%2FetAwq53mfEDL8HJ6jC7%2Fykw3MFij%2BVMO114EFA%2B9fHORRmpbBGVTX4D62w%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
],
"Reporting-Endpoints": [
"shopify-csp=\"/csp-report?source%5Baction%5D=query&source%5Bapp%5D=Shopify&source%5Bcontroller%5D=admin%2Fgraphql&source%5Bsection%5D=admin_api&source%5Buuid%5D=2fa08e69-f362-4c59-b968-01ee81617b84-1763040590\""
],
"Server": [
"cloudflare"
],
"Server-Timing": [
"processing;dur=53, verdict_flag_enabled;desc=\"count=12\";dur=1.13, graphql;desc=\"admin/mutation/other\", _y;desc=\"88029f28-1fdd-465b-bd8e-b9193e3c0620\", _s;desc=\"86df3f79-450d-49b8-9f69-8bc87184065c\", cfRequestDuration;dur=258.999825, ipv6"
],
"Strict-Transport-Security": [
"max-age=7889238"
],
"Transfer-Encoding": [
"chunked"
],
"Vary": [
"Accept-Encoding"
],
"X-Content-Type-Options": [
"nosniff"
],
"X-Dc": [
"gcp-us-central1,gcp-us-central1,gcp-us-central1"
],
"X-Download-Options": [
"noopen"
],
"X-Frame-Options": [
"DENY"
],
"X-Permitted-Cross-Domain-Policies": [
"none"
],
"X-Request-Id": [
"2fa08e69-f362-4c59-b968-01ee81617b84-1763040590"
],
"X-Shardid": [
"248"
],
"X-Shopid": [
"75892064505"
],
"X-Shopify-Api-Version": [
"2025-07"
],
"X-Sorting-Hat-Podid": [
"248"
],
"X-Sorting-Hat-Shopid": [
"75892064505"
],
"X-Stats-Apiclientid": [
"295861256193"
],
"X-Stats-Apipermissionid": [
"611119005945"
],
"X-Stats-Userid": [
""
],
"X-Xss-Protection": [
"1; mode=block"
]
}
}
Loading discount targeting for ID: 1473625817337
Found cached targeting config: {
type: 'products',
products: [ 'gid://shopify/Product/9017343934713' ],
collections: [],
pricing: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
}
Loading discount targeting for ID: 1473625817337
Found cached targeting config: {
type: 'products',
products: [ 'gid://shopify/Product/9017343934713' ],
collections: [],
pricing: {
tier1: { quantity: 10, price: 5 },
tier2: { quantity: 25, price: 2 },
tier3: { quantity: 50, price: 1 }
}
}
> my-tiered-discount-app@1.0.0 start
> NODE_ENV=production node web/index.js
[shopify-api/INFO] version 11.14.1, environment Node v22.21.1