neta-io / shopware-sdk
A PHP SDK for the Shopware 5 REST API.
v4.0.1
2022-03-31 11:54 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^9.0
Requires (Dev)
- phpunit/phpunit: ^9.0
Replaces
This package is auto-updated.
Last update: 2024-11-01 13:06:02 UTC
README
Requirement
PHP >= 7.2
Installing
composer require neta-io/shopware-sdk
Code Docs
See API Docs
Examples
<?php require 'vendor/autoload.php'; // Create a new client $client = new ShopwareClient('http://shopware.dev/api/', 'user', 'api_key'); /** * set custom options for guzzle * the official guzzle documentation contains a list of valid options (http://docs.guzzlephp.org/en/latest/request-options.html) */ //$client = new ShopwareClient('http://shopware.dev/api/', 'user', 'api_key', ['cert' => ['/path/server.pem']]); // Fetch all articles $articles = $client->getArticleQuery()->findAll(); // Fetch one article by id $article = $client->getArticleQuery()->findOne(1); $article->getName(); $article->getDescription(); $article->get('mainDetail.id'); // Nested fields $article->get('customField'); // Create an article $article = new Article(); $article->setName("John product doe"); $article->setDescription("Lorem ipsum"); // ... <- more setters are required $client->getArticleQuery()->create($article); // Update article $article->setName("John product doe"); $updatedArticle = $client->getArticleQuery()->update($article); // Update multiple articles $articleOne = $client->getArticleQuery()->findOne(1); $articleOne->setName("John product doe"); $articleTwo = $client->getArticleQuery()->findOne(2); $articleTwo->setName("John product doe 2"); $articles = $client->getArticleQuery()->updateBatch([$articleOne, $articleTwo]); // Delete an article $client->getArticleQuery()->delete(1); // Delete multiple articles at once $client->getArticleQuery()->deleteBatch([1, 2, 3]); // Find article by parameters $client->getArticleQuery()->findByParams([ 'limit' => 10, 'start' => 20, 'sort' => [ [ 'property' => 'name', 'direction' => \Neta\Shopware\SDK\Util\Constants::ORDER_ASC ] ], 'filter' => [ [ 'property' => 'name', 'expression' => 'LIKE', 'value' => '%' . $term . '%' ], [ 'operator' => 'AND', 'property' => 'number', 'expression' => '>', 'value' => '500' ] ] ]); ?>
Issues/Features proposals
Here is the issue tracker.
Contributing
- Write some code
- Write some tests
- Make a pull request
License
TODO
- More tests
- Generate docs
- Fluent query builder
- out-of-the-box pagination
- Bugs
- apiUrl: http://example/api doesn't work. It must have a trailing slash in order to work.
- Invalid response doesn't throw an exception. instead
Symfony\Component\Debug\Exception\FatalThrowableError : Call to a member function getId() on array
Credits
This package has been forked from: portrino GmbH leadcommerce
Originally authored by