Nano Hash - криптовалюты, майнинг, программирование

Bigcommerce: отредактируйте существующий адрес доставки заказа

Я импортировал 10 000 устаревших заказов с неправильным состоянием. Как это исправить? Когда я использую конечную точку обновления доставки заказа PUT /orders/{order_id}/shipments/{id}, я получаю сообщение об ошибке, что поле shipping_address недоступно для записи. Что я делаю?

Я использую документы API здесь: https://developer.bigcommerce.com/api-reference/orders/orders-api/order-shipments/putordersorderidshipmentsid

21.05.2019

  • Это фантастический вопрос. Я бы хотел, чтобы это было прописано в документах. 01.06.2019

Ответы:


1

Невозможно напрямую писать в поле состояния адреса доставки заказа, но для контекста это отражает поведение, которое вы видели бы при работе с отгрузками заказа в панели управления. Лучшим решением будет удаление отправлений с некорректным статусом и создание отправлений заново.

Редактировать. Существует 2 варианта повторного создания отправления с правильным адресом. Первый — обновить заказ, добавив новый адрес доставки с правильным состоянием, и использовать этот адрес доставки при повторном отправке. сделать отгрузку. Хотя существующие адреса доставки заказов нельзя изменить, массив адресов доставки заказов является аддитивным. Таким образом, вы можете обновить заказ, добавив новый адрес доставки и используйте этот order_address_id для создания новой отправки. Второй вариант — удалить весь заказ с неправильным адресом доставки и повторно импортировать его с правильными данными, а затем заново создать отправку.

На ресурсе заказов мы рассматриваем запрос функции, чтобы сделать адреса доставки редактируемыми. (Это будет соответствовать тому, что вы можете сделать при редактировании заказа через панель управления). Я буду держать вас в курсе событий в этой ветке, когда появятся обновления по этому поводу, хотя пока лучшим решением было бы использовать один из вариантов, описанных выше.

22.05.2019
  • Спасибо, @Karen White, но эти документы сказать, что адрес доставки доступен только для чтения. Если я удалю все свои отправления, смогу ли я создать новые с адресом? 22.05.2019
  • Это хорошее разъяснение @WillardSolutions - да, вы сможете создавать новые поставки, но адрес все равно будет браться из заказа, из которого исходит отправка. Я отредактирую свой ответ более подробно, потому что он немного длинный для комментария. 22.05.2019
  • Спасибо @karen за обновление. Еще один вопрос - похоже, что удаление заказа не на самом деле удаляет его, а архивирует. Это правильно? Есть ли способ полностью удалить старый ошибочный заказ? 22.05.2019
  • @WillardSolutions Вы правы - заказы не удаляются навсегда; они переходят в состояние, называемое заархивированным, что удаляет их из панели управления. Полностью удалить старые заказы невозможно. 22.05.2019
  • Конечные точки для удаления отгрузок заказов, похоже, не действуют. УДАЛИТЬ /orders/{order_id}/shipments/{id} и УДАЛИТЬ /orders/{order_id}/shipments docs возвращают 204 ответа, но поставки по-прежнему доступны для просмотра в магазине. Конечная точка POST /orders/{order_id}/shipments корректно добавляет новые поставки. Можете ли вы подтвердить, что конечные точки DELETE для доставки заказов работают? 27.05.2019
  • Это странно, я могу подтвердить, что обе конечные точки работают правильно, когда я тестирую на своей стороне. После обновления страницы удаленные отправления удаляются из панели управления. Если вы сделаете запрос GET для отправления, которое только что было удалено, вы получите 404 или оно вернет отправление? 27.05.2019
  • Я просто нажимаю на отгрузку заказа, удаляю все конечные точки, используя инструмент запроса образца на страница документации. Получил ответ 204, и когда я ПОЛУЧАЮ доставку заказа, я также получаю пустой 204. Но на элементе управления панель Я нажимаю на заказ, и все поставки (в центральной колонке, когда я раскрываю заказ) все еще там. Я что-то упускаю? Как избавиться от этих посылок? 28.05.2019
  • На панели управления есть 2 места, в которых отгрузка заказа будет отображаться: в разделе «Заказы»> Посмотреть здесь: screencast.com/t /1Dyny711fv, а также в разделе Заказы›Отгрузки. Я вижу, что оба они удалены, когда я удаляю отгрузку через API. При желании статус заказа нужно будет изменить отдельно. Вы пытаетесь редактировать другую область? Центральный столбец на экране просмотра заказа будет адресом доставки. 28.05.2019
  • Итак, Карен, на снимке экрана, которым вы поделились, я хочу изменить средний столбец (Доставка). Я могу добавить туда новый адрес, но когда я пытаюсь удалить отгрузку заказа (правая колонка), отгрузка не исчезает, а исходный/неправильный адрес доставки по-прежнему показывает, что товары были отправлены на этот адрес. Что я делаю не так? 29.05.2019
  • @WillardSolutions Действия, которые вы выполняете с объектом доставки, не повлияют на адрес(а) доставки, связанный с объектом заказа (то, что показано в среднем столбце). Отгрузка представляет собой элементы заказа, которые были отправлены на определенный адрес доставки — это отдельная сущность от адреса доставки заказа. Чтобы отредактировать адрес(а) доставки, связанный с заказом, вы можете либо добавить дополнительные адреса с PUT в /order/id, как указано выше, либо вы можете заархивировать заказ и повторно импортировать его с правильной информацией. 29.05.2019
  • Тогда я предполагаю, что мой вопрос: какое практическое применение имеет конечная точка доставки заказа DELETE? Если я не могу удалить отправление из заказа/адреса и повторно добавить его в другом месте, это кажется довольно бесполезным. Я неправильно понимаю цель этой конечной точки? 29.05.2019
  • Я не уверен, что понимаю здесь: I can't delete a shipment from an order/address and re-add that shipment elsewhere. Отгрузка = группа продуктов заказа + адрес, выбранный из массива адресов доставки заказа + перевозчик доставки. Таким образом, объект отгрузки состоит из элементов исходного заказа (т. е. адреса заказа и продуктов заказа), но не изменяет эти элементы. Вы можете использовать конечную точку удаления отгрузки, если вы создаете решение для печати этикеток для доставки и вам нужно повторно выполнить отправку с другими продуктами или другим адресом из массива адресов доставки. 29.05.2019
  • И когда я добавляю отправление, он добавляет новый адрес доставки в центральный столбец, но когда я удаляю отправление, он ничего не удаляет из центрального столбца на панели управления заказами. Мне просто кажется, что эта часть API ужасно нелогична. 30.05.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..