Массовое обновление товаров

Комментарии

Комментариев: 14

  • Максим

    ну что ответ будет или как?

    0
    Действия с комментариями Постоянная ссылка
  • Дмитрий

    Едва ли есть какой-то другой вариант. Только посылать порционно массивы PUT и лимитировать скорость чтобы не вызывало ошибку превышения лимита. И не стоит тут ждать быстрого ответа =) Некоторые мои вопросы без ответа висят больше месяца и едва ли до них кто-то дойдёт)

    0
    Действия с комментариями Постоянная ссылка
  • Ivan Pivkin

    Добрый день!

    Ваша проблема включена в план разработки. Уточните, пожалуйста, на какой аккаунт идет запрос?

    0
    Действия с комментариями Постоянная ссылка
  • Максим

    vladimirbrashop

    0
    Действия с комментариями Постоянная ссылка
  • Максим

    когда ждать решение по данному вопросу?

    0
    Действия с комментариями Постоянная ссылка
  • Ivan Pivkin

    Максим, не могли бы Вы приложить проблемный скрипт?

    0
    Действия с комментариями Постоянная ссылка
  • Максим

    ошибся. в функции ошибку допустил. вот исправленная версия. отправка одного пакета занимает 26 секунд

    public function UpdatePricesInMC(){
    $products=array();
    $variants=array();
    $p=0;
    $v=0;
    $sql='SELECT {{catalog}}.art, {{catalog}}.price, {{catalog}}.oldprice, {{mc_uuids}}.type, {{mc_uuids}}.uuid, {{mc_uuids}}.id as uuid_id FROM {{catalog}}
    INNER JOIN {{mc_uuids}} ON ({{mc_uuids}}.art={{catalog}}.art)
    WHERE {{mc_uuids}}.uuid!=\'\' ';
    $list=DB::getAll($sql);
    foreach($list as $item){
    $tmp=array();
    $tmp=array(
    'meta'=>array(
    'href'=>'https://online.moysklad.ru/api/remap/1.1/entity/'.$item['type'].'/'.$item['uuid'],
    'metadataHref'=>'https://online.moysklad.ru/api/remap/1.1/entity/product/metadata',
    'type'=>$item['type'],
    'mediaType'=>'application/json'),
    'salePrices'=>array(0=>array('value'=>($item['price']*100), 'priceType'=>'Цена продажи'), 0=>array('value'=>($item['oldprice']*100), 'priceType'=>'Старая цена'))
    );
    if($item['type']=='product'){
    if(count($products[$p]['vals'])==100)
    $p++;
    $products[$p]['vals'][]=$tmp;
    $products[$p]['ids'][]=$item['uuid_id'];
    }elseif($item['type']=='variant'){
    if(count($variants[$v]['vals'])==100)
    $v++;
    $variants[$v]['vals'][]=$tmp;
    $variants[$v]['ids'][]=$item['uuid_id'];
    }
    }
    foreach($products as $prod){
    //$start=microtime(true);
    $ret=$this->getData('https://online.moysklad.ru/api/remap/1.1/entity/product/', 'POST', $prod['vals']);
    //echo (microtime(true)-$start);
    //die;
    if(count($prod['ids'])>0){
    $sql='UPDATE {{mc_uuids}} SET sended=1 WHERE id IN ('.implode(', ', $prod['ids']).')';
    DB::exec($sql);
    }
    }
    foreach($variants as $var){
    $this->getData('https://online.moysklad.ru/api/remap/1.1/entity/variant/', 'POST', $var['vals']);
    if(count($var['ids'])>0){
    $sql='UPDATE {{mc_uuids}} SET sended=1 WHERE id IN ('.implode(', ', $var['ids']).')';
    DB::exec($sql);
    }
    }

    }

    0
    Действия с комментариями Постоянная ссылка
  • Ivan Pivkin

    Максим, не могу найти логи с вашим запросом. Какой логин Вы используете при запросе? 

    0
    Действия с комментариями Постоянная ссылка
  • Максим

    корректно ли писать такие данные в публичной ветке?

    0
    Действия с комментариями Постоянная ссылка
  • Ivan Pivkin

    Логи с упомянутым вами логином vladimirbrashop не могу найти, поэтому еще раз уточняю. Можете написать на почту

    0
    Действия с комментариями Постоянная ссылка
  • Максим

    отправил логин вам на почту

     

    0
    Действия с комментариями Постоянная ссылка
  • Максим

    прошу уведомить, когда будет решена проблема. если решить не получится, то предложите альтернативу. т.к. на данный момент при таких объемах товаров данный вариант не подходит

    0
    Действия с комментариями Постоянная ссылка
  • Добрый день. В данный момент на указанном вами аккаунте vladimirbrashop наблюдается только 1800 товаров. Попытка провести исследование и симитировать аналогичную ситуацию с обновлением товаров не дала ошибок 500. Если ошибки у вас повторяются - пришлите, пожалуйста, логи с запросами, ответами от нашего АПИ и временем выполнения запроса в этот тред, либо в нашу техподдержку.

     

    По вопросу долгого времени обновления сущностей - оптимизация будет проводиться в следующей версии АПИ.

    -1
    Действия с комментариями Постоянная ссылка
  • Максим

    ))))))))))))))))))))))))) спустя месяц получил ответ. Спасибо. Вот только читайте внимательно сообщение. Я писал про товары и их модификации, а не только про товары. Тех поддержка как всегда на высоте!

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.