Bagaimana saya bisa mendapatkan daftar produk dengan detailnya di API sisanya saya di magento2


9

Saya sedang mengerjakan aplikasi seluler asli dan ingin menampilkan produk setelah pelanggan memilih suatu kategori. Saya bisa mendapatkan daftar produk berdasarkan kategori dalam permintaan istirahat tetapi daftar itu tidak memiliki banyak detail tentang produk.

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

( 24 adalah ID kategori )

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

Sebelumnya dalam Magento 1.9daftar produk adalah sesuatu seperti

{
2: {
entitas_id: "2"
type_id: "simple"
sku: "Levis Bagpack"
deskripsi: "Bagpack"
short_description: "Bagpack"
meta_keyword: null
nama: "Levis Bagpack"
meta_title: null
meta_description: null
regular_price_with_tax: 45
regular_price_without_tax: 45
final_price_with_tax: 45
final_price_without_tax: 45
is_saleable: true
image_url: "http://172.16.8.24:8080/magento/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/images/catalog/product/placeholder/image.jpg"
} -

Apa yang harus saya lakukan untuk mendapatkan lebih banyak info tentang produk sehingga saya dapat menampilkan gambar dan hal-hal lain di aplikasi seluler?


bagaimana cara memanggil SOAP API (contoh: API Pelanggan)?
Manoj Kumar

Jawaban:


4

Mungkin Anda dapat mencoba GET / V1 / products /: sku REST API untuk mendapatkan semua detail ( https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/etc/webapi.xml # l36 )

Nilai yang dikembalikan akan merupakan representasi dari \ Magento \ Katalog \ Api \ Data \ ProductInterface (termasuk atribut tambahan) https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Api/Data /ProductInterface.php

Periksa \ Magento \ Katalog \ Api \ ProductRepositoryInterface :: dapatkan layanan mana yang mendapatkan GET / V1 / products /: sku REST API.

Anda dapat membuat beberapa permintaan untuk semua SKU produk.

ATAU

Anda dapat menggunakan API pencarian untuk mengambil seluruh daftar dalam satu permintaan berdasarkan kriteria Anda:

mis: http: //localhost/magento2/index.php/rest/V1/products? searchCriteria [filter_groups] [0] [filter] [0] [field] = sku & searchCriteria [filter_groups] [0] [filter] [0] [value] = simple & searchCriteria [filter_groups] [0] [filter] [1] [field] = sku & searchCriteria [filter_groups] [0] [filter] [1] [value] = Simple2 & searchCriteria [filter_groups] [0] [filter] [0] ] [condition_type] = eq & searchCriteria [current_page] = 1 & searchCriteria [page_size] = 2

Dalam hal ini produk dengan SKU - sederhana dan Simple2 sedang dicari.


bagaimana cara memanggil SOAP API (contoh: API Pelanggan)?
Manoj Kumar


kami sudah mencoba tetapi saya terkejut dengan hal ini, silakan lihat utas magento.stackexchange.com/questions/76569/…
Manoj Kumar

@airboss URL gambar di 192.168.1.180/magento/index.php/rest/V1/products/SKU api bukan url lengkap .. sesuatu seperti ini '{"atribut_code": "small_image", "value ":" /6/4/64275-152378-large.jpg "}, '. Setiap ide bagaimana cara mendapatkan awalan untuk URL ini?
nr5

gunakan layanan storeConfigManager dan dapatkan baseMediaUrl kemudian tambahkan path yang Anda dapatkan dari gambar untuk menghasilkan path lengkap Anda. Anda juga dapat menggunakan secureMediaUrl untuk url basis aman. - Tautan: 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();
}

Anda juga dapat mengubah $ requestUrl dan memfilter daftar produk berdasarkan id kategori dan mendapatkan detail produk.

Harap konfirmasi apakah itu menyelesaikan masalah Anda atau tidak. Lain saya akan memposting solusi lain.


1

Selain apa yang dikatakan @airboss, kami sedang mengerjakan gaya 'integrasi' API kami. Itu adalah panggilan API yang memiliki atribut yang dapat diperluas yang ditambahkan (Katalog, Penjualan).

Dalam beberapa minggu Anda akan dapat melakukan panggilan GET / V1 / products /: sku REST API dan mendapatkan semua yang terkait dengan produk itu (jika Anda diizinkan sebagai pelanggan, Anda tidak akan melihat objek inventaris). Misalnya, jika Anda memanggil sku yang merupakan produk yang dibundel, Anda akan mendapatkan produk sederhana, array opsi produk, array tautan produk, url media, dan objek inventaris *. Hal yang sama ketika Anda menggunakan pencarian (kami akan segera memanggilnya filter) API.

-Membuang


API V1 / produk tidak menyertakan parameter category_id? Solusi apa untuk itu?
nr5
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.