Overview

Namespaces

  • LeadCommerce
    • Shopware
      • SDK
        • Entity
        • Exception
        • Query
        • Util

Classes

  • LeadCommerce\Shopware\SDK\Entity\Address
  • LeadCommerce\Shopware\SDK\Entity\Area
  • LeadCommerce\Shopware\SDK\Entity\Article
  • LeadCommerce\Shopware\SDK\Entity\ArticleAttribute
  • LeadCommerce\Shopware\SDK\Entity\ArticleDetail
  • LeadCommerce\Shopware\SDK\Entity\Base
  • LeadCommerce\Shopware\SDK\Entity\Billing
  • LeadCommerce\Shopware\SDK\Entity\BillingAttribute
  • LeadCommerce\Shopware\SDK\Entity\Cache
  • LeadCommerce\Shopware\SDK\Entity\Category
  • LeadCommerce\Shopware\SDK\Entity\ConfiguratorGroup
  • LeadCommerce\Shopware\SDK\Entity\ConfiguratorOption
  • LeadCommerce\Shopware\SDK\Entity\ConfiguratorSet
  • LeadCommerce\Shopware\SDK\Entity\Country
  • LeadCommerce\Shopware\SDK\Entity\Currency
  • LeadCommerce\Shopware\SDK\Entity\CustomerAttribute
  • LeadCommerce\Shopware\SDK\Entity\CustomerGroup
  • LeadCommerce\Shopware\SDK\Entity\CustomerGroupSurcharge
  • LeadCommerce\Shopware\SDK\Entity\Debit
  • LeadCommerce\Shopware\SDK\Entity\Dispatch
  • LeadCommerce\Shopware\SDK\Entity\Document
  • LeadCommerce\Shopware\SDK\Entity\DocumentAttribute
  • LeadCommerce\Shopware\SDK\Entity\DocumentType
  • LeadCommerce\Shopware\SDK\Entity\Download
  • LeadCommerce\Shopware\SDK\Entity\Image
  • LeadCommerce\Shopware\SDK\Entity\Link
  • LeadCommerce\Shopware\SDK\Entity\Locale
  • LeadCommerce\Shopware\SDK\Entity\OrderAttribute
  • LeadCommerce\Shopware\SDK\Entity\OrderDetail
  • LeadCommerce\Shopware\SDK\Entity\OrderDetailAttribute
  • LeadCommerce\Shopware\SDK\Entity\OrderStatus
  • LeadCommerce\Shopware\SDK\Entity\PaymentData
  • LeadCommerce\Shopware\SDK\Entity\PaymentInstance
  • LeadCommerce\Shopware\SDK\Entity\Price
  • LeadCommerce\Shopware\SDK\Entity\PriceGroup
  • LeadCommerce\Shopware\SDK\Entity\PropertyGroup
  • LeadCommerce\Shopware\SDK\Entity\PropertyGroupAttribute
  • LeadCommerce\Shopware\SDK\Entity\PropertyGroupOption
  • LeadCommerce\Shopware\SDK\Entity\PropertyValue
  • LeadCommerce\Shopware\SDK\Entity\Related
  • LeadCommerce\Shopware\SDK\Entity\Shipping
  • LeadCommerce\Shopware\SDK\Entity\ShippingAttribute
  • LeadCommerce\Shopware\SDK\Entity\Shop
  • LeadCommerce\Shopware\SDK\Entity\Similar
  • LeadCommerce\Shopware\SDK\Entity\State
  • LeadCommerce\Shopware\SDK\Entity\Supplier
  • LeadCommerce\Shopware\SDK\Entity\Tax
  • LeadCommerce\Shopware\SDK\Entity\Translation
  • LeadCommerce\Shopware\SDK\Entity\Version
  • LeadCommerce\Shopware\SDK\Query\AddressQuery
  • LeadCommerce\Shopware\SDK\Query\ArticleQuery
  • LeadCommerce\Shopware\SDK\Query\Base
  • LeadCommerce\Shopware\SDK\Query\CacheQuery
  • LeadCommerce\Shopware\SDK\Query\CategoriesQuery
  • LeadCommerce\Shopware\SDK\Query\CountriesQuery
  • LeadCommerce\Shopware\SDK\Query\CustomerGroupsQuery
  • LeadCommerce\Shopware\SDK\Query\CustomerQuery
  • LeadCommerce\Shopware\SDK\Query\GenerateArticleImagesQuery
  • LeadCommerce\Shopware\SDK\Query\ManufacturersQuery
  • LeadCommerce\Shopware\SDK\Query\MediaQuery
  • LeadCommerce\Shopware\SDK\Query\OrdersQuery
  • LeadCommerce\Shopware\SDK\Query\PropertyGroupsQuery
  • LeadCommerce\Shopware\SDK\Query\ShopsQuery
  • LeadCommerce\Shopware\SDK\Query\TranslationsQuery
  • LeadCommerce\Shopware\SDK\Query\VariantsQuery
  • LeadCommerce\Shopware\SDK\Query\VersionQuery
  • LeadCommerce\Shopware\SDK\ShopwareClient
  • LeadCommerce\Shopware\SDK\Util\Constants

Exceptions

  • LeadCommerce\Shopware\SDK\Exception\MethodNotAllowedException
  • Overview
  • Namespace
  • Class
  1: <?php
  2: 
  3: namespace LeadCommerce\Shopware\SDK;
  4: 
  5: use GuzzleHttp\Client;
  6: use LeadCommerce\Shopware\SDK\Query\AddressQuery;
  7: use LeadCommerce\Shopware\SDK\Query\ArticleQuery;
  8: use LeadCommerce\Shopware\SDK\Query\CacheQuery;
  9: use LeadCommerce\Shopware\SDK\Query\CategoriesQuery;
 10: use LeadCommerce\Shopware\SDK\Query\CountriesQuery;
 11: use LeadCommerce\Shopware\SDK\Query\CustomerGroupsQuery;
 12: use LeadCommerce\Shopware\SDK\Query\CustomerQuery;
 13: use LeadCommerce\Shopware\SDK\Query\GenerateArticleImagesQuery;
 14: use LeadCommerce\Shopware\SDK\Query\ManufacturersQuery;
 15: use LeadCommerce\Shopware\SDK\Query\MediaQuery;
 16: use LeadCommerce\Shopware\SDK\Query\OrdersQuery;
 17: use LeadCommerce\Shopware\SDK\Query\PropertyGroupsQuery;
 18: use LeadCommerce\Shopware\SDK\Query\ShopsQuery;
 19: use LeadCommerce\Shopware\SDK\Query\TranslationsQuery;
 20: use LeadCommerce\Shopware\SDK\Query\VariantsQuery;
 21: use LeadCommerce\Shopware\SDK\Query\VersionQuery;
 22: 
 23: /**
 24:  * Class ShopwareClient
 25:  *
 26:  * @author Alexander Mahrt <amahrt@leadcommerce.de>
 27:  * @copyright 2016 LeadCommerce <amahrt@leadcommerce.de>
 28:  *
 29:  * @method AddressQuery getAddressQuery()
 30:  * @method ArticleQuery getArticleQuery()
 31:  * @method CacheQuery getCacheQuery()
 32:  * @method CategoriesQuery getCategoriesQuery()
 33:  * @method CountriesQuery getCountriesQuery()
 34:  * @method CustomerGroupsQuery getCustomerGroupsQuery()
 35:  * @method CustomerQuery getCustomerQuery()
 36:  * @method GenerateArticleImagesQuery getGenerateArticleImageQuery()
 37:  * @method MediaQuery getMediaQuery()
 38:  * @method ManufacturersQuery getManufacturersQuery()
 39:  * @method OrdersQuery getOrdersQuery()
 40:  * @method PropertyGroupsQuery getPropertyGroupsQuery()
 41:  * @method ShopsQuery getShopsQuery()
 42:  * @method TranslationsQuery getTranslationsQuery()
 43:  * @method VariantsQuery getVariantsQuery()
 44:  * @method VersionQuery getVersionQuery()
 45:  */
 46: class ShopwareClient
 47: {
 48:     const VERSION = '0.0.1';
 49: 
 50:     /**
 51:      * @var string|null
 52:      */
 53:     protected $baseUrl;
 54: 
 55:     /**
 56:      * @var string|null
 57:      */
 58:     protected $username;
 59: 
 60:     /**
 61:      * @var string|null
 62:      */
 63:     protected $apiKey;
 64: 
 65:     /**
 66:      * @var Client
 67:      */
 68:     protected $client;
 69: 
 70:     /**
 71:      * ShopwareClient constructor.
 72:      *
 73:      * @param $baseUrl
 74:      * @param null $username
 75:      * @param null $apiKey
 76:      */
 77:     public function __construct($baseUrl, $username = null, $apiKey = null)
 78:     {
 79:         $this->baseUrl = $baseUrl;
 80:         $this->username = $username;
 81:         $this->apiKey = $apiKey;
 82:         $this->client = new Client([
 83:             'base_uri' => $this->baseUrl,
 84:         ]);
 85:     }
 86: 
 87:     /**
 88:      * Does a request.
 89:      *
 90:      * @param $uri
 91:      * @param string $method
 92:      * @param null   $body
 93:      * @param array  $headers
 94:      *
 95:      * @return mixed|\Psr\Http\Message\ResponseInterface
 96:      */
 97:     public function request($uri, $method = 'GET', $body = null, $headers = [])
 98:     {
 99:         if (empty($headers['Accept'])) {
100:             $headers['Accept'] = 'application/json';
101:         }
102: 
103:         if (empty($headers['Content-Type'])) {
104:             $headers['Content-Type'] = 'application/json';
105:         }
106: 
107:         return $this->client->request($method, $uri, [
108:             'form_params' => $body,
109:             'headers'     => $headers,
110:             'auth'        => [
111:                 $this->username,
112:                 $this->apiKey,
113:                 'digest',
114:             ],
115:         ]);
116:     }
117: 
118:     /**
119:      * Magically get the query classes.
120:      *
121:      * @param $name
122:      * @param array $arguments
123:      *
124:      * @return bool
125:      */
126:     public function __call($name, $arguments = [])
127:     {
128:         if (!preg_match('/^get([a-z]+Query)$/i', $name, $matches)) {
129:             return false;
130:         }
131: 
132:         $className = __NAMESPACE__ . '\\Query\\' . $matches[1];
133: 
134:         if (!class_exists($className)) {
135:             return false;
136:         }
137: 
138:         return new $className($this);
139:     }
140: 
141:     /**
142:      * @return Client
143:      */
144:     public function getClient()
145:     {
146:         return $this->client;
147:     }
148: 
149:     /**
150:      * @param Client $client
151:      *
152:      * @return ShopwareClient
153:      */
154:     public function setClient($client)
155:     {
156:         $this->client = $client;
157: 
158:         return $this;
159:     }
160: }
161: 
shopware-sdk API documentation generated by ApiGen