ПОЛУЧИТЬ пустой cart.js | делать покупки

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

Я успешно просмотрела все товары и их варианты. Я также могу добавить товар/вариант в корзину. Это «успешно», потому что я получаю статус 200 И я могу видеть, какие продукты добавляются в мою учетную запись Shopify. На том конце все работает.

Когда я вызываю корзину с запросом GET, я вижу корзину, но она совершенно пуста (item_count: 0). Я пробовал добавлять разные продукты/варианты. Он всегда пуст.

Я что-то упускаю? Нужно ли вызывать корзину по-другому?

Заранее спасибо!


person JessySue    schedule 13.10.2016    source источник
comment
Вы пытаетесь создать собственную функцию добавления в корзину для стандартного магазина Shopify? Предоставьте некоторый контекст и пример кода.   -  person bknights    schedule 13.10.2016
comment
Я предполагаю, что вы неправильно нажимаете конечную точку добавления в корзину. Убедитесь, что вы публикуете /cart/add.js и что данные содержат (как минимум) действительный идентификатор варианта. (Лучше использовать сериализованную форму, так как это гарантирует, что любые свойства, установленные различными приложениями, также будут переданы). Я написал достаточно ajax-вызовов Shopify от руки, что иногда забывал «пост», и это возвращает 200 (Ага! Получил страницу!), Ничего не делая, оставляя меня в недоумении, что убирает вещи на несколько минут .   -  person Dave B    schedule 13.10.2016
comment
После нажатия конечной точки добавления в корзину вы также можете вручную перейти к [yourstore]/cart.js, чтобы увидеть, что в данный момент находится в вашей корзине. Обычно у меня открыта отдельная вкладка, чтобы постоянно обновлять представление необработанных данных при тестировании. Расширение браузера, такое как JSONview, очень поможет вам в этом, если у вас его еще нет.   -  person Dave B    schedule 13.10.2016


Ответы (1)


Когда вы ПОЛУЧАЕТЕ cart.js, а количество ваших товаров равно нулю, это означает, что вы ничего не положили в корзину. Когда вы помещаете товары в корзину и проверяете, что они действительно находятся в корзине, и выполняете GET для cart.js, если этот вызов все еще пуст, то вам действительно очень не повезло и, вероятно, вы просто делаете очень глупо ошибка в вашем вызове GET.

person David Lazar    schedule 13.10.2016
comment
У меня такая же проблема, и что более странно, если я проверяю /cart напрямую, я получаю предметы внутри, но /cart.js все еще возвращает пустой список. - person Gapipro; 05.11.2016
comment
Существует много способов отправить данные POST в конечную точку корзины и вернуть действующую корзину, а также множество других способов сделать это недопустимым способом. Поскольку вы можете видеть товары в корзине, если ваш запрос GET верен, вы увидите их, а не item_count=0. Внимательно проверьте свой GET-запрос. Скорее всего у вас с ним проблема. Осмотрите с помощью такого инструмента, как Charles. Часто самые простые вещи могут победить самые лучшие намерения относительно самых простых вещей. - person David Lazar; 05.11.2016
comment
В запросе GET нет ничего плохого (можно проверить, посетив этот URL-адрес непосредственно в браузере, где я все еще вижу пустой список). Похоже, что здесь происходит то, что Shopify имеет проблемы с аннулированием запроса /cart.js при обновлении корзины, потому что я вижу в заголовках (cf-cache-status:HIT), что /cart.js всегда возвращает кешированную версию из Облачная вспышка. - person Gapipro; 05.11.2016
comment
Также эта проблема появилась за последние 2 дня. До этого все работало как обычно. - person Gapipro; 05.11.2016
comment
Супер! Так что продолжайте. У вас, видимо, нет проблемы, с которой вы можете что-то сделать. - person David Lazar; 06.11.2016