提交 /async/bulk/V1/products成功拿到UUID,随后查询状态却是404。先区分两类404:Magento Web API返回的JSON错误,和Nginx/Apache返回的HTML页面。处理方向完全不同。
确认任务记录还在
SELECT bulk_id,uuid,description,start_time,operation_count FROM magento_bulk WHERE uuid='YOUR-BULK-UUID';
查得到说明任务创建成功。状态端点通常使用 GET /rest/V1/bulk/{bulkUuid}/status,不要把提交时的 /async/bulk/前缀照搬到查询地址。Store Code环境下也要保持REST路径规则一致。
用curl看真正响应者
curl -i -H 'Authorization: Bearer ***' \ 'https://example.com/rest/V1/bulk/YOUR-BULK-UUID/status'
Content-Type为application/json并包含Magento消息,继续查ACL和路由;若是text/html且带服务器404页,检查Web根目录、location /rest和try_files是否把请求交给index.php。
反向代理带子路径
网站发布在 /shop/ 下时,客户端常把Base URL与REST路径重复或漏拼。比较后台 Stores > Web > Base URLs、Nginx转发前缀和API客户端baseURL,最终请求只能包含一次 /shop/rest/。
不要遗漏权限差异
- 提交Bulk所用Token与查询状态Token是否相同;
- 集成用户角色是否包含Magento_AsyncOperations::operations;
- Token是否已被撤销或过期;
- WAF是否把UUID路径判成异常并返回自定义404。
修复后查询同一个旧UUID,应该看到operations_list与状态统计;再提交一条无害测试更新,验证从open到complete的完整链路。若数据库根本没有UUID记录,回头查提交请求是否只被API网关接受而未到Magento。

