Возврат средств за отмененный заказ с помощью Shopify REST API

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

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

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

{"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
}}

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

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

введите описание изображения здесь

А статус заказа отображает «Отменен», «Оплачен», «Не выполнен». Так что мне приходится возвращать его вручную.

Почему мой 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#create показывает немного другое тело POST, чем то, что вы предоставили. Вам не нужна информация о цене в вашем файле return_line_item.

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

person bknights    schedule 10.04.2019
comment
Спасибо за здравомыслие, проверив то, что я делал. Моя ошибка была обнаружена в их примере под названием Отменить и вернуть заказ, используя свойство возврата, по ссылке, которую я разместил выше в их документации. Но по разуму это не работает. Но если я использую конечную точку возврата, как вы предложили, она работает. - person PedroD; 12.04.2019
comment
Кроме того, вся эта информация (транзакции и Refund_line_items) была сгенерирована shopify с использованием их конечной точки вычисления (help.shopify.com/en/api/reference/orders/refund#calculate), поэтому я полагаю, что это на 100% правильно. - person PedroD; 12.04.2019