Интеграция WooCommerce с Wildberries без плагинов и сторонних сервисов

Для интеграции WooCommerce с Wildberries без использования плагинов и сторонних сервисов нужно выполнить следующие шаги:

  1. Получить доступ к API Wildberries. Для этого нужно зарегистрироваться на сайте wildberries.ru и создать приложение в личном кабинете. В приложении нужно указать адрес сайта и выбрать необходимые разрешения.
  2. Создать новый тип поста в WordPress для товаров Wildberries. Для этого нужно добавить следующий код в functions.php темы:
// Register Wildberries Products post type
function wplife_register_wb_product_post_type() {
  $labels = array(
    'name'               => __( 'Wildberries Products'),
    'singular_name'      => __( 'Wildberries Product'),
  );
  $args = array(
    'label'              => __( 'Wildberries Products'),
    'public'             => false,
    'show_ui'            => true,
    'capability_type'    => 'post',
    'hierarchical'       => false,
    'rewrite'            => false,
    'query_var'          => false,
    'supports'           => array( 'title', 'editor' ),
  );
  register_post_type( 'wplife_wb_product', $args );
}
add_action( 'init', 'wplife_register_wb_product_post_type' );
  1. Создать функцию для импорта товаров Wildberries в WordPress. Для этого нужно добавить следующий код в functions.php темы:
// Import Wildberries Products
function wplife_import_wb_products() {
  $url = 'https://suppliers-api.wildberries.ru/api/v2/supplier/products';
  $args = array(
  'method' => 'GET',
    'headers' => array(
      'Authorization' => 'Bearer ' . get_option( 'wplife_wb_access_token' ),
      'Content-Type' => 'application/json'
    )
  );
  $response = wp_remote_request( $url, $args );
  if ( is_wp_error( $response ) ) {
    return false;
  } else {
    $body = wp_remote_retrieve_body( $response );
    $data = json_decode( $body );
    foreach ( $data->products as $product ) {
      $post_data = array(
        'post_title' => $product->name,
        'post_content' => $product->description,
        'post_type' => 'wplife_wb_product',
        'post_status' => 'publish'
      );
      $post_id = wp_insert_post( $post_data );
      if ( $post_id ) {
        update_post_meta( $post_id, 'wplife_wb_product_id', $product->id );
        update_post_meta( $post_id, 'wplife_wb_product_price', $product->price );
        update_post_meta( $post_id, 'wplife_wb_product_quantity', $product->quantity );
        update_post_meta( $post_id, 'wplife_wb_product_sku', $product->vendorCode );
      }
    }
  }
}

Функция использует API Wildberries для получения списка товаров и создает новые записи в WordPress для каждого товара.

  1. Создать функцию для обновления цены и количества товаров в WordPress. Для этого нужно добавить следующий код в functions.php темы:
// Update Wildberries Products
function wplife_update_wb_products() {
  $url = 'https://suppliers-api.wildberries.ru/api/v2/supplier/products';
  $args = array(
    'method' => 'GET',
    'headers' => array(
      'Authorization' => 'Bearer ' . get_option( 'wplife_wb_access_token' ),
      'Content-Type' => 'application/json'
    )
  );
  $response = wp_remote_request( $url, $args );
  if ( is_wp_error( $response ) ) {
    return false;
  } else {
    $body = wp_remote_retrieve_body( $response );
    $data = json_decode( $body );
    foreach ( $data->products as $product ) {
      $post_id = get_page_by_meta_key( 'wplife_wb_product_id', $product->id, 'wplife_wb_product' )->ID;
      update_post_meta( $post_id, 'wplife_wb_product_price', $product->price );
      update_post_meta( $post_id, 'wplife_wb_product_quantity', $product->quantity );
    }
  }
}

Функция использует API Wildberries для получения списка товаров и обновляет цены и количества товаров в WordPress.

  1. Добавить функцию для получения токена авторизации. Для этого нужно добавить следующий код в functions.php темы:
// Get Wildberries Access Token
function wplife_get_wb_access_token() {
  $url = 'https://suppliers-api.wildberries.ru/api/v2/supplier/auth/token';
  $args = array(
    'method' => 'POST',
    'body' => array(
      'login' => 'your-wildberries-login', // Укажите свой логин
      'password' => 'your-wildberries-password' // Укажите свой пароль
    )
  );
  $response = wp_remote_request( $url, $args );
  if ( is_wp_error( $response ) ) {
    return false;
  } else {
    $body = wp_remote_retrieve_body( $response );
    $data = json_decode( $body );
    update_option( 'wplife_wb_access_token', $data->access_token );
  }
}

Функция использует логин и пароль от аккаунта Wildberries для получения токена авторизации и сохранения его в базу данных WordPress.

  1. Добавить хук для запуска функции импорта товаров при активации темы:
// Import Wildberries Products on theme activation
function wplife_import_wb_products_on_activation() {
  wplife_get_wb_access_token();
  wplife_import_wb_products();
}
add_action( 'after_switch_theme', 'wplife_import_wb_products_on_activation' );

При активации темы будет получен токен авторизации и запущена функция импорта товаров.

// Update Wildberries Products on schedule
function wplife_update_wb_products_on_schedule() {
  wplife_get_wb_access_token();
  wplife_update_wb_products();
}
wp_schedule_event( time(), 'twicedaily', 'wplife_update_wb_products_on_schedule' );

Функция обновления товаров будет запускаться автоматически каждые 12 часов.

В результате выполнения этих шагов WooCommerce будет интегрирован с Wildberries без использования плагинов и сторонних сервисов.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх