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