ฉันจะรับรายการผลิตภัณฑ์พร้อมรายละเอียดในส่วนที่เหลือ API ฉันใช้ magento2


9

ฉันกำลังทำงานกับแอปพลิเคชันมือถือดั้งเดิมและต้องการแสดงผลิตภัณฑ์หลังจากลูกค้าเลือกหมวดหมู่แล้ว ฉันสามารถรับรายการผลิตภัณฑ์ตามหมวดหมู่ในคำขอส่วนที่เหลือ แต่รายการนั้นไม่มีรายละเอียดมากเกี่ยวกับผลิตภัณฑ์

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

( 24 คือ ID หมวดหมู่ )

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

ก่อนหน้านี้ในMagento 1.9รายการผลิตภัณฑ์เป็นสิ่งที่ชอบ

{
2: {
entity_id: "2"
type_id: "ง่าย"
sku: "Levis Bagpack"
คำอธิบาย: "Bagpack"
short_description: "Bagpack"
meta_keyword: null
ชื่อ: "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: จริง
image_url: "http://172.16.8.24:8080/magento/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/images/catalog/product/placeholder/image.jpg"
} -

ฉันควรทำอย่างไรเพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์เพื่อให้ฉันสามารถแสดงภาพและสิ่งอื่น ๆ ในแอพมือถือ


จะเรียกใช้ SOAP API ได้อย่างไร (ตัวอย่าง: Customer API)
Manoj Kumar

คำตอบ:


4

บางทีคุณสามารถลองใช้ GET / V1 / ผลิตภัณฑ์ /: sku REST API เพื่อรับรายละเอียดทั้งหมด ( https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/etc/webapi.xml # l36 )

ค่าที่ส่งคืนจะแสดงถึง \ Magento \ Catalog \ Api \ Data \ ProductInterface (รวมถึงแอตทริบิวต์เพิ่มเติม) https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Api/Data /ProductInterface.php

ตรวจสอบ \ Magento \ Catalog \ Api \ ProductRepositoryInterface :: รับบริการที่ GET / V1 / ผลิตภัณฑ์ /: sku REST API

คุณสามารถร้องขอได้หลายครั้งสำหรับ SKU ทั้งหมดของผลิตภัณฑ์

หรือ

คุณสามารถใช้ API การค้นหาเพื่อดึงรายการทั้งหมดในคำขอเดียวตามเกณฑ์ของคุณ:

เช่นhttp: //localhost/magento2/index.php/rest/V1/products? searchCriteria [filter_groups] [0] [ตัวกรอง] [0] [ฟิลด์] = sku & searchCriteria [filter_groups] [0] [ตัวกรอง] [ค่า] = ง่ายและ searchCriteria [filter_groups] [0] [ฟิลเตอร์] [1] [ฟิลด์] = SKU & searchCriteria [filter_groups] [0] [ฟิลเตอร์] [1] [ค่า] = simple2 & searchCriteria [filter_groups] [0] [ฟิลเตอร์] [0 ] [condition_type] = & EQ searchCriteria [CURRENT_PAGE] = 1 & searchCriteria [page_size] = 2

ในกรณีนี้ผลิตภัณฑ์ที่มี SKU - ค้นหาอย่างง่ายและ Simple2


จะเรียกใช้ SOAP API ได้อย่างไร (ตัวอย่าง: Customer API)
Manoj Kumar

@ManojKumar devdocs.magento.com/guides/v2.0/get-started/soap/
airboss

เราลองแล้ว แต่ฉันหลงทางโปรดดูหัวข้อmagento.stackexchange.com/questions/76569/…
Manoj Kumar

@airboss URL ของภาพใน192.168.1.180/magento/index.php/rest/V1/products/SKU api ไม่ใช่ URL แบบเต็ม .. สิ่งที่เป็นเช่นนี้ '{"attribute_code": "small_image", "ค่า ":" /6/4/64275-152378-large.jpg "}, ' คุณคิดว่าจะนำหน้าคำนำหน้าสำหรับ URL นี้ได้อย่างไร
nr5

ใช้บริการ storeConfigManager และรับ baseMediaUrl จากนั้นเพิ่มเส้นทางที่คุณได้รับจากภาพเพื่อให้เกิดเส้นทางแบบเต็มของคุณ คุณยังสามารถใช้ secureMediaUrl สำหรับ url ฐานที่ปลอดภัย - ลิงก์: devdocs.magento.com/swagger/index.html#!/…
Chuck

2

นอกจากนี้ (ไม่ใช่เป็นการทดแทน) สำหรับคำตอบอื่น ๆ หากหลังจากนั้นคุณยังขาดข้อมูลคุณสามารถเติมช่องว่างโดยการเขียนฟังก์ชั่น API ของคุณเอง: https://alankent.wordpress.com/2015/07/24 / สร้าง-a-ใหม่ส่วนที่เหลือเว็บบริการในวีโอไอพี-2 /


จะเรียกใช้ SOAP API ได้อย่างไร (ตัวอย่าง: Customer API)
Manoj Kumar

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();
}

ในทำนองเดียวกันคุณสามารถเปลี่ยน $ requestUrl และกรองรายการผลิตภัณฑ์ตามรหัสหมวดหมู่และรับรายละเอียดผลิตภัณฑ์

โปรดยืนยันว่าสามารถแก้ไขปัญหาของคุณได้หรือไม่ มิฉะนั้นฉันจะโพสต์วิธีแก้ปัญหาอื่น


1

นอกจากสิ่งที่ @airboss กล่าวแล้วเรากำลังทำงานกับรูปแบบ 'การรวมระบบ' ของ API นั่นคือการเรียก API ที่มีแอททริบิวต์แบบขยายได้ (Catalogue, Sales)

ในอีกไม่กี่สัปดาห์คุณจะสามารถโทร GET / V1 / ผลิตภัณฑ์ /: sku REST API และรับทุกสิ่งที่เกี่ยวข้องกับผลิตภัณฑ์นั้น (หากคุณได้รับอนุญาตให้เป็นลูกค้าคุณจะไม่เห็นวัตถุสินค้าคงคลัง) ตัวอย่างเช่นถ้าคุณเรียกว่า sku ซึ่งเป็นผลิตภัณฑ์ที่รวมเป็นกลุ่มคุณจะได้รับผลิตภัณฑ์แบบง่ายอาร์เรย์ของตัวเลือกผลิตภัณฑ์อาร์เรย์ของลิงก์ผลิตภัณฑ์ URL สื่อและวัตถุสินค้าคงคลัง * สิ่งเดียวกันเมื่อคุณใช้การค้นหา (เราจะเรียกมันว่ากรองแทนเร็ว ๆ นี้) API

-Chuck


API / ผลิตภัณฑ์ API ไม่รวมพารามิเตอร์ category_id? วิธีแก้ปัญหาสำหรับสิ่งนั้น?
nr5
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.