今天将要讲解下Magento 2如何使用api创建订单的例子,这是一个教程非常简短,希望对你有帮助,下面将演示如何使用Magento2 api创建订单和更新源项
首先你要懂得magento 2的工作原理,和怎么创建自定义的模块如果你不知道如何创建magento 2请点击下面访问:
如何在Magento 2中创建自定义控制器Controller
如何你懂得了以上的技术请接着看下面的代码示例:
第1步骤:使用Magento 2 api创建订单。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | <?php $access_token = '4v81lfihtkqanfdr6798zj352qyuyx1x'; //Get Cart Id String $url = 'http://magento2.local/index.php/rest/V1/guest-carts/'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer ' . $access_token)); $result = curl_exec($ch); $cartId = str_replace('"', '', $result); //Get Quote Id and Item Id $body = json_encode(['cartItem' => ['quote_id' => $cartId, 'qty' => 1, 'sku' => '24-MB04']]); $url = 'http://magento2.local/index.php/rest/V1/guest-carts/'. $cartId . '/items'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $body); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer ' . $access_token)); $result = curl_exec($ch); $obj = json_decode($result); var_dump($obj); $body = json_encode([ 'addressInformation' =>[ 'shippingAddress' => [ "country_id" => 'US', "street" =>[ "123 Main Str" ], "company" => "Company", "telephone" => "123456", "postcode" => "91780", "city" => "El Monten", "firstname" => "Guo", "lastname" => "Jing", "region_id" => "12", "region" => "California", "email" => "dummy@example.com", "sameAsBilling" => 1 ], 'billingAddress' => [ "country_id" => 'US', "street" =>[ "123 Main Str" ], "company" => "Company", "telephone" => "123456", "postcode" => "91780", "city" => "El Monten", "firstname" => "Guo", "lastname" => "Jing", "region_id" => "12", "region" => "California", "email" => "dummy@example.com", ], "shipping_method_code" => "flatrate", "shipping_carrier_code" => "flatrate" ] ]); $url = 'http://magento2.local/index.php/rest/V1/guest-carts/'. $cartId . '/shipping-information'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $body); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer ' . $access_token)); $result = curl_exec($ch); var_dump($result); $body = json_encode([ "paymentMethod" => [ "method" => "checkmo" ] ]); $url = 'http://magento2.local/index.php/rest/V1/guest-carts/'. $cartId . '/order'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $body); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer ' . $access_token)); $result = curl_exec($ch); var_dump($result); curl_close($ch); |
第2步骤:创建或更新源项。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <?php $access_token = '4v81lfihtkqanfdr6798zj352qyuyx1x'; $url = 'http://magento2.local/index.php/rest/V1/inventory/source-items'; $ch = curl_init($url); $body = json_encode(['sourceItems' =>[ ['source_code' => 'default', 'sku' => '24-MB01', 'quantity'=>555, 'status'=>1], ['source_code' => 'la', 'sku' => '24-MB01', 'quantity' => 222, 'status' => 1], ['source_code' => 'default', 'sku' => '24-MB04', 'quantity'=>444, 'status'=>1], ['source_code' => 'la', 'sku' => '24-MB04', 'quantity' => 111, 'status' => 1], ['source_code' => 'default', 'sku' => '24-MB03', 'quantity'=>333, 'status'=>1], ['source_code' => 'la', 'sku' => '24-MB03', 'quantity' => 111, 'status' => 1], ['source_code' => 'default', 'sku' => '24-MB02', 'quantity'=>222, 'status'=>1], ['source_code' => 'la', 'sku' => '24-MB02', 'quantity' => 100, 'status' => 1], ['source_code' => 'default', 'sku' => '24-MB06', 'quantity'=>666, 'status'=>1], ['source_code' => 'la', 'sku' => '24-MB06', 'quantity' => 110, 'status' => 1], ['source_code' => 'default', 'sku' => '24-MB05', 'quantity'=>555, 'status'=>1], ['source_code' => 'la', 'sku' => '24-MB05', 'quantity' => 101, 'status' => 1], ]]); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $body); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer ' . $access_token)); $result = curl_exec($ch); var_dump($result); $obj = json_decode($result); var_dump($obj); curl_close($ch); |
第3步骤:获取访问令牌(Access Token)。
在前面的示例中,我使用$access_token进行API调用。您可能会问如何得到这个值。这里是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $url = 'http://magento2.local/index.php/rest/V1/integration/admin/token'; $ch = curl_init($url); $body = json_encode(['username' => 'your username', 'password' => 'your password']); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $body); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', "Content-Lenght: " . strlen($body))); $access_token = curl_exec($ch); echo $access_token . "\n\n\n"; |
我希望这些例子能对你以后的项目有所帮助。你可以查看所有Magento 2 api:
文章不错支持一下吧
谢谢你的留言,我将尽最大的努力给学习技术人员提供更好的技术支持,欢迎下次再来。