Unable to sync products- stuck at CREATED status
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.
Shopify Configuration:
Steps to reproduce
- Setup Plugin and Shopify App
-
ddev craft shopify/sync/products - 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",
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!
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}}}}
@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?
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!