PHPackages                             enm/shopware-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. enm/shopware-sdk

AbandonedLibrary

enm/shopware-sdk
================

An implementation for accessing the Shopware api

0.3.0(6y ago)37401[1 PRs](https://github.com/eosnewmedia/ShopwareSdk/pulls)1MITPHPPHP &gt;=7.0

Since Mar 21Pushed 6y ago7 watchersCompare

[ Source](https://github.com/eosnewmedia/ShopwareSdk)[ Packagist](https://packagist.org/packages/enm/shopware-sdk)[ RSS](/packages/enm-shopware-sdk/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (4)Versions (12)Used By (1)

Shopware SDK
============

[](#shopware-sdk)

[![Build Status](https://camo.githubusercontent.com/3d8ef503e111939b1157322da611be30fd49bc2f65c4423772ae773a3d1748b1/68747470733a2f2f6170692e7472617669732d63692e6f72672f656f736e65776d656469612f53686f707761726553646b2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/eosnewmedia/ShopwareSdk)[![SensioLabsInsight](https://camo.githubusercontent.com/2b687f735c1499be6fb7eb202f4028a465e4bfc26c839598e453732a829676b9/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f62653638353761632d363832622d346636322d386163312d6333653734336433366535392f6d696e692e706e67)](https://insight.sensiolabs.com/projects/be6857ac-682b-4f62-8ac1-c3e743d36e59)

This library provides an extendable abstraction for the Shopware REST-API. The provided default implementation is based on `jms/serializer` and `guzzlehttp/guzzle`. All provided interfaces can be used without installing Guzzle or the Serializer.

Installation
------------

[](#installation)

```
composer require enm/shopware-sdk

```

If you want to use the default implementation you also have to run:

```
composer require guzzlehttp/guzzle

composer require jms/serializer

```

Usage
-----

[](#usage)

```
\Doctrine\Common\Annotations\AnnotationRegistry::registerAutoloadNamespace(
    'JMS\Serializer\Annotation', __DIR__.'/../vendor/jms/serializer/src'
);

$client = new \Enm\ShopwareSdk\Http\GuzzleAdapter(new \GuzzleHttp\Client());
$client->withConfig('http://example.com', 'user', 'apiKey');

$serializer = \JMS\Serializer\SerializerBuilder::create()->build();

$entryPoint = new \Enm\ShopwareSdk\EntryPoint($client);

$entryPoint->addSerializer(new \Enm\ShopwareSdk\Response\ArticleHandler($serializer));
$entryPoint->addSerializer(new \Enm\ShopwareSdk\Response\OrderHandler($serializer));

$entryPoint->addDeserializer(new \Enm\ShopwareSdk\Response\ArticleHandler($serializer));
$entryPoint->addDeserializer(new \Enm\ShopwareSdk\Response\OrderHandler($serializer));

```

OR

```
$entryPoint = \Enm\ShopwareSdk\EntryPoint::buildDefault('http://example.com', 'user', 'apiKey');

```

The endpoints can be called like this:

```
$entryPoint->articles()->findAll();
$entryPoint->articles()->find(1);

$entryPoint->orders()->findAll();
$entryPoint->orders()->find(1);

```

Concepts
--------

[](#concepts)

### Entry Point

[](#entry-point)

An entry point should implement `\Enm\ShopwareSdk\EntryPointInterface` and is responsible for creation and management of endpoint instances.

The default entry point (`\Enm\ShopwareSdk\EntryPoint`) needs a configured http client and a serializer and deserializer for each endpoint.

A serializer can be added by calling:

```
    $entryPoint->addSerializer($serializer);

```

A deserializer can be added by calling:

```
    $entryPoint->addDeserializer($serializer);

```

### Endpoints

[](#endpoints)

An endpoint is responsible for providing access to a specific sub part of the shopware api.

The `ArticelEndpoint` for example is responsible to access all api routes under `/api/articles`.

All default endpoints extending the abstract endpoint which needs a http client and a response handler.

### (HTTP-)Client

[](#http-client)

The http client is responsible to request an api route and create a PSR-7 response object with the result.

The default client (`\Enm\ShopwareSdk\Http\GuzzleAdapter`) uses the Guzzle http client.

### Serializer / Deserializer

[](#serializer--deserializer)

A serializer is responsible for converting a given PHP object into the needed json string.

A deserializer is responsible for converting the json response into the needed PHP object.

The default handlers (combination of serializer and deserializer) are based on JMS Serializer and can be added by calling `addDefaultSerializers`and `addDefaultDeserializers` from the default `EntryPoint`.

If you don't want to use it, you can write your own which have to implement `\Enm\ShopwareSdk\Serializer\JsonSerializerinterface`and/or `\Enm\ShopwareSdk\Serializer\JsonDeserializerinterface`.

A (de)serializer must return all supported types if `getSupportedTypes` is called. A type is the class name of the models interface, for example: `\Enm\ShopwareSdk\Model\Order\OrderInterface` for the `OrderEnpoint`.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~128 days

Recently: every ~203 days

Total

8

Last Release

2441d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c18ae5f024ce04dbd7c18fb39db1ebe9c4feb654d0cc6f54f206404355d2500b?d=identicon)[eosnewmedia](/maintainers/eosnewmedia)

---

Top Contributors

[![bogomolov-dev](https://avatars.githubusercontent.com/u/127733?v=4)](https://github.com/bogomolov-dev "bogomolov-dev (1 commits)")[![pmarien](https://avatars.githubusercontent.com/u/8394874?v=4)](https://github.com/pmarien "pmarien (1 commits)")

---

Tags

abstractionphp-libraryshopware-apishopware-sdk

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/enm-shopware-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/enm-shopware-sdk/health.svg)](https://phpackages.com/packages/enm-shopware-sdk)
```

###  Alternatives

[league/uri-interfaces

Common tools for parsing and resolving RFC3987/RFC3986 URI

538204.9M23](/packages/league-uri-interfaces)[neuron-core/neuron-ai

The PHP Agentic Framework.

1.8k245.3k21](/packages/neuron-core-neuron-ai)[simplesamlphp/saml2

SAML2 PHP library from SimpleSAMLphp

30317.2M40](/packages/simplesamlphp-saml2)[php-heroku-client/php-heroku-client

A PHP client for the Heroku Platform API

24404.8k4](/packages/php-heroku-client-php-heroku-client)[phpro/http-tools

HTTP tools for developing more consistent HTTP implementations.

28137.8k](/packages/phpro-http-tools)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
