首页 > 解决方案 > 是否可以使用 Shopware REST API 更新订单单个仓位的 statusIds?

问题描述

我正在尝试根据退货流程更新订单。如果退货流程完成,订单statusId和订单仓位的statusIds需要更新。

我已经设法通过这个端点 /api/orders/15 (PUT-Request) 更新了订单的 statusId。但是这个端点只允许更新很少的参数。这是 shopware 5 api 文档:https ://developers.shopware.com/developers-guide/rest-api/examples/order/

还有其他方法可以更新职位吗?还是我必须直接在数据库中更新它?这似乎很脏。

我正在使用 Spring Boot 来发出请求。这是用于更新订单 statusId 的代码

    private JSONObject setShopwareOrderStatus(ReturnOrder order, SetOrderStatusRequest orderStatus) {
        String apiUrl = String.format("https://shop.com/api/orders/%d?useNumberAsId=true", order.getOrderId());

        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        headers.set(HttpHeaders.AUTHORIZATION, "Basic apiToken");
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
        HttpEntity<SetOrderStatusRequest> request = new HttpEntity<>(
                orderStatus, headers);


        ResponseEntity<String> responseEntity =
                restTemplate.exchange(apiUrl, HttpMethod.PUT, request, String.class);

        return new JSONObject(responseEntity.getBody());
    }

希望有人能够帮助我

标签: spring-bootrestshopware

解决方案


推荐阅读