Note: This package is no longer maintained. Please use the justbetter/laravel-magento-client package.
A Magento 2 API Object Oriented wrapper for a Laravel application.
Install this package via Composer:
composer require grayloon/laravel-magento-apiPublish the config options:
php artisan vendor:publish --provider="Grayloon\Magento\MagentoServiceProvider"Configure your Magento 2 API endpoint and token in your .env file:
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"
Example:
use Grayloon\Magento\Magento;
$magento = new Magento();
$response = $magento->api('products')->all();
$response->body() : string;
$response->json() : array|mixed;
$response->status() : int;
$response->ok() : bool;Will throw an exception on >500 errors.
You may also utilize the constructor directly without having to configure environment variables:
use Grayloon\Magento\Magento;
$magento = new Magento(
$baseUrl = 'https://my-magento-shop.com',
$token = 'client_access_token',
$version = 'V1',
$basePath = 'rest',
$storeCode = 'default'
);
$response = $magento->api('products')->all();/V1/integration/admin/token
Generate a admin token:
Magento::api('integration')->adminToken($username, $password);/V1/bundle-products/{sku}/options/all
Get all options for bundle product.
Magento::api('bundleProduct')->options($sku);/V1/carts/mine
Returns information for the cart for the authenticated customer. Must use a single store code.
Magento::api('carts')->mine();/V1/carts/mine/coupons/{couponCode}
Apply a coupon to a specified cart.
Magento::api('carts')->couponCode($couponCode);/V1/carts/mine/items/
Lists items that are assigned to a specified customer cart. Must have a store code.
Magento::api('cartItems')->mine();/V1/carts/mine/items/
Add/update the specified cart item with a customer token. Must have a store code.
Magento::api('cartItems')->addItem($cartId, $sku, $quantity);put - /V1/carts/mine/items/{itemId}
Update the specified cart item with a customer token. Must have a store code.
Magento::api('cartItems')->editItem($itemId, $body = []);Remove the specified cart item with a customer token. Must have a store code.
Magento::api('cartItems')->removeItem($itemId);/V1/carts/mine/totals
Returns information for the cart totals for the authenticated customer. Must use a single store code.
Magento::api('cartTotals')->mine();/V1/categories
Get a list of all categories:
Magento::api('categories')->all($pageSize = 50, $currentPage = 1, $filters = []);/V1/integration/customer/token
Generate a customer token:
Magento::api('integration')->customerToken($username, $password);/V1/customers/search
Get a list of customers:
Magento::api('customers')->all($pageSize = 50, $currentPage = 1, $filters = []);/V1/customers/password
Send an email to the customer with a password reset link.
Magento::api('customers')->password($email, $template, $websiteId);/V1/customers/resetPassword
Reset customer password.
Magento::api('customers')->resetPassword($email, $resetToken, $newPassword);GET /V1/customerGroups/{id}
Show the customer group by the provided ID.
Magento::api('customerGroups')->show($id);PUT /V1/customerGroups/{id}
Save the customer group by the provided ID.
Magento::api('customerGroups')->saveGroup($id, $customerGroupRepositoryV1SavePutBody = []);DELETE /V1/customerGroups/{id}
Delete customer group by the provided ID.
Magento::api('customerGroups')->deleteGroup($id);POST /V1/customerGroups
Save/Create Customer Group.
Magento::api('customerGroups')->createGroup($customerGroupRepositoryV1SavePostBody = []);GET /V1/customerGroups/search
Search the Customer Groups.
Magento::api('customerGroups')->search($pageSize = 50, $currentPage = 1, $filters = []);GET /V1/customerGroups/default
Get the default customer group.
Magento::api('customerGroups')->default();PUT /V1/customerGroups/default/{id}
Set the default customer group.
Magento::api('customerGroups')->setDefault($id);GET /V1/customerGroups/{id}/permissions
Determine if customer group can be deleted.
Magento::api('customerGroups')->permissions($id);/V1/guest-carts
Enable customer or guest user to create an empty cart and quote for an anonymous customer.
Magento::api('guestCarts')->create();/V1/guest-carts/{cartId}
Return information for a specified cart.
Magento::api('guestCarts')->cart($cartId);/V1/guest-carts/{cartId}/items
List items that are assigned to a specified cart.
Magento::api('guestCarts')->items($cartId);/V1/guest-carts/{cartId}/items
Add/update the specified cart item.
Magento::api('guestCarts')->addItem($cartId, $sku, $quantity);put - /V1/guest-carts/{cartId}/items/{itemId}
Update the specified cart item.
Magento::api('guestCarts')->editItem($cartId, $itemId, $body = []);Remove the specified cart item.
Magento::api('guestCarts')->removeItem($cartId, $itemId);/V1/guest-carts/{cartId}/estimate-shipping-methods
Estimate shipping by address and return list of available shipping methods.
Magento::api('guestCarts')->estimateShippingMethods($cartId);/V1/guest-carts/{cartId}/coupons/{couponCode}
Apply a coupon to a specified cart.
Magento::api('guestCarts')->couponCode($cartId, $couponCode);/V1/guest-carts/{cartId}
Assign a specified customer to a specified shopping cart.
Magento::api('guestCarts')->assignCustomer($cartId, $customerId, $storeId);Lists orders that match specified search criteria.
/V1/orders
Magento::api('orders')->all($pageSize = 50, $currentPage = 1, $filters = []);/V1/orders/{id}
List a specified order:
Magento::api('orders')->show($orderId);/V1/orders
Performs persist operations for a specified order.
Magento::api('orders')->edit($entity = []);/V1/products/attributes/{attributeCode}
Retrieve specific product attribute information:
Magento::api('productAttributes')->show($attributeCode);/V1/products/links/types
Retrieve information about available product link types:
Magento::api('productLinkType')->types();/V1/products
Get a list of products:
Magento::api('products')->all($pageSize = 50, $currentPage = 1, $filters = []);/V1/products/{sku}
Get info about a product by the product SKU:
Magento::api('products')->show($sku);Magento modules can have their own API endpoints. For example:
<route method="POST" url="/V1/my-custom-endpoint/save">
...
</route>
<route method="GET" url="/V1/my-custom-endpoint/get/:id">
...
</route>To use these you can directly use get/post methods:
Magento::api('my-custom-endpoint')->post('save', [...]);Magento::api('my-custom-endpoint')->get('get/1');Get a schema blueprint of the Magento 2 REST API:
Magento::api('schema')->show();/V1/inventory/source-items
Get a list of paginated sort items (typically used for quantity retrieval):
Magento::api('sourceItems')->all($pageSize = 50, $currentPage = 1, $filters = []);/V1/inventory/sources
Get a list of paginated sources.
Magento::api('sources')->all($pageSize = 50, $currentPage = 1, $filters = []);/V1/inventory/sources/{$name}
Get a specified source.
Magento::api('sources')->bySourceName($name);/V1/inventory/stocks
Get a list of paginated stocks.
Magento::api('stocks')->all($pageSize = 50, $currentPage = 1, $filters = []);/V1/store/storeConfigs
Get a list of store configs.
Magento::api('store')->storeConfigs();composer testPlease see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email webmaster@grayloon.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
