1 <?php
2
3 /* --------------------------------------------------------------
4 ProductReadServiceInterface.inc.php 2016-01-28
5 Gambio GmbH
6 http://www.gambio.de
7 Copyright (c) 2016 Gambio GmbH
8 Released under the GNU General Public License (Version 2)
9 [http://www.gnu.org/licenses/gpl-2.0.html]
10 --------------------------------------------------------------
11 */
12
13 /**
14 * Interface ProductReadServiceInterface
15 *
16 * @category System
17 * @package Product
18 * @subpackage Interfaces
19 */
20 Interface ProductReadServiceInterface
21 {
22 /**
23 * Get Product by ID.
24 *
25 * Returns a specific product, depending on the provided ID.
26 *
27 * @param IdType $productId The ID of the product to return.
28 *
29 * @return StoredProductInterface The stored product.
30 */
31 public function getProductById(IdType $productId);
32
33
34 /**
35 * Get Product List
36 *
37 * Returns a specific product list.
38 *
39 * @param LanguageCode $languageCode The language code.
40 * @param IdType|null $categoryId The category ID of the product list.
41 * @param IdType|null $customerStatusLimit The customers status limit.
42 *
43 * @return ProductListItemCollection
44 */
45 public function getProductList(LanguageCode $languageCode,
46 IdType $categoryId = null,
47 IdType $customerStatusLimit = null);
48
49
50 /**
51 * Get Active Product List
52 *
53 * Returns an active products list.
54 *
55 * @param LanguageCode $languageCode The language code.
56 * @param IdType|null $categoryId The category ID of the product list.
57 * @param IdType|null $customerStatusLimit The customers status limit.
58 *
59 * @return ProductListItemCollection
60 */
61 public function getActiveProductList(LanguageCode $languageCode,
62 IdType $categoryId = null,
63 IdType $customerStatusLimit = null);
64
65
66 /**
67 * Returns the category Ids which are linked to the given product id.
68 *
69 * @param IdType $productId
70 *
71 * @return IdCollection
72 */
73 public function getProductLinks(IdType $productId);
74 }