Инструкция по переходу с WordPress WooCommerce на Shop-Script

Подробное описание переноса данных из интернет-магазина на основе WordPress WooCommerce в Shop-Script

Для того чтобы перейти с WordPress WooCommerce на Shop-Script, используйте бесплатный плагин «Переход на Shop-Script».

1. Настройка WordPress WooCommerce

Включите REST API

Перейдите в раздел «WooCommerce → Settings → API» и включите «Enable REST API».


Сгенерируйте API-ключ

Перейдите в раздел «WooCommerce → Settings → API → Keys/Apps».


Нажмите «Add Key».

В полях настройки ключа введите любое описание, выберите любого пользователя и оставьте выбранным уровень доступа Read.


Нажмите «Generate API Key».

Скопируйте значения «Consumer Key» и «Consumer Secret» — они потребуются для настройки переноса данных в Shop-Script.

2. Перенос данных из WordPress в Shop-Script

Установите Shop-Script: зарегистрируйтесь в облаке Webasyst или установите скрипты на своем сервере.

В установленном бекенде Shop-Script откройте встроенное приложение «Инсталлер», перейдите в раздел «Плагины», выберите плагины для Shop-Script, найдите и установите одной кнопкой плагин «Переход на Shop-Script».


Для импорта данных откройте приложение «Магазин» и перейдите в раздел «Импорт/экспорт».

Выберите пункт «Переход на Shop-Script».

Из списка доступных CMS выберите «WordPress WooCommerce».

Введите URL установки WordPress, а также вставьет значения Consumer Key и Consumer Secret , скопированные в настройках WordPress WooCommerce.

Нажмите «Загрузить».

В появившейся области выберите соответствие статусов заказов, доступных в WooCommerce, статусам, настроенным в Shop-Script.


Нажмите на кнопку подтверждения для запуска импорта данных.

Дождитесь завершения процесса — не закрывайте окно браузера до его окончания.

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

  • +1
    Niba Niba 9 октября 2017 19:20 #

    Ругается: Could not find WordPress installation by the URL provided

    Что делать?

    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 10 октября 2017 09:27 #

      Попробуйте в файле wa-apps/shop/plugins/migrate/lib/transport/shopMigrateWoocommerceTransport.class.php в 2 местах заменить

      http://{$hostname}

      на

      https://{$hostname}
      • +1
        Максим Максим 21 марта 2019 14:02 #

        После смены получаю ошибку Пользовательский ключ утерян (woocommerce_api_authentication_error)

        Вот что нашел в поддержке WP:

        Ключ потребителя отсутствует

        Иногда серверы могут неправильно анализировать заголовок авторизации (если вы видите ошибку «Ключ потребителя отсутствует» при аутентификации через SSL, у вас есть проблема с сервером).

        В этом случае вы можете вместо этого указать в качестве параметров строки запроса ключ / секретный ключ. Пример:

        https://local.wordpress.dev/wp-json/wc/v2/orders?consumer_key=XXXX&consumer_secret=XXXX

        Как исправить ошибку и импортировать данные из WP?

        • +1
          Михаил Ушенин Михаил Ушенин Webasyst 21 марта 2019 16:36 #

          Попробуйте в файле wa-apps/shop/plugins/migrate/lib/transport/shopMigrateWoocommerceTransport.class.php заменить строку

          $url = "http://{$hostname}/wc-api/{$this->getOption('version')}/";

          на

          $url = "http://{$hostname}/wc-api/{$this->getOption('version')}/consumer_key={$this->getOption('consumer_key')}&consumer_secret={$this->getOption('consumer_secret')}";

          и строку

          $url = "http://{$hostname}/wc-api/{$this->getOption('version')}/{$query}";

          на

          $url = "http://{$hostname}/wc-api/{$this->getOption('version')}/{$query}?consumer_key={$this->getOption('consumer_key')}&consumer_secret={$this->getOption('consumer_secret')}";

        • +1
          Skeypgreys Skeypgreys 29 октября 2017 12:44 #

          Не работает.

          Enter your main WordPress blog URL

          Could not find WordPress installation by the URL provided


          Возможно ли что ошибка появляется из-за того что SC стоит на локале?

        • +1
          Anton Anton 28 апреля 2018 18:17 #

          Пишу вам, но что-то вы не подсказываете. Плагин как не работает, так и не работает. Как перенести данные то ?

        • +1
          Minya Jam Minya Jam 10 сентября 2018 15:17 #

          С чем связана такая ошибка?

          Пользовательский ключ утерян (woocommerce_api_authentication_error)

          При этом данные CK и CS верные.
          Woocommerce plugin version: 3.1.1

          • 0
            Михаил Ушенин Михаил Ушенин Webasyst 10 сентября 2018 15:40 #

            Это стоит уточнить в базе знаний WooCommerce.

            • +1
              Minya Jam Minya Jam 10 сентября 2018 20:49 #

              Тут всегда авторизация с помощью oauth 

                  private function query($query, $params = array(), $file = null)
                  {
                      waSessionStorage::close();
                      $time = microtime(true);
                      $hostname = rtrim(preg_replace('@^https?://@', '', $this->getOption('url')), '/');
                      $params = array_filter($params);
              
                      if ($query) {
                          if (false) {
                              $url = "https://{$this->getOption('consumer_key')}:{$this->getOption('consumer_secret')}@{$hostname}/wc-api/{$this->getOption('version','v2')}/{$query}";
                          } else {
                              $url = "http://{$hostname}/wc-api/{$this->getOption('version')}/{$query}";
                              $params = $this->getOauthParams($url, $params);
                          }
              
                      } else {
                          $url = "http://{$hostname}/wc-api/{$this->getOption('version')}/";
                      }

              Только вот, если указать адрес начиная с https , то ожидается совсем другое.

              Листинг woocommerce:

                  /**
                   * Authenticate the request. The authentication method varies based on whether the request was made over SSL or not.
                   *
                   * @since 2.1
                   * @param WP_User $user
                   * @return null|WP_Error|WP_User
                   */
                  public function authenticate( $user ) {
              
                      // Allow access to the index by default
                      if ( '/' === WC()->api->server->path ) {
                          return new WP_User( 0 );
                      }
              
                      try {
              
                          if ( is_ssl() ) {
                              $keys = $this->perform_ssl_authentication();
                          } else {
                              $keys = $this->perform_oauth_authentication();
                          }
              
                          // Check API key-specific permission
                          $this->check_api_key_permissions( $keys['permissions'] );
              
                          $user = $this->get_user_by_id( $keys['user_id'] );
              
                          $this->update_api_key_last_access( $keys['key_id'] );
              
                      } catch ( Exception $e ) {
                          $user = new WP_Error( 'woocommerce_api_authentication_error', $e->getMessage(), array( 'status' => $e->getCode() ) );
                      }
              
                      return $user;
                  }

              Выполнится условие if ( is_ssl() ) { ... соответственно авторизация не сработает. Также обнаружена ошибка, не совпадает oauth_signature

              Вот что shop-script помещает в значение $string_to_sign

              GET&http%3A%2F%2Fsite.com%2Fwc-api%2Fv2%2Fproducts%2Fcategories&oauth_consumer_key%3Dck_10c8bc0de17c28d08c07314823f64271bd69a1b4%26oauth_nonce%3D587f2d69c1371e4a857c54e45a40f31d632b2468%26oauth_signature_method%3DHMAC-SHA256%26oauth_timestamp%3D1536592732

              А вот то, что в woocommerce

              GET&http%3A%2F%2Fsite.com%2Fwc-api%2Fv2%2Fproducts%2Fcategories&oauth_consumer_key%3Dck_10c8bc0de17c28d08c07314823f64271bd69a1b4%26oauth_nonce%3D587f2d69c1371e4a857c54e45a40f31d632b2468%26oauth_signature_method%3DHMAC-SHA256%26oauth_timestamp%3D1536592732%26q%3D%252Fwc-api%252Fv2%252Fproducts%252Fcategories

              Соотвественно хеш не совпадает

              Плагин не рабочий для woocommerce. Не умеет импортировать вариативные товары.

              • +1
                Михаил Ушенин Михаил Ушенин Webasyst 11 сентября 2018 09:39 #

                Вы пишете о 3 проблемах?

                1. При указании URL с https:// используется авторизация OAuth.
                2. Shop-Script отправляет неправильное значение параметра oauth_signature.
                3. Плагин не умеет импортировать вариативные товары.

                Сообщения об ошибках желательно оформлять в виде сообщений в специальном разделе форума поддержки. Отдельное сообщение для каждой ошибки. Так их удобнее обрабатывать и обсуждать, если потребуется.

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

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