| @@ 31-42 (lines=12) @@ | ||
| 28 | * @param string $email |
|
| 29 | * @return array |
|
| 30 | */ |
|
| 31 | public function getCustomerByEmail(string $email) : array |
|
| 32 | { |
|
| 33 | Assert::that($email)->email(); |
|
| 34 | ||
| 35 | return (array)$this->master->doRequest( |
|
| 36 | 'GET', |
|
| 37 | sprintf('/admin/WEBAPI/Endpoints/v1_0/CustomerService/{KEY}/GetCustomerByEmail?email=%s', rawurlencode($email)) |
|
| 38 | ); |
|
| 39 | } |
|
| 40 | ||
| 41 | /** |
|
| 42 | * @see https://shoppartner.dandomain.dk/dokumentation/api-documentation/customer/#General_Online_Reference |
|
| 43 | * |
|
| 44 | * @param \DateTimeInterface $date |
|
| 45 | * @return array |
|
| @@ 88-98 (lines=11) @@ | ||
| 85 | * @param array $context |
|
| 86 | * @return array |
|
| 87 | */ |
|
| 88 | public function getProductByMetadata(string $productNumber, array $context) : array |
|
| 89 | { |
|
| 90 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 91 | Assert::that($context)->notEmpty(); |
|
| 92 | ||
| 93 | return (array)$this->master->doRequest( |
|
| 94 | 'POST', |
|
| 95 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductService/{KEY}/%s', rawurlencode($productNumber)), |
|
| 96 | $context |
|
| 97 | ); |
|
| 98 | } |
|
| 99 | ||
| 100 | /** |
|
| 101 | * @see http://4221117.shop53.dandomain.dk/admin/webapi/endpoints/v1_0/ProductService/help/operations/GetProductsInCategoryByMetadata |
|
| @@ 13-21 (lines=9) @@ | ||
| 10 | * @param string $productNumber |
|
| 11 | * @return array |
|
| 12 | */ |
|
| 13 | public function getDataProduct(string $productNumber) : array |
|
| 14 | { |
|
| 15 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 16 | ||
| 17 | return (array)$this->master->doRequest( |
|
| 18 | 'GET', |
|
| 19 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/%s', rawurlencode($productNumber)) |
|
| 20 | ); |
|
| 21 | } |
|
| 22 | ||
| 23 | /** |
|
| 24 | * @param int $categoryId |
|
| @@ 41-49 (lines=9) @@ | ||
| 38 | * @param string $barCode |
|
| 39 | * @return array |
|
| 40 | */ |
|
| 41 | public function getDataProductsByBarcode(string $barCode) : array |
|
| 42 | { |
|
| 43 | Assert::that($barCode)->minLength(1, 'The length of $barCode has to be > 0'); |
|
| 44 | ||
| 45 | return (array)$this->master->doRequest( |
|
| 46 | 'GET', |
|
| 47 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/ByBarcode/%s', rawurlencode($barCode)) |
|
| 48 | ); |
|
| 49 | } |
|
| 50 | ||
| 51 | /** |
|
| 52 | * @param \DateTimeInterface $date |
|
| @@ 121-129 (lines=9) @@ | ||
| 118 | * @param int $stockCount |
|
| 119 | * @return bool |
|
| 120 | */ |
|
| 121 | public function setStockCount(string $productNumber, int $stockCount) : bool |
|
| 122 | { |
|
| 123 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 124 | ||
| 125 | return (bool)$this->master->doRequest( |
|
| 126 | 'PUT', |
|
| 127 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/SetStockCount/%s/%d', rawurlencode($productNumber), $stockCount) |
|
| 128 | ); |
|
| 129 | } |
|
| 130 | ||
| 131 | /** |
|
| 132 | * Will return the stock count for the specified product number |
|
| @@ 262-270 (lines=9) @@ | ||
| 259 | * @param string $productNumber |
|
| 260 | * @return boolean |
|
| 261 | */ |
|
| 262 | public function deleteProduct(string $productNumber) : bool |
|
| 263 | { |
|
| 264 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 265 | ||
| 266 | return (bool)$this->master->doRequest( |
|
| 267 | 'DELETE', |
|
| 268 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/%s', rawurlencode($productNumber)) |
|
| 269 | ); |
|
| 270 | } |
|
| 271 | ||
| 272 | /** |
|
| 273 | * @param array|\stdClass $category |
|
| @@ 314-323 (lines=10) @@ | ||
| 311 | * @param array|\stdClass $product |
|
| 312 | * @return array |
|
| 313 | */ |
|
| 314 | public function updateProduct(string $productNumber, $product) : array |
|
| 315 | { |
|
| 316 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 317 | ||
| 318 | return (array)$this->master->doRequest( |
|
| 319 | 'PUT', |
|
| 320 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/%s', rawurlencode($productNumber)), |
|
| 321 | $product |
|
| 322 | ); |
|
| 323 | } |
|
| 324 | ||
| 325 | /** |
|
| 326 | * @param string $productNumber |
|
| @@ 330-340 (lines=11) @@ | ||
| 327 | * @param KeyValueCollection $keyValueCollection |
|
| 328 | * @return array |
|
| 329 | */ |
|
| 330 | public function patchProduct(string $productNumber, KeyValueCollection $keyValueCollection) : array |
|
| 331 | { |
|
| 332 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 333 | Assert::that($keyValueCollection->count())->greaterThan(0); |
|
| 334 | ||
| 335 | return (array)$this->master->doRequest( |
|
| 336 | 'PATCH', |
|
| 337 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/%s', rawurlencode($productNumber)), |
|
| 338 | $keyValueCollection->get() |
|
| 339 | ); |
|
| 340 | } |
|
| 341 | ||
| 342 | /** |
|
| 343 | * @param string $productNumber |
|
| @@ 347-356 (lines=10) @@ | ||
| 344 | * @param array|\stdClass $price |
|
| 345 | * @return array |
|
| 346 | */ |
|
| 347 | public function createPrice(string $productNumber, $price) : array |
|
| 348 | { |
|
| 349 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 350 | ||
| 351 | return (array)$this->master->doRequest( |
|
| 352 | 'POST', |
|
| 353 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/%s/Prices', rawurlencode($productNumber)), |
|
| 354 | $price |
|
| 355 | ); |
|
| 356 | } |
|
| 357 | ||
| 358 | /** |
|
| 359 | * @param string $productNumber |
|
| @@ 363-372 (lines=10) @@ | ||
| 360 | * @param array|\stdClass $price |
|
| 361 | * @return bool |
|
| 362 | */ |
|
| 363 | public function deletePrice(string $productNumber, $price) : bool |
|
| 364 | { |
|
| 365 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 366 | ||
| 367 | return (bool)$this->master->doRequest( |
|
| 368 | 'DELETE', |
|
| 369 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/%s/Prices', rawurlencode($productNumber)), |
|
| 370 | $price |
|
| 371 | ); |
|
| 372 | } |
|
| 373 | ||
| 374 | /** |
|
| 375 | * @param string $productNumber |
|
| @@ 378-386 (lines=9) @@ | ||
| 375 | * @param string $productNumber |
|
| 376 | * @return array |
|
| 377 | */ |
|
| 378 | public function getPricesForProduct(string $productNumber) : array |
|
| 379 | { |
|
| 380 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 381 | ||
| 382 | return (array)$this->master->doRequest( |
|
| 383 | 'GET', |
|
| 384 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductDataService/{KEY}/%s/Prices/List', rawurlencode($productNumber)) |
|
| 385 | ); |
|
| 386 | } |
|
| 387 | ||
| 388 | /** |
|
| 389 | * @param int $siteId |
|
| @@ 155-168 (lines=14) @@ | ||
| 152 | * @param string $comment |
|
| 153 | * @return bool |
|
| 154 | */ |
|
| 155 | public function setOrderComment(int $orderId, string $comment) : bool |
|
| 156 | { |
|
| 157 | Assert::that($orderId)->greaterThan(0, 'The $orderId has to be positive'); |
|
| 158 | Assert::that($comment)->minLength(1, 'The length of $comment has to be > 0'); |
|
| 159 | ||
| 160 | return (bool)$this->master->doRequest( |
|
| 161 | 'PUT', |
|
| 162 | sprintf( |
|
| 163 | '/admin/WEBAPI/Endpoints/v1_0/OrderService/{KEY}/SetOrderComment/%d?comment=%s', |
|
| 164 | $orderId, |
|
| 165 | rawurlencode($comment) |
|
| 166 | ) |
|
| 167 | ); |
|
| 168 | } |
|
| 169 | ||
| 170 | /** |
|
| 171 | * @param int $orderId |
|
| @@ 191-204 (lines=14) @@ | ||
| 188 | * @param string $trackingNumber |
|
| 189 | * @return bool |
|
| 190 | */ |
|
| 191 | public function setTrackNumber(int $orderId, string $trackingNumber) : bool |
|
| 192 | { |
|
| 193 | Assert::that($orderId)->greaterThan(0, 'The $orderId has to be positive'); |
|
| 194 | Assert::that($trackingNumber)->minLength(1, 'The length of $trackingNumber has to be > 0'); |
|
| 195 | ||
| 196 | return (bool)$this->master->doRequest( |
|
| 197 | 'PUT', |
|
| 198 | sprintf( |
|
| 199 | '/admin/WEBAPI/Endpoints/v1_0/OrderService/{KEY}/SetTrackNumber/%d?tracknumber=%s', |
|
| 200 | $orderId, |
|
| 201 | rawurlencode($trackingNumber) |
|
| 202 | ) |
|
| 203 | ); |
|
| 204 | } |
|
| 205 | ||
| 206 | /****************** |
|
| 207 | * Helper methods * |
|
| @@ 102-111 (lines=10) @@ | ||
| 99 | * @param int $tagValueId |
|
| 100 | * @return bool |
|
| 101 | */ |
|
| 102 | public function assignTagValueToProduct(string $productNumber, int $tagValueId) : bool |
|
| 103 | { |
|
| 104 | Assert::that($productNumber)->minLength(1, 'The length of $productNumber has to be > 0'); |
|
| 105 | Assert::that($tagValueId)->greaterThan(0, '$tagValueId has to be positive'); |
|
| 106 | ||
| 107 | return (bool)$this->master->doRequest( |
|
| 108 | 'PUT', |
|
| 109 | sprintf('/admin/WEBAPI/Endpoints/v1_0/ProductTagService/{KEY}/AssignTagValueToProduct/%s/%d', rawurlencode($productNumber), $tagValueId) |
|
| 110 | ); |
|
| 111 | } |
|
| 112 | } |
|
| 113 | ||