Помощь Создание магазина используя API поставщика

derealty

Разрушитель (V)
Сообщения
45
Симпатии
34
Баллы
471
Добрый день, столкнулся с проблемой, помогите советом.

Заказчик открывает магазин автозапчастей, синхронизация с поставщиком, происходит по его api.

Есть запрос:
PHP:
<?php

$connect = array(
    'wsdl'    => 'http://обращение_к_серверу_поставщика',
    'options' => array(
        'connection_timeout' => 1,
        'trace' => true
    )
);

$param = array(
    'KEY1' => 'первый_ключ',
    'KEY2' => 'второй_ключ',
    'text' => 'это_поле_запроса_которое_можно_менять',
    'delivery_id' => '123',
    'address_id'  => '321'
);

$query  = new SoapClient($connect['wsdl'], $connect['options']);
$result = $query->GetSearch($param);

print_r($result);

Который, при запросе допустим "лобовое стекло" - возвращает массив:
PHP:
(object) array(
   'SearchResult' =>
  (object) array(
     'success' => true,
     'text' => 'лобовое стекло',
     'PartsList' =>
    (object) array(
       'Part' =>
      array (
        0 =>
        (object) array(
           'guid' => 'NSII0022662338',
           'brand' => 'Tork',
           'partnumber' => 'TRK1202',
           'name' => 'Молдинг стекла лоб. верх. - Логан',
           'crosses' =>
          (object) array(
             'Part' =>
            (object) array(
               'guid' => 'NSIN0006125834',
               'brand' => 'Renault',
               'partnumber' => '6001547000',
               'name' => 'Уплотнитель лобового стекла',
               'stocks' =>
              (object) array(
                 'stock' =>
                (object) array(
                   'id' => 'HST139',
                   'price' => '1300',
                   'count' => 1,
                   'multiplicity' => 1,
                   'type' => 0,
                   'delivery' => 0,
                   'extra' => 0,
                   'description' => 'Подольск, ул.Поливановская 9, стр 4, КПП 1',
                   'deliveryStart' => '2023-02-21T09:05:43',
                   'deliveryEnd' => '2023-02-21T19:41:00',
                ),
              ),
            ),
          ),
        ),
        1 =>
        (object) array(
           'guid' => 'NSII0022662339',
           'brand' => 'Tork',
           'partnumber' => 'TRK1203',
           'name' => 'Молдинг стекла лоб. ниж. - Логан',
           'crosses' =>
          (object) array(
             'Part' =>
            (object) array(
               'guid' => 'NSIN0006125835',
               'brand' => 'Renault',
               'partnumber' => '6001547001',
               'name' => 'УПЛОТНИТЕЛЬ ЛОБ СТЕКЛА (РЕЗ)',
               'stocks' =>
              (object) array(
                 'stock' =>
                array (
                  0 =>
                  (object) array(
                     'id' => 'HST148688403',
                     'price' => '4684.02',
                     'count' => 1,
                     'multiplicity' => 1,
                     'type' => 0,
                     'delivery' => 1,
                     'extra' => 0,
                     'description' => 'Партнерский склад',
                     'deliveryStart' => '2023-02-22T19:00:00',
                     'deliveryEnd' => '2023-02-22T19:41:00',
                  ),
                  1 =>
                  (object) array(
                     'id' => 'HST323266847',
                     'price' => '2240.31',
                     'count' => 1,
                     'multiplicity' => 1,
                     'type' => 0,
                     'delivery' => 6,
                     'extra' => 0,
                     'description' => 'Партнерский склад',
                     'deliveryStart' => '2023-02-27T19:00:00',
                     'deliveryEnd' => '2023-02-27T19:41:00',
                  ),
                ),
              ),
            ),
          ),
        ),
        2 =>
        (object) array(
           'guid' => 'NSII0022662466',
           'brand' => 'Tork',
           'partnumber' => 'TRK1794',
           'name' => 'Форсунка омыв. стекла лоб. - Starex H1 ',
           'crosses' =>
          (object) array(
             'Part' =>
            (object) array(
               'guid' => 'NSII0006972619',
               'brand' => 'Hyundai/Kia',
               'partnumber' => '98630XX000',
               'name' => 'Форсунка стеклоомывателя',
               'stocks' =>
              (object) array(
                 'stock' =>
                array (
                  0 =>
                  (object) array(
                     'id' => 'HST245090509',
                     'price' => '708.83',
                     'count' => 2,
                     'multiplicity' => 1,
                     'type' => 0,
                     'delivery' => 6,
                     'extra' => 0,
                     'description' => 'Партнерский склад',
                     'deliveryStart' => '2023-02-27T19:00:00',
                     'deliveryEnd' => '2023-02-27T19:41:00',
                  ),
                  1 =>
                  (object) array(
                     'id' => 'HST771',
                     'price' => '646.58',
                     'count' => 30,
                     'multiplicity' => 1,
                     'type' => 0,
                     'delivery' => 7,
                     'extra' => 0,
                     'description' => 'Партнерский склад',
                     'deliveryStart' => '2023-02-28T19:00:00',
                     'deliveryEnd' => '2023-02-28T19:41:00',
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    ),
  ),
)

Подскажите, может кто-то делал магазин на WC с товаром получаемым таким же способом (отправляем запрос, получаем массив данных).
Как реализовали (хотя бы в общих чертах), сейчас у меня нет даже понимания, как получить категории, список товаров, сами карточки товаров имя только данные из этого массива?
 
Решение
Будьте внимательны !

Пользователь SinTaksiS, пытается набрать посты и баллы, выкладывая ссылки на дополнения с оплатой баллами.
Эти дополнения, причём более свежих версий, есть на форуме за существенно меньшее количество баллов, а то и просто, доступны за посты и реакции.
Для создания магазина на WooCommerce с товарами, получаемыми через запросы к API, потребуется следующее:

***Скрытое содержимое***

Полезные ссылки:
***Скрытое содержимое***

Добрый день, большое спасибо за подробный ответ, он очень помог! Если несложно поясните момент.

То есть товара по сути в магазине не будет, он (товар) будет появляться или обновляться в момент конкретного запроса пользователя к api поставщика?
 
Добрый день, большое спасибо за подробный ответ, он очень помог! Если несложно поясните момент.

То есть товара по сути в магазине не будет, он (товар) будет появляться или обновляться в момент конкретного запроса пользователя к api поставщика?
Доброе утро! Товар в магазине будет, хотя как настроишь. Для улучшения SEO-оптимизации магазина лучше написать уникальные описания для каждого товара, содержащие ключевые слова и фразы, которые пользователи могут использовать при поиске товаров. Для этого от поставщика тебе надо: цену, название товара, остаток на складе, SKU (артикул). Именно, каждый раз при запросе пользователя, будет обращаться к api поставщика и получать актуальную информацию по товару. Но, важно учитывать, что при использовании API поставщика вы должны следить за лимитами запросов, установленными поставщиком. Если вы превысите лимиты, ваш магазин может быть заблокирован и вы не сможете получить доступ к API до тех пор, пока не снизите количество запросов. Такое тоже может быть. Но тоже решаемо...


Кстати вот простое решение. Наткнулся с утра на это видео.


WP All Import Pro полезная информация:

Скрытое содержимое. Вам нужно войти или зарегистрироваться.
 
Последнее редактирование:
Будьте внимательны !

Пользователь SinTaksiS, пытается набрать посты и баллы, выкладывая ссылки на дополнения с оплатой баллами.
Эти дополнения, причём более свежих версий, есть на форуме за существенно меньшее количество баллов, а то и просто, доступны за посты и реакции.
 
Решение
Назад
Верх