Отладка API заказа на маркете Не принято

1

Сделал все настройки, при отладке API заказа - вылетает ошибка:


Произошла неизвестная ошибка API магазина. Подробности можно посмотреть в логе API.

В логах пусто, вообще.

18 комментариев

  • +1

    В логах в магазине или на Маркете в "Лог API тестовых заказов" ?

    • +1
      Николай Дьячков Николай Дьячков 31 мая 2016 16:18 #

      Лог API тестовых заказов- пусто.

      В магазине:

      2016-05-25 14:14:49:
      Invalid request with token 'тут мой токен'
      2016-05-31 16:14:19:

      Invalid request with token ''

    • +1
      Михаил Михаил 22 июля 2016 20:30 #

      Решили ?

      тот же вопрос

      "errorDetails":"INVALID_DATA","errorDevDetails":"validate error: delivery options is empty but there are items to be delivered"
    • +1
      Николай Дьячков Николай Дьячков 22 июля 2016 20:48 #
      {"cart":{"items":[{"feedId":402508,"offerId":"321","price":165,"count":1,"delivery":true}],"deliveryOptions":[],"paymentMethods":["YANDEX"]}}
    • +1
      Николай Дьячков Николай Дьячков 22 июля 2016 20:48 #

      Такая же фигня.

    • +1
      Николай Дьячков Николай Дьячков 22 июля 2016 20:51 #

      И уже очень и очень долго.

    • +1
      Михаил Михаил 22 июля 2016 20:53 #

      deliveryOptions:[] - пустой, на него ругается

      может это только в тестовом, в реальном там будут данные передаваться?

      Что в deliveryOptions должно передаваться?

      в логах магазина пишет что данные там передаются:

      upd:

      он пустой

      в shopYandexmarketPluginApi.actions.php ему присваивается $carriers,

      if (true) {
                          $internal_added = true;
                          $carriers[] = array(
                              'id'          => 'courier',
                              'type'        => 'DELIVERY',
                              'serviceName' => 'Курьер',
                              'price'       => $price,
                              'dates'       => array(
                                  'fromDate' => date('d-m-Y', $from_date_timestamp),
                                  'toDate'   => date('d-m-Y', $to_date_timestamp),
                              ),
                          );
                      }
      

      не совсем понял if (true)

    • +1
      Михаил Михаил 22 июля 2016 21:34 #

      решил

      в настройках маркета в админке ( /webasyst/shop/?action=importexport#/yandexmarket:4/ )

      (Стоимость доставки(глобальный атрибут cost)

      RUB-фиксированная стоимость доставки


      должна быть больше нуля (или та стоимость которая на маркете у вас по умолчанию)

      ps сохранить изменения

    • +1
      Николай Дьячков Николай Дьячков 22 июля 2016 22:08 #

      У меня всё там нормально стоит 265 так что не помогает

    • +1
      Михаил Михаил 22 июля 2016 22:14 #

      нажать "экспортировать" ))

      if (ifset($this->profile['config']['shop']['delivery'], '') === 'true') {
                      if (ifset($this->profile['config']['shop']['deliveryIncluded']) === 'true') {
                          $price = 0;
                      } else {
                          $price = intval(ifset($this->profile['config']['shop']['local_delivery_cost']));
                      }

      "Доставка" -> "Да", там же

    • +1
      Михаил Михаил 23 июля 2016 12:50 #

      Чудеса, с утра перестало работать...
      что изменилось не понятно
      опять:

      "INVALID_DATA","errorDevDetails":"validate error: delivery options is empty but there are items to be delivered"
    • +1
      Михаил Михаил 23 июля 2016 15:12 #

      добавил костыль - работает

      wa-apps/shop/plugins/yandexmarket/lib/actions/api/shopYandexmarketPluginApi.actions.php

       if (false) {
                          $methods = $plugin_model->listPlugins('shipping');
                          if (count($methods)) {
                              foreach ($methods as $result) {
                                  if (!$result['status']) {
                                      continue;
                                  }
                                  //TODO calculate delivery prices
                                  $carriers[] = array(
                                      'id'          => sprintf('shipping.%s', $result['id']),
                                      'type'        => 'DELIVERY',
                                      'serviceName' => $result['name'],
                                      'price'       => floatval($price),
                                      'dates'       => array(
                                          'fromDate' => date('d-m-Y', $from_date_timestamp),
                                          'toDate'   => date('d-m-Y', $to_date_timestamp),
                                      ),
                                  );
                              }
                          }
                      }
                  }
                  
                   ///  мои правки
                   if(empty($carriers)) 
                   {
                   $carriers[] = array(
                              'id'          => 'courier',
                              'type'        => 'DELIVERY',
                              'serviceName' => 'Курьер',
                              'price'       => 290,
                              'dates'       => 
                                  array(
                                  'fromDate' => date('d-m-Y', $from_date_timestamp),
                                  'toDate'   => date('d-m-Y', $to_date_timestamp),
                              ),
                          );
                      }
                   ///  end мои правки
    • +1
      Михаил Михаил 25 июля 2016 03:10 #

      а разработчики молодцы ))
      такие феншуи if (false)
      сначала приводят к короткому замыканию )))

    • +1
      Николай Дьячков Николай Дьячков 25 июля 2016 14:04 #

      Заработало, но проверку подключения магазина по API не получается.

      Тестовые заказы приходят и через 15 минут удаляются, а в логах:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd"><html>
      <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>Ошибка #1062</title>
          <link href="/wa-content/css/wa/wa-1.0.css" rel="stylesheet" type="text/css" />
          <script src="/wa-content/js/jquery/jquery-1.8.2.min.js" type="text/javascript"></script>
          <script src="/wa-content/js/jquery-wa/wa.dialog.js" type="text/javascript"></script>
          <script type="text/javascript">$(function () {$('#wa-recovery-dialog').waDialog({'esc': false})});</script>
      </head>
      <body>
          <div id="wa-recovery">
              <img id="wa-recovery-stretched-background" />
              <div class="dialog width500px height300px" id="wa-recovery-dialog">
                  <div class="dialog-background"></div>
                  <div class="dialog-window">
                      <div class="dialog-content">
                          <div class="dialog-content-indent wa-500-error">
      
                              <h1>Ошибка #1062</h1>
                              <p>
                                                                                                                      <img src="/wa-apps/shop/img/shop.png" /><br />
                                                              <span class="small">Магазин</span>
                                                                                  </p>
                              <h2>Query Error<br />
      Query: INSERT  INTO shop_customer<br />
                         (`contact_id`, `last_order_id`, `number_of_orders`, `source`) VALUES (0, 2066, 1, NULL)<br />
      Error: 1062<br />
      Message: Duplicate entry '0' for key 'PRIMARY'</h2>
                              <p>
                                                      Please contact app developer.
                                                      </p>
                          </div>
                      </div>
                  </div>
              </div>
          </div>
      </body>
      </html>

      и

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd"><html>
      <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>Ошибка #1062</title>
          <link href="/wa-content/css/wa/wa-1.0.css" rel="stylesheet" type="text/css" />
          <script src="/wa-content/js/jquery/jquery-1.8.2.min.js" type="text/javascript"></script>
          <script src="/wa-content/js/jquery-wa/wa.dialog.js" type="text/javascript"></script>
          <script type="text/javascript">$(function () {$('#wa-recovery-dialog').waDialog({'esc': false})});</script>
      </head>
      <body>
          <div id="wa-recovery">
              <img id="wa-recovery-stretched-background" />
              <div class="dialog width500px height300px" id="wa-recovery-dialog">
                  <div class="dialog-background"></div>
                  <div class="dialog-window">
                      <div class="dialog-content">
                          <div class="dialog-content-indent wa-500-error">
      
                              <h1>Ошибка #1062</h1>
                              <p>
                                                                                                                      <img src="/wa-apps/shop/img/shop.png" /><br />
                                                              <span class="small">Магазин</span>
                                                                                  </p>
                              <h2>Query Error<br />
      Query: INSERT  INTO shop_customer<br />
                         (`contact_id`, `last_order_id`, `number_of_orders`, `source`) VALUES (0, 2066, 1, NULL)<br />
      Error: 1062<br />
      Message: Duplicate entry '0' for key 'PRIMARY'</h2>
                              <p>
                                                      Please contact app developer.
                                                      </p>
                          </div>
                      </div>
                  </div>
              </div>
          </div>
      </body>
      </html>

      И таких ошибок много...

    • +1
      Михаил Михаил 25 июля 2016 14:14 #

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

    • +1
      Николай Дьячков Николай Дьячков 25 июля 2016 14:17 #

      понял, об этом ничего не сказано в комментариях.

    • +1
      Николай Дьячков Николай Дьячков 25 июля 2016 14:31 #

      Подтвердил из админки магазина, но всёравно ошибки пришли:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd"><html>
      <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>Ошибка #1062</title>
          <link href="/wa-content/css/wa/wa-1.0.css" rel="stylesheet" type="text/css" />
          <script src="/wa-content/js/jquery/jquery-1.8.2.min.js" type="text/javascript"></script>
          <script src="/wa-content/js/jquery-wa/wa.dialog.js" type="text/javascript"></script>
          <script type="text/javascript">$(function () {$('#wa-recovery-dialog').waDialog({'esc': false})});</script>
      </head>
      <body>
          <div id="wa-recovery">
              <img id="wa-recovery-stretched-background" />
              <div class="dialog width500px height300px" id="wa-recovery-dialog">
                  <div class="dialog-background"></div>
                  <div class="dialog-window">
                      <div class="dialog-content">
                          <div class="dialog-content-indent wa-500-error">
      
                              <h1>Ошибка #1062</h1>
                              <p>
                                                                                                                      <img src="/wa-apps/shop/img/shop.png" /><br />
                                                              <span class="small">Магазин</span>
                                                                                  </p>
                              <h2>Query Error<br />
      Query: INSERT  INTO shop_customer<br />
                         (`contact_id`, `last_order_id`, `number_of_orders`, `source`) VALUES (0, 2071, 1, NULL)<br />
      Error: 1062<br />
      Message: Duplicate entry '0' for key 'PRIMARY'</h2>
                              <p>
                                                      Please contact app developer.
                                                      </p>
                          </div>
                      </div>
                  </div>
              </div>
          </div>
      </body>
      </html>
    • +1
      Михаил Михаил 25 июля 2016 14:48 #
      <h2>Query Error<br /> Query: INSERT INTO shop_customer<br /> (`contact_id`, `last_order_id`, `number_of_orders`, `source`) VALUES (0, 2071, 1, NULL)<br /> Error: 1062<br /> Message: Duplicate entry '0' for key 'PRIMARY'</h2>

      пытается создать пользователя с id = 0

      Добавить комментарий

      Чтобы добавить комментарий, зарегистрируйтесь или войдите