Возврат возврата отмененного заказа с использованием Shopify REST API

Я пытаюсь отменить и вернуть заказ, используя эту конечную точку:

https://help.shopify.com/en/api/reference/orders/order

Со следующей полезной нагрузкой:

{"refund": {
    "shipping": {"full_refund": true},
    "refund_line_items": [{
        "quantity": 1,
        "line_item_id": 2032498606169,
        "price": "39.90",
        "subtotal": "39.90",
        "total_tax": "6.37",
        "discounted_total_price": "39.90",
        "total_cart_discount_amount": "0.00",
        "location_id": null,
        "restock_type": "no_restock",
        "discounted_price": "39.90"
    }],
    "transactions": [{
        "amount": "39.90",
        "maximum_refundable": "39.90",
        "kind": "refund",
        "parent_id": 1147873263705,
        "currency": "EUR",
        "order_id": 922997620825,
        "gateway": "amazon_payments"
    }],
    "notify": true
}}

У заказа есть только одна статья, поэтому я в основном возмещаю весь заказ.

Тем не менее, этот вызов API REST возвращает успех, но когда я проверяю страницу заказа, я действительно вижу, что заказ был отменен, но, в конце концов, не было возврата.

И статус заказа отображает "Отменено", "Оплачено", "Не выполнено". Так что я вынужден вернуть его вручную.

Почему мой звонок REST просто отменяет этот заказ, но не возвращает деньги?

Спасибо!

1 ответ

Решение

Вы ошиблись ссылкой. От вашей ссылки сообщение об отмене должно быть:

POST /admin/api/2019-04/orders/#{order_id}/cancel.json {} // post an empty object -- not null

API возврата на https://help.shopify.com/en/api/reference/orders/refund показывает немного другое тело POST, чем то, что вы предоставили. Вам не нужна информация о ценах в вашем refund_line_item.

Вы подтвердили, что parent_id в возмещении sale или же capture транзакция и что тип шлюза совпадает.