Цель
Я хочу создать следующее приложение.
Торговец выбирает «лучшие продукты» для каждого покупателя. Они будут храниться в моем сервере.
Например:
- Customer A:
- Product X, variant 1
- Товар Y, вариант 3
- Customer B:
- Product X, variant 2
- Изделие Z, вариант 1
- Изделие W, вариант 1
После этого покупатель сможет войти в систему, перейти на страницу в магазине (например, store.com/top_products
) и увидеть свои собственные «лучшие продукты».
Что мне удалось сделать до сих пор
Мне удалось развернуть приложение Shopify rails (https://github.com/Shopify/shopify_app, которое использует драгоценный камень shopify_api) в Heroku и подключите его к моему магазину.
Мне также удалось настроить прокси приложения. Я получаю правильный ответ от приложения как для страницы приложения администратора, так и для прокси приложения.
По сути, мое общедоступное приложение работает нормально.
Что я должен делать сейчас
Мне нужно будет вызвать что-то вроде этого в прокси приложения:
ShopifyAPI::Product.find(:all, params: { limit: 10 })
Однако это можно вызвать только из ShopifyApp::AuthenticatedController
(как в контроллере приложения администратора), а не из ShopifyApp::ApplicationController
(как в прокси-контроллере).
Пока мне удалось вызвать только API-интерфейсы и увидеть правильные результаты на панели администратора магазина.
Мне не удается позвонить ShopifyAPI::Product.find
с неаутентифицированного прокси приложения.
Google мне особо не помогает. Это похоже на мою проблему (хотя и не имеет решения): https://ecommerce.shopify.com/c/shopify-discussion/t/how-to-connect-to-a-store-with-api-from-app-proxy-request-429417
Вопрос
- Как лучше всего вызвать API из прокси приложения?
- Или как мне отобразить некоторую информацию во внешнем интерфейсе магазина, используя мой бэкэнд, который взаимодействует с API магазина? Правильный ли подход - прокси-сервер приложения?