• Как синхронизировать сток из Wildberries со стоком в Woocommerce по API?

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

    Получить доступ к API Wildberries. Для этого нужно зарегистрироваться на сайте wildberries.ru и создать приложение в личном кабинете. В приложении нужно указать адрес сайта и выбрать необходимые разрешения.
    Создать новый тип поста в 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' );
    Создать функцию для импорта товаров Wildberries в WordPress. Для этого нужно добавить следующий код в functions.php темы:
    // Import Wildberries Products
    function wplife_import_wb_products() {
    $url = 'https://suppliers-api.wildberries.ru/api/v2/suppli...';
    $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 для каждого товара.

    Создать функцию для обновления цены и количества товаров в WordPress. Для этого нужно добавить следующий код в functions.php темы:
    // Update Wildberries Products
    function wplife_update_wb_products() {
    $url = 'https://suppliers-api.wildberries.ru/api/v2/suppli...';
    $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.

    Добавить функцию для получения токена авторизации. Для этого нужно добавить следующий код в functions.php темы:
    // Get Wildberries Access Token
    function wplife_get_wb_access_token() {
    $url = 'https://suppliers-api.wildberries.ru/api/v2/suppli...';
    $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.

    Добавить хук для запуска функции импорта товаров при активации темы:
    // 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 без использования плагинов и сторонних сервисов.
    Ответ написан
    Комментировать