WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как отображать сопутствующие товары с помощью WooCommerce REST API

177

Когда дело доходит до интернет-магазинов, очевидно, что сопутствующие товары отображаются на одной странице сведений о продукте. Это помогает вашим клиентам показать похожие товары, которые они, возможно, захотят купить. Это также увеличивает вовлеченность пользователей на ваш сайт. Чем больше времени клиенты проводят в вашем магазине, тем больше шансов, что они купят ваши товары. В этой статье я покажу вам, как показывать сопутствующие товары с помощью WooCommerce REST API.

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

Пример, описанный в этой статье, также применим к веб-сайту WooCommerce. Можно использовать эту технику и отображать сопутствующие товары без использования каких-либо плагинов. Это даст вам больше контроля над дизайном и разметкой страницы вашего продукта.

Получите свой ключ клиента и секрет потребителя

Когда вы решите начать с WooCommerce REST API, вам сначала нужно получить свой ключ потребителя и секрет потребителя. Эти ключи являются идентификатором магазина и необходимы при вызове WooCommerce API. Вы можете прочитать об этом больше в их документации.

Сначала установите плагин WooCommerce на свой сайт. Затем перейдите на страницу WooCommerce-> Настройки. Перейдите на вкладку «Дополнительно», а затем на ссылку REST API.

Как отображать сопутствующие товары с помощью WooCommerce REST API

На этой странице нажмите кнопку «Создать ключ API».

Как отображать сопутствующие товары с помощью WooCommerce REST API

Введите описание, выберите разрешение «Чтение» и нажмите кнопку «Создать ключ API». Вы также можете выбрать разрешение «Чтение / запись». Это зависит от ваших требований. Если вам просто нужно прочитать данные из WooCommerce, выберите вариант «Читать». И если вы хотите выполнять и чтение, и запись, то очевидный вариант – «Чтение / запись». Здесь мы ориентируемся только на сопутствующие товары, поэтому достаточно разрешения «Чтение».

Как отображать сопутствующие товары с помощью WooCommerce REST API

Скопируйте свой ключ потребителя и секрет потребителя, которые потребуются при выполнении вызовов API.

Как отображать сопутствующие товары с помощью WooCommerce REST API

WooCommerce REST API для получения сопутствующих товаров

Когда вы будете готовы указать свой ключ и секрет потребителя, мы можем начать с кода, который вызывает API-вызов конечной точки WooCommerce. Поскольку нам нужно сначала получить связанные продукты, нам нужно получить данные об одном продукте через API. Это связано с тем, что мы обычно отображаем наши похожие продукты на одной странице продукта.

Поскольку нам нужно отправлять HTTP-запросы, установите библиотеку Guzzle, используя команду ниже.

composer require guzzlehttp/guzzle

Guzzle – это HTTP-клиент PHP, который упрощает отправку HTTP-запросов и упрощает интеграцию с веб-службами.

Наконец, давайте напишем код, чтобы получить один продукт, а затем связанные с ним продукты. Когда WooCommerce возвращает данные о продукте, в ответ он также содержит ключ related_ids вместе со значениями. Эти значения представляют собой не что иное, как идентификаторы сопутствующих товаров. Итак, в контексте этого наш PHP-код будет следующим.

<?php
require_once "vendor/autoload.php";
  
use GuzzleHttpClient;
 
define('WC_CONSUMER_KEY', 'PASTE_CONSUMER_KEY_HERE');
define('WC_CONSUMER_SECRET', 'PASTE_CONSUMER_SECRET_HERE');
  
$client = new Client([
    // Base URI is used with relative requests
    'base_uri' => 'YOUR_DOMAIN_BASE_URL',
]);
 
try {
    $response = $client->request('GET', '/wp-json/wc/v3/products/PRODUCT_ID_HERE', [
        'headers' => [
            "Authorization" => "Basic ". base64_encode(WC_CONSUMER_KEY.':'.WC_CONSUMER_SECRET)
        ],
        'verify' => false, //only needed if you are facing SSL certificate issue
    ]);
     
    $body = $response->getBody();
    $arr_body = json_decode($body);
 
    $response = $client->request('GET', '/wp-json/wc/v3/products', [
        'headers' => [
            "Authorization" => "Basic ". base64_encode(WC_CONSUMER_KEY.':'.WC_CONSUMER_SECRET)
        ],
        'query' => [
            'include' => $arr_body->related_ids,
        ],
        'verify' => false,
    ]);
     
    $body = $response->getBody();
    $arr_products = json_decode($body);
 
    if (!empty($arr_products)) {
        foreach ($arr_products as $product) {
            ?>
            <p>
                <a href="<?php echo $product->permalink; ?>"><?php echo $product->name; ?></a>
            </p>
            <?php
        }
    }
} catch (Exception $e) {
    echo $e->getMessage();
}

Замените заполнитель PRODUCT_ID_HERE на фактическое значение. В приведенном выше коде я передаю параметр includes в виде массива с related_ids. WooCommerce в ответ дает нам все подробности о продуктах. Затем мы просматриваем его и отображаем название продукта и ссылку на него. Пользователь также может распечатать другие данные из ответа.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее