1 <?php
2
3 /* --------------------------------------------------------------
4 ProductSettingsInterface.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 ProductSettingsInterface
15 *
16 * @category System
17 * @package Product
18 * @subpackage Interfaces
19 */
20 interface ProductSettingsInterface
21 {
22 /**
23 * Returns the details template name.
24 *
25 * @return string
26 */
27 public function getDetailsTemplate();
28
29
30 /**
31 * Returns the options details template.
32 *
33 * @return string
34 */
35 public function getOptionsDetailsTemplate();
36
37
38 /**
39 * Returns the options listing template.
40 *
41 * @return string
42 */
43 public function getOptionsListingTemplate();
44
45
46 /**
47 * Returns true when the product is displayed on the start page, false otherwise.
48 *
49 * @return bool
50 */
51 public function showOnStartpage();
52
53
54 /**
55 * Returns the sort position.
56 *
57 * @return int
58 */
59 public function getStartpageSortOrder();
60
61
62 /**
63 * Returns true when the added date time is to be displayed, false otherwise.
64 *
65 * @return bool
66 */
67 public function showAddedDateTime();
68
69
70 /**
71 * Returns true when the quantity info is to be displayed, false otherwise.
72 *
73 * @return bool
74 */
75 public function showQuantityInfo();
76
77
78 /**
79 * Returns true when the weight is to be displayed, false otherwise.
80 *
81 * @return bool
82 */
83 public function showWeight();
84
85
86 /**
87 * Returns true when the price offer is to be displayed, false otherwise.
88 *
89 * @return bool
90 */
91 public function showPriceOffer();
92
93
94 /**
95 * Returns the price status.
96 *
97 * @return int
98 */
99 public function getPriceStatus();
100
101
102 /**
103 * Returns the minimum order value.
104 *
105 * @return float
106 */
107 public function getMinOrder();
108
109
110 /**
111 * Returns the graduated quantity.
112 *
113 * @return float
114 */
115 public function getGraduatedQuantity();
116
117
118 /**
119 * Returns true when the product is to be displayed in the sitemap, false otherwise.
120 *
121 * @return bool
122 */
123 public function isSitemapEntry();
124
125
126 /**
127 * Returns the sitemap priority.
128 *
129 * @return string
130 */
131 public function getSitemapPriority();
132
133
134 /**
135 * Returns the sitemap change frequency.
136 *
137 * @return string
138 */
139 public function getSitemapChangeFreq();
140
141
142 /**
143 * Returns true when the properties price is to be displayed, false otherwise.
144 *
145 * @return bool
146 */
147 public function showPropertiesPrice();
148
149
150 /**
151 * Returns the properties dropdown mode.
152 *
153 * @return string
154 */
155 public function getPropertiesDropdownMode();
156
157
158 /**
159 * Returns true when the properties combis weight is to be used, false otherwise.
160 *
161 * @return bool
162 */
163 public function usePropertiesCombisWeight();
164
165
166 /**
167 * Returns the mode which is used for the quantity check.
168 *
169 * 0 = Default (global stock options)
170 * 1 = Products quantity
171 * 2 = Combis quantity
172 * 3 = No check
173 *
174 * @return int
175 */
176 public function getPropertiesCombisQuantityCheckMode();
177
178
179 /**
180 * Returns true when the properties combis shipping time is to be used, false otherwise.
181 *
182 * @return bool
183 */
184 public function usePropertiesCombisShippingTime();
185
186
187 /**
188 * Sets the details listing template.
189 *
190 * @param \StringType $template Name of the template
191 *
192 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
193 */
194 public function setDetailsTemplate(StringType $template);
195
196
197 /**
198 * Sets the options details template.
199 *
200 * @param \StringType $template Name of the template.
201 *
202 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
203 */
204 public function setOptionsDetailsTemplate(StringType $template);
205
206
207 /**
208 * Sets the options listing template.
209 *
210 * @param \StringType $template Name of the template.
211 *
212 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
213 */
214 public function setOptionsListingTemplate(StringType $template);
215
216
217 /**
218 * Shows or hides a product on the start page.
219 *
220 * @param \BoolType $status True when it should be displayed, false otherwise.
221 *
222 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
223 */
224 public function setShowOnStartpage(BoolType $status);
225
226
227 /**
228 * Sets the start page sort order.
229 *
230 * @param \IntType $sortOrder Sort position.
231 *
232 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
233 */
234 public function setStartpageSortOrder(IntType $sortOrder);
235
236
237 /**
238 * Shows or hides the added date time of a product.
239 *
240 * @param \BoolType $status True when it is to be displayed, false otherwise.
241 *
242 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
243 */
244 public function setShowAddedDateTime(BoolType $status);
245
246
247 /**
248 * Shows or hides the quantity info of a product.
249 *
250 * @param \BoolType $status True when it is to be displayed, false otherwise.
251 *
252 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
253 */
254 public function setShowQuantityInfo(BoolType $status);
255
256
257 /**
258 * Shows or hides the weight of a product.
259 *
260 * @param \BoolType $status True when it is to be displayed, false otherwise.
261 *
262 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
263 */
264 public function setShowWeight(BoolType $status);
265
266
267 /**
268 * Shows or hides the price offer of a product.
269 *
270 * @param \BoolType $status True when it is to be displayed, false otherwise.
271 *
272 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
273 */
274 public function setShowPriceOffer(BoolType $status);
275
276
277 /**
278 * Sets the price status.
279 *
280 * @param \IntType $status New price status.
281 *
282 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
283 */
284 public function setPriceStatus(IntType $status);
285
286
287 /**
288 * Sets the min order value.
289 *
290 * @param \DecimalType $quantity New minimum order.
291 *
292 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
293 */
294 public function setMinOrder(DecimalType $quantity);
295
296
297 /**
298 * Sets the graduated quantity.
299 *
300 * @param \DecimalType $quantity New graduated quantity.
301 *
302 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
303 */
304 public function setGraduatedQuantity(DecimalType $quantity);
305
306
307 /**
308 * Shows or hides a product in the sitemap.
309 *
310 * @param \BoolType $status True when it is to be displayed, false otherwise.
311 *
312 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
313 */
314 public function setSitemapEntry(BoolType $status);
315
316
317 /**
318 * Sets the sitemap priority.
319 *
320 * @param \StringType $priority New sitemap priority.
321 *
322 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
323 */
324 public function setSitemapPriority(StringType $priority);
325
326
327 /**
328 * Sets the sitemap change frequency.
329 *
330 * @param \StringType $freq New sitemap change frequency.
331 *
332 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
333 */
334 public function setSitemapChangeFreq(StringType $freq);
335
336
337 /**
338 * Shows or hides the properties price of a product.
339 *
340 * @param \BoolType $status True when it is to be displayed, false otherwise.
341 *
342 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
343 */
344 public function setShowPropertiesPrice(BoolType $status);
345
346
347 /**
348 * Sets the properties dropdown mode.
349 *
350 * @param \StringType $mode New properties dropdown mode.
351 *
352 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
353 */
354 public function setPropertiesDropdownMode(StringType $mode);
355
356
357 /**
358 * Determine whether the properties combis weight is to be used or not.
359 *
360 * @param \BoolType $status True when it is to be used, false otherwise.
361 *
362 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
363 */
364 public function setUsePropertiesCombisWeight(BoolType $status);
365
366
367 /**
368 * Determine which mode for the quantity check should be used.
369 *
370 * 0 = Default (global stock options)
371 * 1 = Products quantity
372 * 2 = Combis quantity
373 * 3 = No check
374 *
375 * @param \IntType $status
376 *
377 * @return ProductSettings|$this Same ProductSettings instance for chained method calls.
378 */
379 public function setPropertiesCombisQuantityCheckMode(IntType $status);
380
381
382 /**
383 * Determine whether the properties combis shipping time is to be used or not.
384 *
385 * @param \BoolType $status True when it is to be used, false otherwise.
386 *
387 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
388 */
389 public function setUsePropertiesCombisShippingTime(BoolType $status);
390
391
392 /**
393 * Returns true when the customer status is permitted, false otherwise.
394 *
395 * @param \IdType $customerStatusId Id of customer status.
396 *
397 * @return bool
398 */
399 public function isPermittedCustomerStatus(IdType $customerStatusId);
400
401
402 /**
403 * Sets customer status permissions.
404 *
405 * @param \IdType $customerStatusId Id of customer status.
406 * @param \BoolType $permitted Is customer permitted or not.
407 *
408 * @return ProductSettingsInterface|$this Same ProductSettingsInterface instance for chained method calls.
409 */
410 public function setPermittedCustomerStatus(IdType $customerStatusId, BoolType $permitted);
411 }