Skip to content

A simple Magento 2 REST API Object Oriented wrapper for Laravel applications.

License

Notifications You must be signed in to change notification settings

broken-titan/magento-laravel-api

 
 

Repository files navigation

Build Status Latest Stable Version Style CI Total Downloads License

Laravel - Magento API

A Magento 2 API Object Oriented wrapper for a Laravel application.

Installation

Install this package via Composer:

composer require grayloon/laravel-magento-api

Publish the config options:

php artisan vendor:publish --provider="Grayloon\Magento\MagentoServiceProvider" --tag="config"

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"

You can test your connection by running tinker, then: (new \Grayloon\Magento\Magento)->api('schema')->show();

API Usage

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;
$response->successful() : bool;
$response->failed() : bool;
$response->serverError() : bool;
$response->clientError() : bool;

Available Methods:

Admin Token Integration (IntegrationAdminTokenServiceV1)

/V1/integration/admin/token

Generate a admin token:

$magento->api('integration')->adminToken($username, $password);

Carts

/V1/carts/mine

Returns information for the cart for the authenticated customer. Must use a single store code.

$magento->api('carts')->mine();

Cart Items (quoteCartItemRepositoryV1)

/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);

Cart Totals (quoteCartTotalRepositoryV1)

/V1/carts/mine/totals

Returns information for the cart totals for the authenticated customer. Must use a single store code.

$magento->api('cartTotals')->mine();

Categories (catalogCategoryManagementV1)

/V1/categories

Get a list of all categories:

$magento->api('categories')->all($pageSize = 50, $currentPage = 1, $filters = []);

Customer Token Integration (IntegrationCustomerTokenServiceV1)

/V1/integration/customer/token

Generate a customer token:

$magento->api('integration')->customerToken($username, $password);

Customers (customerCustomerRepositoryV1)

/V1/customers/search

Get a list of customers:

$magento->api('customers')->all($pageSize = 50, $currentPage = 1, $filters = []);

Guest Cart (various)

/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);

Product Attributes (catalogProductAttributeRepositoryV1)

/V1/products/attributes/{attributeCode}

Retrieve specific product attribute information:

$magento->api('productAttributes')->show($attributeCode);

Product Link Types (catalogProductLinkTypeListV1)

/V1/products/links/types

Retrieve information about available product link types:

$magento->api('productLinkType')->types();

Products (catalogProductRepositoryV1)

/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);

Schema

Get a schema blueprint of the Magento 2 REST API:

$magento->api('schema')->show(); 

Source Items (inventoryApiSourceItemRepositoryV1)

/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 = []);

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

A simple Magento 2 REST API Object Oriented wrapper for Laravel applications.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%