mucan / laravel-magento-api
Magento 2 REST API包装器,用于将Magento数据导出到您的Laravel应用程序中使用。
Requires
- php: ^7.3|^8.0
- guzzlehttp/guzzle: ^6.0|^7.0
- illuminate/support: ^7.0|^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- orchestra/testbench: ^5.0|^6.0
- phpunit/phpunit: ^9.0
README
Laravel - Magento API
为Laravel应用程序提供的面向对象的Magento 2 API包装器。
安装
使用Composer安装此包
composer require grayloon/laravel-magento-api
发布配置选项
php artisan vendor:publish --provider="Mucan\Magento\MagentoServiceProvider" --tag="config"
在您的.env文件中配置您的Magento 2 API端点和令牌
MAGENTO_BASE_URL="https://mydomain.com"
MAGENTO_ACCESS_TOKEN="client_access_token_here"
# Optional Config:
MAGENTO_BASE_PATH="rest"
MAGENTO_STORE_CODE="all"
MAGENTO_API_VERSION="V1"
API使用
示例
use Mucan\Magento\Magento; $magento = new Magento(); $response = $magento->api('products')->all(); $response->body() : string; $response->json() : array|mixed; $response->status() : int; $response->ok() : bool;
在大于500的错误上抛出异常。
可用方法
管理员令牌集成(IntegrationAdminTokenServiceV1)
/V1/integration/admin/token
生成管理员令牌
Magento::api('integration')->adminToken($username, $password);
捆绑产品选项(bundleProductOptionRepositoryV1)
/V1/bundle-products/{sku}/options/all
获取捆绑产品的所有选项。
Magento::api('bundleProduct')->options($sku);
购物车
/V1/carts/mine
返回认证客户的购物车信息。必须使用单个商店代码。
Magento::api('carts')->mine();
/V1/carts/mine/coupons/{couponCode}
将优惠券应用于指定的购物车。
Magento::api('carts')->couponCode($couponCode);
购物车项(quoteCartItemRepositoryV1)
/V1/carts/mine/items/
列出分配给指定客户购物车的项目。必须有一个商店代码。
Magento::api('cartItems')->mine();
/V1/carts/mine/items/
使用客户令牌添加/更新指定的购物车项。必须有一个商店代码。
Magento::api('cartItems')->addItem($cartId, $sku, $quantity);
put
- /V1/carts/mine/items/{itemId}
使用客户令牌更新指定的购物车项。必须有一个商店代码。
Magento::api('cartItems')->editItem($itemId, $body = []);
使用客户令牌删除指定的购物车项。必须有一个商店代码。
Magento::api('cartItems')->removeItem($itemId);
购物车总计(quoteCartTotalRepositoryV1)
/V1/carts/mine/totals
返回认证客户的购物车总计信息。必须使用单个商店代码。
Magento::api('cartTotals')->mine();
类别(catalogCategoryManagementV1)
/V1/categories
获取所有类别的列表
Magento::api('categories')->all($pageSize = 50, $currentPage = 1, $filters = []);
客户令牌集成(IntegrationCustomerTokenServiceV1)
/V1/integration/customer/token
生成客户令牌
Magento::api('integration')->customerToken($username, $password);
客户(多种类型)
/V1/customers/search
获取客户列表
Magento::api('customers')->all($pageSize = 50, $currentPage = 1, $filters = []);
/V1/customers/password
向客户发送带有密码重置链接的电子邮件。
Magento::api('customers')->password($email, $template, $websiteId);
/V1/customers/resetPassword
重置客户密码。
Magento::api('customers')->resetPassword($email, $resetToken, $newPassword);
访客购物车(多种类型)
/V1/guest-carts
启用客户或访客用户创建匿名客户的空购物车和报价。
Magento::api('guestCarts')->create();
/V1/guest-carts/{cartId}
返回指定购物车的信息。
Magento::api('guestCarts')->cart($cartId);
/V1/guest-carts/{cartId}/items
列出分配给指定购物车的项目。
Magento::api('guestCarts')->items($cartId);
/V1/guest-carts/{cartId}/items
添加/更新指定的购物车项。
Magento::api('guestCarts')->addItem($cartId, $sku, $quantity);
put
- /V1/guest-carts/{cartId}/items/{itemId}
更新指定的购物车项。
Magento::api('guestCarts')->editItem($cartId, $itemId, $body = []);
删除指定的购物车项。
Magento::api('guestCarts')->removeItem($cartId, $itemId);
/V1/guest-carts/{cartId}/estimate-shipping-methods
通过地址估算运费,并返回可用的运费方式列表。
Magento::api('guestCarts')->estimateShippingMethods($cartId);
/V1/guest-carts/{cartId}/coupons/{couponCode}
将优惠券应用于指定的购物车。
Magento::api('guestCarts')->couponCode($cartId, $couponCode);
订单(salesOrderRepositoryV1)
列出符合指定搜索标准的订单。
/V1/orders
Magento::api('orders')->all($pageSize = 50, $currentPage = 1, $filters = []);
/V1/orders/{id}
列出指定的订单
Magento::api('orders')->show($orderId);
产品属性(catalogProductAttributeRepositoryV1)
/V1/products/attributes/{attributeCode}
检索特定产品属性信息
Magento::api('productAttributes')->show($attributeCode);
产品链接类型(catalogProductLinkTypeListV1)
/V1/products/links/types
检索有关可用产品链接类型的信息
Magento::api('productLinkType')->types();
产品(catalogProductRepositoryV1)
/V1/products
获取产品列表
Magento::api('products')->all($pageSize = 50, $currentPage = 1, $filters = []);
/V1/products/{sku}
通过产品SKU获取产品信息
Magento::api('products')->show($sku);
自定义模块
Magento模块可以有自己的API端点。例如
<route method="POST" url="/V1/my-custom-endpoint/save"> ... </route> <route method="GET" url="/V1/my-custom-endpoint/get/:id"> ... </route>
使用这些端点,您可以直接使用get/post方法
Magento::api('my-custom-endpoint')->post('save', [...]);
Magento::api('my-custom-endpoint')->get('get/1');
架构
获取Magento 2 REST API的架构蓝图
Magento::api('schema')->show();
源项(inventoryApiSourceItemRepositoryV1)
/V1/inventory/source-items
获取分页排序项列表(通常用于检索数量)
Magento::api('sourceItems')->all($pageSize = 50, $currentPage = 1, $filters = []);
来源(inventoryApiSourcesRepositoryV1)
/V1/inventory/sources
获取分页来源列表。
Magento::api('sources')->all($pageSize = 50, $currentPage = 1, $filters = []);
/V1/inventory/sources/{$name}
获取指定的来源。
Magento::api('sources')->bySourceName($name);
库存(inventoryApiStocksRepositoryV1)
/V1/inventory/stocks
获取分页库存列表。
Magento::api('stocks')->all($pageSize = 50, $currentPage = 1, $filters = []);
测试
composer test
变更日志
请参阅变更日志获取最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全
如果您发现任何与安全相关的问题,请发送电子邮件至webmaster@grayloon.com,而不是使用问题跟踪器。
鸣谢
许可
MIT许可(MIT)。请参阅许可文件获取更多信息。