WooCommerce Добавить в корзину товары через плагин co-cart - PullRequest
0 голосов
/ 15 мая 2019

Я новичок в WooCommerce REST API. Я хочу добавить товар в корзину и перечислить все товары в корзине. Я добавил плагин Co-Cart на свой сервер и использую API Co-Cart для функций, связанных с корзиной.

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

1. Добавить товар в корзину:

Метод: POST

URL: https://www.myhost.com/wp-json/wc/v2/cart/add?token=user_token

Параметры: { "product_id": "9168", «количество»: «1» }

Ответ: { "ключ": "af086cdab7954f11a518e3af68XXXXX", "product_id": 111, "Вариант_ид": 0, «вариация»: [], «количество»: 1, "данные": {}, "data_hash": "b5c1d5ca8bae6d4896cf1807cdfXXXX", "line_tax_data": { "Промежуточный итог": [], "Всего": [] }, "line_subtotal": 50000, "line_subtotal_tax": 0, "line_total": 50000, "line_tax": 0 }

Получение правильного ответа с кодом состояния 200 при добавлении товара в корзину из приложения.

2. Просмотр содержимого корзины

Метод: GET

URL: https://www.myhost.com/wp-json/wc/v2/cart?token=user_token

Ответ: [] (Пустой массив JSON)

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

Пожалуйста, дайте мне знать, где я иду не так. Я использую только API плагинов Co-Cart.

**

EDIT

**

fetch(url, {
        method: methodName,
        async: true,
        crossDomain: true,
        headers: new Headers({
          "Content-Type": "application/json",
          "cache-control": "no-cache",
        }),
        body:data
      }).then((response) => {
        const statusCode = response.status;
        console.log("fetchData StatusCode : "+statusCode);
        console.log("fetchData response1 : " + JSON.stringify(response));
        console.log("fetchData response2 : " + response);
        return response.json();
      }).then((responseJson) => {
        console.log("fetchData responseJson : "+responseJson);
        var response = JSON.stringify(responseJson);
        console.log("fetchData responseJson stringify : " + response);
        response = JSON.parse(response);
        if (callBack != null) {
          callBack("", response);
        }
      }).catch((error) => {
        console.log("fetchData Api error : "+error);
        if (callBack != null) {
          console.log("fetchData Api error callBack != null 2");
          callBack("Error", "");
        }
      });

url - это URL для отправки, данные - это необработанные данные в формате строки JSON, а метод - GET или POST.

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Вот ответ на мой собственный вопрос.

Каким-то образом сложно интегрировать магазин WooCommerce в мобильное приложение, не имея предварительного знания WooCommerce и его рабочих критериев.

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

Проблема, из-за которой моя корзина не синхронизировалась смой текущий пользователь был для сеанса cookie для этого конкретного пользователя.Мне нужно установить cookie этого пользователя в каждом заголовке вызова API после входа в систему примерно так:

fetch(url1, {
              method: methodName,
              async: true,
              crossDomain: true,
              headers: new Headers({
                "Content-Type": "application/json",
                "cache-control": "no-cache",
                "cookie":"cookie value will goes here"
              }),
              body:data1
            })

Это просто решило мою проблему.Надеюсь, это поможет!

0 голосов
/ 15 мая 2019

Я проверяю документацию, https://co -cart.github.io / co-cart-docs / # view-cart-contents и ничего с вашим.

МожетВы проверяете, если Pretty permalinks in Settings > Permalinks so that the custom endpoints are supported. Default permalinks will not work.

...