WooCommerce объявила сегодня, что ее новый API Store стал стабильным после двух лет разработки. Он поддерживает новую блочную корзину плагина и процесс оформления заказа, а также все блоки продуктов.
Store API — это общедоступный API без проверки подлинности, который предоставляет конечные точки REST API для корзины, оформления заказа и функциональности продукта. Основной разработчик WooCommerce Майк Джолли объяснил, чем новый API отличается от REST API плагина:
Основное различие между Store API и WC REST API заключается в том, что Store API разрешает неавторизованный доступ к данным хранилища, например продуктам. Это делает его подходящим для различных вариантов использования, включая пользовательские интерфейсы.
Это неавторизованный API . Для доступа не требуются ключи API или токены аутентификации.
Еще одно отличие состоит в том, что Store API поддерживает данные корзины. Это позволяет выполнять операции с корзиной, такие как добавление товаров в корзину, обновление количества, применение купонов и отправка заказов. Доступна только корзина текущего покупателя.
Данные, возвращаемые из Store API, всегда отражают текущего пользователя (на основе файлов cookie), тогда как REST API WC обеспечивает более широкий доступ к любым данным, если у вас есть правильные права доступа.
В интервью HollerWP в прошлом году Джолли сказал, что полезно думать об API Store как о клиентах, а о ядре REST API как об API для управления магазином.
«Разделение их таким образом дает понять, что данные раскрываются в общедоступном контексте», — сказал он.
Скотт Болинджер, соучредитель AppPresser , объяснил, как Store API решает проблему с исходным REST API WooCommerce.
«Он [API REST WC] никогда не предназначался для мобильных, безголовых или любых других интерфейсных реализаций», — сказал Болинджер. «Это было предназначено только для бэкэнд-администрирования, такого как инвентарь, добавление/удаление продуктов и т. д.
«Проблема в том, что альтернативы не было, поэтому безголовые/мобильные приложения использовали его для отображения товаров. С WC REST API все требует аутентификации, что не имеет смысла, поскольку продукты общедоступны на вашем веб-сайте. Вам не нужно проходить аутентификацию, чтобы увидеть чью-то продукцию».
Новый API магазина позволяет разработчикам получать продукты, атрибуты, коллекции и другие данные без аутентификации, а также добавляет API корзины, что делает возможным оформление заказа.
«Я думаю, что большинство реализаций WC Rest API, предназначенных для внешнего интерфейса, должны переключиться на Store API», — сказал Болинджер.
Команда WooCommerce все еще работает над тем, чтобы сделать этот API подходящим для автономных и мобильных приложений. В идеальном мире лучший API корзины для безголовых приложений WooCommerce был бы создан WooCommerce. Тем временем Болинджер рекомендовал CoCart .
CoCart — это настраиваемый WordPress REST API для WooCommerce, который позволяет разработчикам создавать безголовые (или несвязанные) магазины электронной коммерции, используя выбранные ими фреймворки.
«Я не использую Store API и не думаю, что буду», — сказал основатель Co-Cart Себастьян Дюмон. «Оба API уникальны для своих индивидуальных целей. API магазина WooCommerce разработан для блоков Гутенберга, для которых требуется только фиксированный формат, и его по-прежнему можно использовать на нативных витринах.
«Я не вижу сегодняшних новостей, затрагивающих CoCart. Большинство моих пользователей уже знали об API Store, когда он все еще был экспериментальным, и потерпел неудачу после того, как попробовал его для безголовых целей. Он также требует настройки, а CoCart — нет».
Дюмон сказал, что в Store API по-прежнему отсутствует много ценной информации, которая требуется разработчикам, и что использование CoCart экономит им значительное время на разработку.
«С WC Rest API нет ни корзины, ни кассы, поэтому здорово, что они добавили это», — сказал Болинджер. «Однако одноразовые номера работают только тогда, когда вы находитесь на сайте, поэтому для мобильных приложений или безголового WP вы столкнетесь с проблемами. К сожалению, это не то, что нужно для безголового (пока).
«Существует фильтр для отключения одноразовой аутентификации: add_filter( ‘woocommerce_store_api_disable_nonce_check’, ‘__return_true’ );даже изменение этого параметра для использования чего-то вроде JWT не будет полностью работать для безголовых, по крайней мере, в моем тестировании. Я надеюсь, что они решат эту проблему в будущем».
Эта конкретная проблема все еще открыта в репозитории WooCommerce GitHub. Похоже, что сопровождающие готовы исследовать, как ядро может приспособиться к этому. Тем временем для разработчиков мобильных приложений доступны сторонние решения.
Технический обзор того, что в настоящее время возможно с новым API Store, см. в объявлении Майка Джолли . Он продемонстрировал, как можно пройти весь процесс покупки с помощью API-клиента Insomnia, даже не посещая магазин. Техническая документация API и руководство по расширяемости доступны на GitHub.
Поскольку до крайнего срока соблюдения GDPR ЕС осталось всего 178 дней , многие владельцы сайтов…
Команда Gutenberg создаст станцию тестирования удобства использования в WordCamp US, где посетители смогут принять участие…
Сегодня компания 10up опубликовала предварительную версию своего плагина Distributor , нового решения для синдикации контента…
На этой неделе был выпущен Gutenberg 1.8 с несколькими заметными улучшениями, которые предоставят разработчикам плагинов…
На этой неделе был выпущен Gutenberg 15.5 с новыми функциями и улучшениями возможностей полнофункционального редактирования…
DesktopServer выпустил версию 3.8.4 своего программного обеспечения для локальной разработки. Эта версия включает в себя…