Etsy PHP API — варианты доставки

С помощью Etsy Listing API я получаю списки, соответствующие ключевому слову, и я могу пролистнуть через них проблем нет.

Однако я хочу найти только объявления с доставкой в ​​Великобританию.

Я пытался использовать параметр URL-адреса region, но все равно получаю товары, которые можно доставить только в США.

Может ли кто-нибудь помочь мне понять, что мне нужно пройти, чтобы получить товары, доставляемые в Великобританию, пожалуйста?


person Andrew Hall    schedule 10.02.2016    source источник
comment
У меня работает нормально здесь API KEY ИСКЛЮЧЕНО   -  person owenvoke    schedule 15.02.2016
comment
@PXgamer, хотя ваш URL-адрес работает, он, похоже, не ограничивает, как ожидалось. Например, попробуйте ссылку и некоторые элементы ( 2-й на момент публикации), Only ships to United States from Alabama, United States.   -  person Andrew Hall    schedule 15.02.2016


Ответы (2)


Если вы хотите использовать только списки, которые могут быть доставлены в Великобританию, вам нужно посмотреть информацию о доставке в списке. Вот как я это сделал:

$json = file_get_contents("https://openapi.etsy.com/v2/listings/active?keywords=ISBN&region=GB&includes=ShippingInfo(destination_country_id)&api_key=");
$listings = json_decode($json, true);
foreach($listings['results'] as $listing) {
    if (isset($listing['ShippingInfo'])) {
        foreach ($listing['ShippingInfo'] as $shipping) {
            if ($shipping['destination_country_id'] == 105) {
                //this listing ships to UK
                print_r($listing);
            }       
        }

    }
}
person pabl0rg    schedule 19.02.2016

Вот код для получения списка, который отправляется/доставляется в "Великобританию"

<?php
$apiContent = file_get_contents("https://openapi.etsy.com/v2/listings/active?api_key=YOUR-API-KEY-HERE&includes=ShippingInfo(destination_country_name)");
        $contentDecode = json_decode($apiContent, true);
        $total=0;
        foreach ($contentDecode['results'] as $row) {
            if (isset($row['ShippingInfo'])) {
                foreach ($row['ShippingInfo'] as $r) {
                    if ($r['destination_country_name'] == "United Kingdom") {
                        echo "<pre>";
                        print_r($row);
                        $total++;
                    }
                }
            }
        }
        echo $total;
?>

Я использовал параметр includes=ShippingInfo(destination_country_name), чтобы получить сведения о доставке в листинге. Он получает, в какую страну будет доставлен список. Надеюсь, это сработает для вас.

person Manoj Kumar    schedule 20.02.2016