За последние 24 часа нас посетили 16675 программистов и 1573 робота. Сейчас ищут 650 программистов ...

woocommerce ошибка: Неверный или дублированный артикул

Тема в разделе "Wordpress", создана пользователем leha, 25 дек 2021.

Метки:
  1. leha

    leha Новичок

    С нами с:
    18 апр 2020
    Сообщения:
    12
    Симпатии:
    0
    PHP:
    1. foreach($prod as $q){
    2. //получаю ID товара по артикулу
    3.      if($q["articul"])
    4.                { $product_id = wc_get_product_id_by_sku((string)$q["articul"]);}
    5. //если товар есть обновляю цену
    6.      if($product_id){
    7.                 $product = wc_get_product($product_id );
    8.                 $product->set_regular_price($q["price"]);
    9.      }
    10. // если нету создаю новый
    11.      else{
    12.                $product = new WC_Product_Simple();
    13.                $product->set_sku((string)$q["articul"]);
    14.                $product->set_name($q["name"]);
    15.                $product->set_regular_price($q["price"]);
    16.      }
    17.      $product->save();
    18. }
    Получаю json с товарами по api. Написал плагин для обновления цен и добавления новых.
    Запускаю из админки отдельно по каждой категории. Большинство отрабатывает нормально , но в некоторых дает ошибку "не верный или дублированный артикул".
    Почему то wc_get_product_id_by_sku возвращает 0, хотя товар есть.
    Может кто то сталкивался с такой проблемой?
     
    #1 leha, 25 дек 2021
    Последнее редактирование: 25 дек 2021
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.790
    Симпатии:
    1.330
    Адрес:
    Лень
    просмотри внимательно логику

    • если нету $q["articul"] то, дальше....
    --- Добавлено ---
    99% программистов, когда глобально не смотрят на логику своего кода.
     
  3. leha

    leha Новичок

    С нами с:
    18 апр 2020
    Сообщения:
    12
    Симпатии:
    0
    Uncaught WC_Data_Exception: Неверный или дублированный артикул. in /home/users/info490_wp4/site/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-data.php:856
    #1 /home/users/info490_wp4/site/wp-content/plugins/apiprod/function.php(150): WC_Product->set_sku('152210')

    $q["articul"] =152210
    --- Добавлено ---
    Спасибо! Очень помогло. А по существу, кто-нибудь знает?
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.790
    Симпатии:
    1.330
    Адрес:
    Лень
    ты создаешь новый артикуль, когда он уже существует

    почему твое значение отрабатывает тот кусок, который действует "если нету создаю новый" ? Что возвращает wc_get_product_id_by_sku и почему он так делает, указывая на артикуль ?
     
  5. leha

    leha Новичок

    С нами с:
    18 апр 2020
    Сообщения:
    12
    Симпатии:
    0
    wc_get_product_id_by_sku возвращает 0, хотя товар есть.
    Именно это, почему он так делает, я и хотел узнать.