• Во-первых хотел выразить признательность за столь необходимый плагин!
    Для нескольких частных предпринимателей, с которыми я работаю, это лучших из всех доступных вариантов и по цене и по качеству.

    Теперь о небольшой проблеме.

    Тестировал выгрузку из 1С: УНФ 1.5 Все сработало прекрасно. Конфликтов при выгрузке не возникло, 1С сообщило об успешной выгрузке.
    Однако на сайт выгрузился только один вид цен из двух необходимых и указанных для выгрузки.

    Известно, что в woocommerce 2 вида цен: sale price и regular price.
    Скажите, возможно ли как-то сделать так, чтобы при выгрузке двух цен первая попадала в Sale price, а вторая в regular?

    https://www.ads-software.com/plugins/woocommerce-and-1centerprise-data-exchange/

Viewing 15 replies - 46 through 60 (of 77 total)
  • Вроде все норм. А можешь еще сделать отладку. Единственное добавь вывод var_dump($offer[‘Цены’]);die; покажи вывод в виде скрина. Хочу проверить, все ли правильно записалось

    Куда нужно добавить?

    Добавить можешь после $post_meta = array();

    array(1) {
    [“41adf844-6845-11e6-9e75-ec9afa83b90e”]=>
    array(6) {
    [“Представление”]=>
    string(21) “450 руб. за шт”
    [“ИдТипаЦены”]=>
    string(36) “41adf844-6845-11e6-9e75-ec9afa83b90e”
    [“ЦенаЗаЕдиницу”]=>
    string(6) “450.00”
    [“Валюта”]=>
    string(6) “руб”
    [“Единица”]=>
    string(4) “шт”
    [“Коэффициент”]=>
    string(1) “1”
    }
    }

    commit

    Потом ссотри вывод. Если товаров немного, то можешь сделать вывод всего объекта $offer

    array(5) {
    [“ХарактеристикиТовара”]=>
    array(0) {
    }
    [“Ид”]=>
    string(36) “eff38901-684b-11e6-9e75-ec9afa83b90e”
    [“Наименование”]=>
    string(50) “Пистолет Техно-Сонус Newborn 126”
    [“Цены”]=>
    array(1) {
    [“41adf844-6845-11e6-9e75-ec9afa83b90e”]=>
    array(6) {
    [“Представление”]=>
    string(20) “18 руб. за шт”
    [“ИдТипаЦены”]=>
    string(36) “41adf844-6845-11e6-9e75-ec9afa83b90e”
    [“ЦенаЗаЕдиницу”]=>
    string(5) “18.00”
    [“Валюта”]=>
    string(6) “руб”
    [“Единица”]=>
    string(4) “шт”
    [“Коэффициент”]=>
    string(1) “1”
    }
    }
    [“Цена”]=>
    array(6) {
    [“Представление”]=>
    string(20) “20 руб. за шт”
    [“ИдТипаЦены”]=>
    string(36) “75a9dd1f-3641-11e3-ada4-000c29b3b732”
    [“ЦенаЗаЕдиницу”]=>
    string(5) “20.00”
    [“Валюта”]=>
    string(6) “руб”
    [“Единица”]=>
    string(4) “шт”
    [“Коэффициент”]=>
    string(1) “1”
    }
    }

    commit

    Переименуй переменную sale_price в saleprice, как у меня

    Так же.
    Нашел где перехватывает значение, в последней строке:

    if (!is_null($price)) {
    $sale_price = @$current_post_meta[‘_sale_price’];
    $sale_price_from = @$current_post_meta[‘_sale_price_dates_from’];
    $sale_price_to = @$current_post_meta[‘_sale_price_dates_to’];
    if (empty($current_post_meta[‘_sale_price’])) {
    $post_meta[‘_price’] = $price;

    В том коде, который я указал. Остальное не трогай. Там такая переменная уже имеется просто

    Я так и сделал:

    /* Выгрузка двух типов цен – розничная (75a9dd1f-3641-11e3-ada4-000c29b3b732) и распродажная (41adf844-6845-11e6-9e75-ec9afa83b90e)*/

    $post_meta = array();
    // var_dump($offer);die;
    $saleprice = isset($offer[‘Цены’][’41adf844-6845-11e6-9e75-ec9afa83b90e’][‘ЦенаЗаЕдиницу’]) ? wc1c_parse_decimal($offer[‘Цены’][’41adf844-6845-11e6-9e75-ec9afa83b90e’][‘ЦенаЗаЕдиницу’]) : ”;

    if (!is_null($price)) {
    $post_meta[‘_regular_price’] = $price;
    if($saleprice && $saleprice != $price)
    $post_meta[‘_sale_price’] = $post_meta[‘_price’] = $saleprice;

    $post_meta[‘_manage_stock’] = ‘yes’;
    }

    Добавь эту переменную тоже туда:

    $post_meta[‘_sale_price’] = $current_post_meta[‘_sale_price’] = $post_meta[‘price’] = $saleprice;

    Почему-то из за кода, идущего ниже, а именно последней строки, значение неверное становится в _price:

    if (!is_null($price)) {
    $sale_price = @$current_post_meta[‘_sale_price’];
    $sale_price_from = @$current_post_meta[‘_sale_price_dates_from’];
    $sale_price_to = @$current_post_meta[‘_sale_price_dates_to’];
    if (empty($current_post_meta[‘_sale_price’])) {
    $post_meta[‘_price’] = $price;

    Если вставить $current_post_meta[‘_sale_price’];, то срабатывает, но старое значение _sale_price не перезаписывается нужным.

    Даже не знаю. Сейчас с телефона сижу, не могу код свой посмотреть. Может и что-то менял но забыл. Завтра гляну тогда..отпишусь

    Спасибо большое! Напиши реквизиты пожалуйста.

Viewing 15 replies - 46 through 60 (of 77 total)
  • The topic ‘Выгрузка нескольких видов цен’ is closed to new replies.