Получение списка метаданных магазина отлично работает, если выполняется на сервере в простом представлении Django:
def my_view(request):
with request.user.session:
shop = shopify.Shop().current()
print(shop.metafields())
# returns [(metafield(1232543), metafields(143534534), etc]
Однако, если я сделаю что-то подобное (не паникуйте, я просто экспериментирую) в обработчике AJAX, он вернет пустой массив.
@csrf_exempt
def proxy_request(request):
site = "my-store.myshopify.com"
shop_user = AuthAppShopUser.objects.get(myshopify_domain=site)
user = auth.authenticate(request=request, myshopify_domain=site, token=shop_user.token)
if user:
auth.login(request, user)
with request.user.session:
shop = shopify.Shop().current()
print(shop.metafields()) # returns []
Спасибо за понимание!
Вы не определили site
в shop_user = AuthAppShopUser.objects.get(myshopify_domain=site)
Извините, я отредактирую вопрос - предположим, что site
действителен и определен.
@DavidLazar Объект магазина действителен
Первое, что нужно проверить, это то, что у вас даже есть действующий сеанс магазина. Если объект магазина пуст, для вас точно нет метаполей, поэтому начните на один уровень выше. Если у вас нет магазина, скорее всего, вы не прошли проверку подлинности. Итак, начните проверять свой код авторизации. В конце концов, вы увидите, где облажались. Нормальная отладка правильная.