shopify icon indicating copy to clipboard operation
shopify copied to clipboard

Unable to sync products- stuck at CREATED status

Open sarahnoweb opened this issue 2 months ago • 5 comments

Description

After setting up the plugin using Shopify API version 2025-07 and creating the Shopify app, I configured the required webhooks. The webhook setup completed successfully and looked correct.

When I then tried to sync the products using ddev craft shopify/sync/products, the sync job appeared in the Shopify Utility as expected, but it never progressed beyond the “Created” status and did not complete.

There are no error messages or warnings in the Craft, plugin, or server logs during this process.

Image

Shopify Configuration:

Image

Steps to reproduce

  1. Setup Plugin and Shopify App
  2. ddev craft shopify/sync/products
  3. Shopify Step is stuck at Created

Additional info

  • Craft version: 5.8.18
  • PHP version: 8.2
  • Database driver & version: mysql v. 8.0
  • Plugins & versions:
  • "craftcms/ckeditor": "4.10.1", "craftcms/cms": "5.8.18", "craftcms/shopify": "^6.1.2", "nystudio107/craft-vite": "^5.0.1", "putyourlightson/craft-blitz": "5.12.5", "putyourlightson/craft-sprig": "^3.7", "spacecatninja/imager-x": "5.1.6", "spacecatninja/imager-x-power-pack": "1.0.5", "verbb/formie": "^3.1.6", "verbb/hyper": "2.2.9", "vlucas/phpdotenv": "^5.4.0", "yiisoft/yii2-redis": "^2.0",

sarahnoweb avatar Dec 22 '25 09:12 sarahnoweb

PT-3012

linear[bot] avatar Dec 22 '25 09:12 linear[bot]

Hi @sarahnoweb

Sorry to hear you are having issues. Are you able to check the shopify_bulkoperations database table? There should be a row in there and I assume the url column is blank/null?

Could you run the following code from your command line and see what response you get? (replacing your-development-store and the {access_token})

curl -X POST \
https://your-development-store.myshopify.com/admin/api/2025-07/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "query { currentBulkOperation(type: QUERY) { id type status errorCode } }"
}'

Hopefully we can dig into this further and see what is going on.

Thanks!

nfourtythree avatar Dec 22 '25 10:12 nfourtythree

Hey @nfourtythree,

thanks for the quick response. Yes the url column is null. Also the

The response I get is: {"data":{"currentBulkOperation":{"id":"gid://shopify/BulkOperation/8984916820342","type":"QUERY","status":"COMPLETED","errorCode":null}},"extensions":{"cost":{"requestedQueryCost":1,"actualQueryCost":1,"throttleStatus":{"maximumAvailable":2000.0,"currentlyAvailable":1999,"restoreRate":100.0}}}}

sarahnoweb avatar Dec 22 '25 10:12 sarahnoweb

@nfourtythree in the Readme it says: "If you need to test live synchronization in development, we recommend using ngrok to create a tunnel to your local environment."

Is the synchronization via the command line a live synchronization? Maybe the issue is there because I didn't setup ngrok since I thought I'm not performing live synchronizations?

sarahnoweb avatar Dec 22 '25 11:12 sarahnoweb

Hi @sarahnoweb

Thank you for your response.

Both methods go through "live synchronization" (maybe we should clear up this term) so if you are trying to sync things with your development project you will need to be running a tunnel service. This is so the web hooks can receive the data.

Hope this helps, thanks!

nfourtythree avatar Dec 22 '25 16:12 nfourtythree