Geri kalan API'sındaki ayrıntılarıyla ürün listesini nasıl alabilirim magento2'deyim


9

Yerel mobil uygulama üzerinde çalışıyorum ve müşteri bir kategori seçtikten sonra ürünü görüntülemek istiyorum. Geri kalan istekte ürünün kategoriye göre listesini alabilirim, ancak bu listede ürün hakkında fazla bilgi yok.

Request : http://localhost/magento2/index.php/rest/V1/categories/24/products        

( 24 kategori kimliğidir )

Response : [{"sku":"WH01","position":1,"category_id":"24"},...]

Daha önce Magento 1.9ürün listesindeki gibi bir şey

{
2: {
entity_id: "2"
type_id: "basit"
sku: "Levis Bagpack"
açıklama: "Bagpack"
short_description: "Bagpack"
meta_anahtar kelime: boş
Adı: "Levis Bagpack"
meta_title: boş
meta_description: boş
düzenli_fiyat_with_tax: 45
regular_price_without_tax: 45
final_price_with_tax: 45
final_price_without_tax: 45
is_saleable: doğru
image_url: "http://172.16.8.24:8080/magento/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/images/catalog/product/placeholder/image.jpg"
} -

Mobil uygulamada resim ve diğer şeyleri gösterebilmek için ürün hakkında daha fazla bilgi almak için ne yapmalıyım?


SOAP API'sini nasıl çağırırım (örnek: Müşteri API'sı)?
Manoj Kumar

Yanıtlar:


4

Belki de tüm ayrıntıları almak için GET / V1 / products /: sku REST API'sini deneyebilirsiniz ( https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/etc/webapi.xml # l36 )

Döndürülen değer \ Magento \ Catalogue \ Api \ Data \ ProductInterface (ek özellikler dahil) temsili olacaktır https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Api/Data /ProductInterface.php

\ Magento \ Catalogue \ Api \ ProductRepositoryInterface :: 'e GET / V1 / products /: sku REST API'sini hangi hizmetleri alacağınızı kontrol edin.

Tüm ürün SKU'ları için birden fazla istekte bulunabilirsiniz.

VEYA

Ölçütlerinize göre tek bir istekte tüm listeyi almak için arama API'sını kullanabilirsiniz:

örnek: http: //localhost/magento2/index.php/rest/V1/products? searchCriteria [filter_groups] [0] [filtreler] [0] [alan] = sku & searchCriteria [filtre_grubu] [0] [filtreler] [0] [değer] = basit ve searchCriteria [filter_groups] [0] [filtreler] [1] [alan] = Stok ve searchCriteria [filter_groups] [0] [filtreler] [1] [değer] = Simple2 ve searchCriteria [filter_groups] [0] [filtreler] [0 ] [condition_type] = eq searchCriteria [CURRENT_PAGE] = 1 ve searchCriteria [PAGE_SIZE] = 2

Bu durumda SKU'lu ürünler - simple ve Simple2 aranmaktadır.


SOAP API'sini nasıl çağırırım (örnek: Müşteri API'sı)?
Manoj Kumar


denedik ama ben bu konuda çarptı lütfen konu magento.stackexchange.com/questions/76569/…
Manoj Kumar

@airboss 192.168.1.180/magento/index.php/rest/V1/products/SKU api'deki görüntünün URL'si tam bir URL değil. ":" /6/4/64275-152378-large.jpg "}, '. Bu URL için önek nasıl alınır?
nr5

storeConfigManager hizmetini kullanın ve baseMediaUrl dosyasını alın, ardından tam yolunuzu bulmak için görüntüden aldığınız yolu ekleyin. Güvenli taban URL'si için secureMediaUrl komutunu da kullanabilirsiniz. - Bağlantı: devdocs.magento.com/swagger/index.html#!/…
Chuck


2
define('BASEURL','http://localhost/magento20_0407/');

$apiUser = 'testUser'; 
$apiPass = 'admin123';
$apiUrl = BASEURL.'index.php/rest/V1/integration/admin/token';
/*
    Magento 2 REST API Authentication
*/
$data = array("username" => $apiUser, "password" => $apiPass);                                                                    
$data_string = json_encode($data);                       
try{
    $ch = curl_init($apiUrl); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
        'Content-Type: application/json',                                                                                
        'Content-Length: ' . strlen($data_string))                                                                       
    );       
    $token = curl_exec($ch);
    $token = json_decode($token);
    if(isset($token->message)){
        echo $token->message;
    }else{
        $key = $token;
    }
}catch(Exception $e){
    echo 'Error: '.$e->getMessage();
}


/*
    Get Product By SKU REST API Magento 2
    Use above key into header
*/
$headers = array("Authorization: Bearer $key"); 
//$requestUrl = BASEURL.'index.php/rest/V1/products/24-MB01';//24-MB01 is the sku.
//$requestUrl = BASEURL.'index.php/rest/V1/products?searchCriteria[page_size]=10';// get total 10 products
//$requestUrl = BASEURL.'index.php/rest/V1/categories/24/products';// 24 category id
$requestUrl = BASEURL.'index.php/rest/V1/products?searchCriteria=';//get all products

$ch = curl_init();
try{
    $ch = curl_init($requestUrl); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   

    $result = curl_exec($ch);
    $result = json_decode($result);

    if(isset($result->message)){
        echo $result->message;
    }else{
        print_r($result);
    }
}catch(Exception $e){
    echo 'Error: '.$e->getMessage();
}

Benzer şekilde $ requestUrl öğesini değiştirebilir ve ürün listesini kategori kimliğine göre filtreleyebilir ve ürün ayrıntılarını alabilirsiniz.

Lütfen sorunun çözülüp çözülmediğini onaylayın. Başka bir çözüm daha gönderirim.


1

@Airboss'un söylediklerine ek olarak, 'entegrasyon' API'larımız üzerinde çalışıyoruz. Bu, genişletilebilir özniteliklere sahip bir API çağrısıdır (Katalog, Satış).

Birkaç hafta içinde bir GET / V1 / products /: sku REST API çağrısı yapabilmeli ve bu ürünle ilgili her şeyi almalısınız (müşteri olarak yetkilendirilmişseniz, envanter nesnesini göremezsiniz). Örneğin, paketlenmiş bir ürün olan bir sku çağırırsanız, basit ürünü, bir dizi ürün seçeneğini, bir dizi ürün bağlantısını, medya url'sini ve envanter nesnesini * alırsınız. Aramayı kullandığınızda da aynı şey (yakında filtre olarak adlandırılacağız) API'sı.

-Chuck


/ products API'sı category_id parametresini içermiyor mu? Bunun için bir çözüm var mı?
nr5
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.