diff --git a/README.md b/README.md index cba8824..a4bedea 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,23 @@ This is a PHP client for the Magento / Adobe Commerce REST API. +This is a fork of https://github.com/ClickAndMortar/magento-php-api-client + +Fork Started: 2024-12-08 by Kraig Larson + +Fork Purposes: +- Add new API endpoint to get products/attributes +- For my current purposes, needed to reduce PHP version from 8.2 to 8.1 + ## Requirements -* PHP 8.2 or higher +* PHP 8.1 or higher * Magento / Adobe Commerce 2.3 or higher ## Installation ```bash -composer require clickandmortar/magento-api-client +composer require kraiglarson/magento-api-client ``` ## Usage @@ -47,6 +55,7 @@ $product = $client->products->get('24-MB01'); ## Available resources - `products` +- `products/attributes` - `orders` - `customers` diff --git a/composer.json b/composer.json index 3a3fab4..ba81a09 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { - "name": "clickandmortar/magento-php-api-client", - "description": "Magento 2 PHP REST API client / SDK", + "name": "kraiglarson/magento-php-api-client", + "description": "Magento 2 PHP REST API client / SDK -- forked from clickandmortar/magento-php-api-client", "type": "library", "license": "MIT", "autoload": { @@ -12,10 +12,14 @@ { "name": "Michael BOUVY", "email": "michael.bouvy@clickandmortar.fr" + }, + { + "name": "Kraig Larson", + "email": "kraig@kraiglarson.com" } ], "require": { - "php": ">=8.2", + "php": ">=8.1", "psr/http-client": "^1.0", "psr/log": "^3.0", "psr/http-factory": "^1.0", diff --git a/src/Api/ProductAttributes.php b/src/Api/ProductAttributes.php new file mode 100644 index 0000000..1b7b8e2 --- /dev/null +++ b/src/Api/ProductAttributes.php @@ -0,0 +1,21 @@ + -- see https://magento.stackexchange.com/questions/303779/magento-2-get-value-of-custom-attribute-on-magento-2-rest-api-v1-orders-items/313072#313072 + */ + return $this->resourceClient->getResource(sprintf('/rest/V1/products/attributes/%s', $sku)); + } + + protected function getPageUri(): string + { + return '/rest/V1/products/attributes'; + } +} diff --git a/src/Client.php b/src/Client.php index 864b1fe..45fe4cd 100644 --- a/src/Client.php +++ b/src/Client.php @@ -7,6 +7,7 @@ use ClickAndMortar\MagentoApiClient\Api\Customers; use ClickAndMortar\MagentoApiClient\Api\Orders; use ClickAndMortar\MagentoApiClient\Api\Products; +use ClickAndMortar\MagentoApiClient\Api\ProductAttributes; use ClickAndMortar\MagentoApiClient\Api\StoreViews; class Client @@ -15,7 +16,8 @@ public function __construct( public Orders $orders, public Customers $customers, public StoreViews $storeViews, - public Products $products + public Products $products, + public ProductAttributes $productAttributes ) { } diff --git a/src/ClientBuilder.php b/src/ClientBuilder.php index 3bb81b4..c1657d6 100644 --- a/src/ClientBuilder.php +++ b/src/ClientBuilder.php @@ -7,6 +7,7 @@ use ClickAndMortar\MagentoApiClient\Api\Customers; use ClickAndMortar\MagentoApiClient\Api\Orders; use ClickAndMortar\MagentoApiClient\Api\Products; +use ClickAndMortar\MagentoApiClient\Api\ProductAttributes; use ClickAndMortar\MagentoApiClient\Api\StoreViews; use ClickAndMortar\MagentoApiClient\Client\HttpClient; use ClickAndMortar\MagentoApiClient\Client\ResourceClient; @@ -65,7 +66,8 @@ public function buildAuthenticatedByOauth( new Orders($resourceClient, $resourceCursorFactory), new Customers($resourceClient, $resourceCursorFactory), new StoreViews($resourceClient, $resourceCursorFactory), - new Products($resourceClient, $resourceCursorFactory) + new Products($resourceClient, $resourceCursorFactory), + new ProductAttributes($resourceClient, $resourceCursorFactory) ); }