Необходимо вытащить все продукты, используя API-функцию eBay getsellerlist, используя XML и Stack Overflow

Я пытаюсь получить все продукты из учетной записи пользователя ebay, но когда я запускаю свой код, я получаю только несколько сотен. Я могу подтвердить, что есть 2 000 продуктов.

Как я могу получить все продукты без использования параметров времени и даты начала и окончания?

Если я уберу строки кода с <StartTimeFrom> в <EndTimeTo> это не показывает продуктов вообще.

$url = 'https://api.ebay.com/ws/api.dll';
$user_name  = "{username is in here}";
$auth_token = "{token is in here}";
for ($i = 1; $i <= 10; $i++) {
$headers = array(
'Content-Type: text/xml',
'X-EBAY-API-COMPATIBILITY-LEVEL:877',
'X-EBAY-API-DEV-NAME:177b0624-2d99-428a-8659-7404d9043c76',
'X-EBAY-API-APP-NAME:PeteNayl-d415-49bb-a950-495237441c1c',
'X-EBAY-API-CERT-NAME:6c336965-1a1f-4d11-94b1-3843c3ac995b',
'X-EBAY-API-SITEID:3',
'X-EBAY-API-CALL-NAME:GetSellerList'
);

$xml = '<?xml version="1.0" encoding="utf-8"?>
<GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>'.$auth_token.'</eBayAuthToken>
</RequesterCredentials>
<Pagination ComplexType="PaginationType">
<EntriesPerPage>200</EntriesPerPage>
<PageNumber>'.$i.'</PageNumber>
</Pagination>
<StartTimeFrom>2014-06-01T21:59:59.005Z</StartTimeFrom>
<StartTimeTo>2014-06-02T21:59:59.005Z</StartTimeTo>
<EndTimeFrom>2014-09-29T21:59:59.005Z</EndTimeFrom>
<EndTimeTo>2014-09-30T21:59:59.005Z</EndTimeTo>
<DetailLevel>ItemReturnDescription</DetailLevel>
<UserID>'.$user_name.'</UserID>
</GetSellerListRequest>';

...

2

Решение

Вы не можете отправить запрос без интервала времени, и что период между от и до не может превышать 120 дней. Если вы хотите вернуть все продукты обратно, вам нужно будет сделать несколько запросов к GetSellerList где каждый запрос охватывает определенный 120-дневный период.

Информация может быть найдена в документации eBay для обоих EndTimeFrom а также StartTimeFrom поля в запросе. Обратите внимание, что в документации не сказано, что поля являются обязательными, но вы не включили их в свой запрос. недостаточность значение будет возвращено в Ack поле ответа.

7

Другие решения

Посмотрите на официальный Ebay Doc вам просто нужно настроить параметры в соответствии с разделом, выделенным жирным шрифтом ниже 🙂

GetSellerList

Используйте этот вызов, чтобы получить элементы, перечисленные
аутентифицированный пользователь, включая данные элемента.

GetSellerList возвращает массив из нуля или более элементов, в зависимости от
активность пользователя и входы, используемые в вызове. Поля ввода могут
увеличить или отфильтровать возвращенные данные. См. Просмотр товаров продавца
для подробного описания получения элементов, используя GetSellerList.

Сведения об использовании Во всех вызовах должен быть хотя бы один фильтр диапазона дат.
указано.

Вы можете указать DetailLevel для управления данными ответа. Если вы установите
DetailLevel, вы должны установить значения нумерации страниц.

GetSellerList возвращает максимум 5000 элементов за вызов (это
возможно, если вы не укажете уровень детализации и, таким образом, вернете
наименьший набор данных для каждого элемента). Однако, если вы укажете любой
Значение DetailLevel (и, следовательно, увеличить поля, возвращаемые для каждого
пункт), вам может понадобиться использовать значения пагинации для получения полного
набор результатов. Если вы используете DetailLevel, ответ не может содержать больше
чем 200 предметов за звонок.

Множество деталей (например, описания предметов и улучшения списка)
не меняются часто, и получение этих значений увеличивает накладные расходы
ваши звонки. После того, как вы изначально загрузите детали для набора
элементы, последующие запросы для этих элементов должны извлекать только
информация об элементе, которая может измениться. Лучше всего избегать использования
DetailLevel of ReturnAll или GranularityLevel of Fine с
GetSellerList. Или рассмотрите возможность использования GetSellerEvents вместо
GetSellerList.

Если вам нужно использовать ReturnAll, чтобы получить все детали элемента, используйте
меньшее значение EntriesPerPage для ограничения количества возвращаемых элементов
от звонка. Чтобы улучшить производительность, укажите более короткий диапазон времени
с EndTimeFrom и EndTimeTo.

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

Используйте пагинацию для управления страницами возвращаемых данных.
Поле Pagination.EntriesPerPage контролирует, сколько элементов возвращается
за вызов, а Pagination.PageNumber указывает, какую страницу данных
получить в текущем вызове. Значение, указанное для EntriesPerPage
должно быть от 1 до 200.

Вы можете использовать несколько фильтров диапазона дат в одном вызове. Например,
Вы можете использовать StartTimeFrom и StartTimeTo, если хотите получить ответ на
содержат списки, которые начались между двумя временами. Используйте EndTimeFrom
и EndTimeTo, чтобы возвратить списки, заканчивающиеся между двумя временами.

Работа с Response GetSellerList возвращает список продавцов
элементы в контейнере ItemArray.

Данные ответа содержат объекты ItemType внутри ItemArray.
Каждый объект ItemType содержит данные для листинга. Сохранить предмет
данные, необходимые для вашего приложения. На выходе
Свойство ReturnedItemCountActual указывает, сколько элементов было
вернулся по звонку; Количество указывает, сколько предметов может быть
вернулся. HasMoreItems, если true, указывает, что есть больше элементов
подлежит возврату, требуя одного или нескольких дополнительных вызовов. Номер страницы
указывает на страницу возвращенных данных, а ItemsPerPage указывает на
количество предметов, возвращаемых за звонок.

Тестирование GetSellerList Вы можете проверить этот вызов в Песочнице
окружение после того, как вы используете AddItem, чтобы добавить как минимум два элемента.

Некоторые значения возвращаются, только если запросчик вызова является продавцом
предмет. Чтобы проверить вызов с точки зрения другого пользователя, позвоните
GetSellerList с пользователем, отличным от того, кто перечислил элемент.

Для приложений, которые перечисляют различные типы элементов (например, китайский
аукционы и товары с фиксированной ценой), создайте все возможные типы объявлений
используя AddItem, затем попытайтесь получить данные с помощью GetSellerList.

Если применимо к случаям использования приложения, перечислите тестовые элементы с
фиксированная и расчетная стоимость доставки. Затем получить элементы с
GetSellerList.

Для приложений, которые создают списки товаров по конкурентным ставкам (китайский
аукционы), предлагайте цену за товары с помощью пользовательского интерфейса Sandbox
извлечение элемента с использованием GetSellerList. Это заполнит высокий
данные участника торгов для элементов в наборе результатов.

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

Я надеюсь, что смогу помочь тебе.

2

По вопросам рекламы [email protected]