Completed
Push — master ( c9f46d...64b1b0 )
by Joachim
11:57
created

Product::hasVariantGroup()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Loevgaard\DandomainFoundation\Entity;
4
5
use Doctrine\Common\Collections\ArrayCollection;
6
use Doctrine\ORM\Mapping as ORM;
7
use Knp\DoctrineBehaviors\Model\SoftDeletable\SoftDeletable;
8
use Knp\DoctrineBehaviors\Model\Timestampable\Timestampable;
9
use Knp\DoctrineBehaviors\Model\Translatable\Translatable;
10
use Loevgaard\DandomainFoundation\Entity\Generated\CategoryInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...rated\CategoryInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
11
use Loevgaard\DandomainFoundation\Entity\Generated\ManufacturerInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...d\ManufacturerInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
12
use Loevgaard\DandomainFoundation\Entity\Generated\MediumInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...nerated\MediumInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
13
use Loevgaard\DandomainFoundation\Entity\Generated\PriceInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...enerated\PriceInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
14
use Loevgaard\DandomainFoundation\Entity\Generated\ProductInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...erated\ProductInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
15
use Loevgaard\DandomainFoundation\Entity\Generated\ProductRelationInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...roductRelationInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
16
use Loevgaard\DandomainFoundation\Entity\Generated\ProductTrait;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...\Generated\ProductTrait was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
17
use Loevgaard\DandomainFoundation\Entity\Generated\ProductTranslationInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...uctTranslationInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
18
use Loevgaard\DandomainFoundation\Entity\Generated\ProductTypeInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...ed\ProductTypeInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
19
use Loevgaard\DandomainFoundation\Entity\Generated\SegmentInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...erated\SegmentInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
20
use Loevgaard\DandomainFoundation\Entity\Generated\VariantGroupInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...d\VariantGroupInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
21
use Loevgaard\DandomainFoundation\Entity\Generated\VariantInterface;
0 ignored issues
show
Bug introduced by
The type Loevgaard\DandomainFound...erated\VariantInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
22
23
/**
24
 * @ORM\Entity()
25
 * @ORM\Table(name="ldf_products")
26
 * @method ProductTranslationInterface translate(string $locale = null, bool $fallbackToDefault = true)
27
 */
28
class Product extends AbstractEntity implements ProductInterface
29
{
30
    use ProductTrait;
31
    use Timestampable;
32
    use SoftDeletable;
33
    use Translatable;
34
35
    /**
36
     * @var int
37
     *
38
     * @ORM\Id
39
     * @ORM\GeneratedValue
40
     * @ORM\Column(type="integer")
41
     **/
42
    protected $id;
43
44
    /**
45
     * @var int
46
     *
47
     * @ORM\Column(type="integer", unique=true)
48
     */
49
    protected $externalId;
50
51
    /**
52
     * @var string|null
53
     *
54
     * @ORM\Column(nullable=true, type="string", length=191)
55
     */
56
    protected $barCodeNumber;
57
58
    /**
59
     * @var array|null
60
     *
61
     * @ORM\Column(nullable=true, type="json")
62
     */
63
    protected $categoryIdList;
64
65
    /**
66
     * @var string|null
67
     *
68
     * @ORM\Column(nullable=true, type="string", length=191)
69
     */
70
    protected $comments;
71
72
    /**
73
     * @var float|null
74
     *
75
     * @ORM\Column(nullable=true, type="decimal", precision=12, scale=2)
76
     */
77
    protected $costPrice;
78
79
    /**
80
     * @var \DateTimeImmutable|null
81
     *
82
     * @ORM\Column(nullable=true, type="datetime_immutable", options={"comment"="Created info from Dandomain"})
83
     */
84
    protected $created;
85
86
    /**
87
     * @var string|null
88
     *
89
     * @ORM\Column(nullable=true, type="string", length=191, options={"comment"="Created by info from Dandomain"})
90
     */
91
    protected $createdBy;
92
93
    /**
94
     * @var int|null
95
     *
96
     * @ORM\Column(nullable=true, type="integer")
97
     */
98
    protected $defaultCategoryId;
99
100
    /**
101
     * @var array|null
102
     *
103
     * @ORM\Column(nullable=true, type="json")
104
     */
105
    protected $disabledVariantIdList;
106
107
    /**
108
     * @var string|null
109
     *
110
     * @ORM\Column(nullable=true, type="string", length=191)
111
     */
112
    protected $edbPriserProductNumber;
113
114
    /**
115
     * @var string|null
116
     *
117
     * @ORM\Column(nullable=true, type="string", length=191)
118
     */
119
    protected $fileSaleLink;
120
121
    /**
122
     * @var string|null
123
     *
124
     * @ORM\Column(nullable=true, type="string", length=191)
125
     */
126
    protected $googleFeedCategory;
127
128
    /**
129
     * @var bool|null
130
     *
131
     * @ORM\Column(nullable=true, type="boolean")
132
     */
133
    protected $isGiftCertificate;
134
135
    /**
136
     * @var bool|null
137
     *
138
     * @ORM\Column(nullable=true, type="boolean")
139
     */
140
    protected $isModified;
141
142
    /**
143
     * @var bool|null
144
     *
145
     * @ORM\Column(nullable=true, type="boolean")
146
     */
147
    protected $isRateVariants;
148
149
    /**
150
     * @var bool|null
151
     *
152
     * @ORM\Column(nullable=true, type="boolean")
153
     */
154
    protected $isReviewVariants;
155
156
    /**
157
     * @var bool|null
158
     *
159
     * @ORM\Column(nullable=true, type="boolean")
160
     */
161
    protected $isVariantMaster;
162
163
    /**
164
     * @var string|null
165
     *
166
     * @ORM\Column(nullable=true, type="string", length=191)
167
     */
168
    protected $locationNumber;
169
170
    /**
171
     * @var array|null
172
     *
173
     * @ORM\Column(nullable=true, type="json")
174
     */
175
    protected $manufacturereIdList;
176
177
    /**
178
     * @var int|null
179
     *
180
     * @ORM\Column(nullable=true, type="integer")
181
     */
182
    protected $maxBuyAmount;
183
184
    /**
185
     * @var int|null
186
     *
187
     * @ORM\Column(nullable=true, type="integer")
188
     */
189
    protected $minBuyAmount;
190
191
    /**
192
     * @var int|null
193
     *
194
     * @ORM\Column(nullable=true, type="integer")
195
     */
196
    protected $minBuyAmountB2B;
197
198
    /**
199
     * The product number
200
     *
201
     * @var string|null
202
     *
203
     * @ORM\Column(nullable=true, type="string", length=191)
204
     */
205
    protected $number;
206
207
    /**
208
     * @var string|null
209
     *
210
     * @ORM\Column(nullable=true, type="string", length=191)
211
     */
212
    protected $picture;
213
214
    /**
215
     * @var int|null
216
     *
217
     * @ORM\Column(nullable=true, type="integer")
218
     */
219
    protected $salesCount;
220
221
    /**
222
     * @var array|null
223
     *
224
     * @ORM\Column(nullable=true, type="json")
225
     */
226
    protected $segmentIdList;
227
228
    /**
229
     * @var int|null
230
     *
231
     * @ORM\Column(nullable=true, type="integer")
232
     */
233
    protected $sortOrder;
234
235
    /**
236
     * @var int|null
237
     *
238
     * @ORM\Column(nullable=true, type="integer")
239
     */
240
    protected $stockCount;
241
242
    /**
243
     * @var int|null
244
     *
245
     * @ORM\Column(nullable=true, type="integer")
246
     */
247
    protected $stockLimit;
248
249
    /**
250
     * @var int|null
251
     *
252
     * @ORM\Column(nullable=true, type="integer")
253
     */
254
    protected $typeId;
255
256
    /**
257
     * @var \DateTimeImmutable|null
258
     *
259
     * @ORM\Column(nullable=true, type="datetime_immutable", options={"comment"="Updated info from Dandomain"})
260
     */
261
    protected $updated;
262
263
    /**
264
     * @var string|null
265
     *
266
     * @ORM\Column(nullable=true, type="string", length=191, options={"comment"="Updated by info from Dandomain"})
267
     */
268
    protected $updatedBy;
269
270
    /**
271
     * @var array|null
272
     *
273
     * @ORM\Column(nullable=true, type="json")
274
     */
275
    protected $variantGroupIdList;
276
277
    /**
278
     * @var array|null
279
     *
280
     * @ORM\Column(nullable=true, type="json")
281
     */
282
    protected $variantIdList;
283
284
    /**
285
     * @var int|null
286
     *
287
     * @ORM\Column(nullable=true, type="string", length=191)
288
     */
289
    protected $variantMasterId;
290
291
    /**
292
     * @var string|null
293
     *
294
     * @ORM\Column(nullable=true, type="string", length=191)
295
     */
296
    protected $vendorNumber;
297
298
    /**
299
     * @var int|null
300
     *
301
     * @ORM\Column(nullable=true, type="integer")
302
     */
303
    protected $weight;
304
305
    /**
306
     * @var Category[]|ArrayCollection
307
     */
308
    protected $categories;
309
310
    /**
311
     * @var Variant[]|ArrayCollection
312
     */
313
    protected $disabledVariants;
314
315
    /**
316
     * @var Manufacturer[]|ArrayCollection
317
     *
318
     * @ORM\JoinTable(name="ldf_product_manufacturer")
319
     * @ORM\ManyToMany(cascade={"persist"}, inversedBy="products", targetEntity="Manufacturer")
320
     */
321
    protected $manufacturers;
322
323
    /**
324
     * @var Medium[]|ArrayCollection
325
     */
326
    protected $media;
327
328
    /**
329
     * @var Price[]|ArrayCollection
330
     */
331
    protected $prices;
332
333
    /**
334
     * @var ProductRelation[]|ArrayCollection
335
     */
336
    protected $productRelations;
337
338
    /**
339
     * @var ProductType
340
     */
341
    protected $productType;
342
343
    /**
344
     * @var Segment[]|ArrayCollection
345
     */
346
    protected $segments;
347
348
    /**
349
     * @var VariantGroup[]|ArrayCollection
350
     */
351
    protected $variantGroups;
352
353
    /**
354
     * @var Variant[]|ArrayCollection
355
     */
356
    protected $variants;
357
358
    public function __construct()
359
    {
360
        $this->categories = new ArrayCollection();
361
        $this->disabledVariants = new ArrayCollection();
362
        $this->manufacturers = new ArrayCollection();
363
        $this->media = new ArrayCollection();
364
        $this->prices = new ArrayCollection();
365
        $this->productRelations = new ArrayCollection();
366
        $this->segments = new ArrayCollection();
367
        $this->variants = new ArrayCollection();
368
        $this->variantGroups = new ArrayCollection();
369
    }
370
371
    /*
372
     * Collection/relation methods
373
     */
374
375
    public function addDisabledVariant(VariantInterface $variant) : ProductInterface
376
    {
377
        if (!$this->disabledVariants->contains($variant)) {
378
            $this->disabledVariants->add($variant);
379
        }
380
381
        return $this;
382
    }
383
384
    public function addMedium(MediumInterface $medium) : ProductInterface
385
    {
386
        if (!$this->media->contains($medium)) {
387
            $this->media->add($medium);
388
        }
389
390
        return $this;
391
    }
392
393
    public function addCategory(CategoryInterface $category) : ProductInterface
394
    {
395
        if (!$this->categories->contains($category)) {
396
            $this->categories->add($category);
397
        }
398
399
        return $this;
400
    }
401
402
    public function addManufacturer(ManufacturerInterface $manufacturer) : ProductInterface
403
    {
404
        if (!$this->hasManufacturer($manufacturer)) {
405
            $this->manufacturers->add($manufacturer);
406
        }
407
408
        return $this;
409
    }
410
411
    public function removeManufacturer(ManufacturerInterface $manufacturer) : bool
412
    {
413
        return $this->manufacturers->removeElement($manufacturer);
414
    }
415
416
    public function hasManufacturer(ManufacturerInterface $manufacturer) : bool
417
    {
418
        return $this->manufacturers->exists(function ($key, ManufacturerInterface $element) use ($manufacturer) {
419
            return $element->getExternalId() === $manufacturer->getExternalId();
420
        });
421
    }
422
423
    public function addVariantGroup(VariantGroupInterface $variantGroup) : ProductInterface
424
    {
425
        if (!$this->hasVariantGroup($variantGroup)) {
426
            $this->variantGroups->add($variantGroup);
427
        }
428
429
        return $this;
430
    }
431
432
    public function removeVariantGroup(VariantGroupInterface $variantGroup) : bool
433
    {
434
        return $this->variantGroups->removeElement($variantGroup);
435
    }
436
437
    public function hasVariantGroup($variantGroup) : bool
438
    {
439
        if($variantGroup instanceof VariantGroupInterface) {
440
            $variantGroup = $variantGroup->getExternalId();
441
        }
442
443
        return $this->variantGroups->exists(function ($key, VariantGroupInterface $element) use ($variantGroup) {
444
            return $element->getExternalId() === $variantGroup;
445
        });
446
    }
447
448
    public function addPrice(PriceInterface $price) : ProductInterface
449
    {
450
        if (!$this->prices->contains($price)) {
451
            $this->prices->add($price);
452
        }
453
454
        return $this;
455
    }
456
457
    public function addProductRelation(ProductRelationInterface $productRelation) : ProductInterface
458
    {
459
        if (!$this->productRelations->contains($productRelation)) {
460
            $this->productRelations->add($productRelation);
461
        }
462
463
        return $this;
464
    }
465
466
    public function addSegment(SegmentInterface $segment) : ProductInterface
467
    {
468
        if (!$this->segments->contains($segment)) {
469
            $this->segments->add($segment);
470
        }
471
472
        return $this;
473
    }
474
475
    public function addVariant(VariantInterface $variant) : ProductInterface
476
    {
477
        if (!$this->variants->contains($variant)) {
478
            $this->variants->add($variant);
479
        }
480
481
        return $this;
482
    }
483
484
    /*
485
     * Getters / Setters
486
     */
487
    /**
488
     * @return int
489
     */
490
    public function getId(): int
491
    {
492
        return (int)$this->id;
493
    }
494
495
    /**
496
     * @param int $id
497
     * @return ProductInterface
498
     */
499
    public function setId(int $id)
500
    {
501
        $this->id = $id;
502
        return $this;
503
    }
504
505
    /**
506
     * @return int
507
     */
508
    public function getExternalId(): int
509
    {
510
        return (int)$this->externalId;
511
    }
512
513
    /**
514
     * @param int $externalId
515
     * @return ProductInterface
516
     */
517
    public function setExternalId(int $externalId)
518
    {
519
        $this->externalId = $externalId;
520
        return $this;
521
    }
522
523
    /**
524
     * @return null|string
525
     */
526
    public function getBarCodeNumber()
527
    {
528
        return $this->barCodeNumber;
529
    }
530
531
    /**
532
     * @param null|string $barCodeNumber
533
     * @return ProductInterface
534
     */
535
    public function setBarCodeNumber($barCodeNumber)
536
    {
537
        $this->barCodeNumber = $barCodeNumber;
538
        return $this;
539
    }
540
541
    /**
542
     * @return array|null
543
     */
544
    public function getCategoryIdList()
545
    {
546
        return $this->categoryIdList;
547
    }
548
549
    /**
550
     * @param array|null $categoryIdList
551
     * @return ProductInterface
552
     */
553
    public function setCategoryIdList($categoryIdList)
554
    {
555
        $this->categoryIdList = $categoryIdList;
556
        return $this;
557
    }
558
559
    /**
560
     * @return null|string
561
     */
562
    public function getComments()
563
    {
564
        return $this->comments;
565
    }
566
567
    /**
568
     * @param null|string $comments
569
     * @return ProductInterface
570
     */
571
    public function setComments($comments)
572
    {
573
        $this->comments = $comments;
574
        return $this;
575
    }
576
577
    /**
578
     * @return float|null
579
     */
580
    public function getCostPrice()
581
    {
582
        return $this->costPrice;
583
    }
584
585
    /**
586
     * @param float|null $costPrice
587
     * @return ProductInterface
588
     */
589
    public function setCostPrice($costPrice)
590
    {
591
        $this->costPrice = $costPrice;
592
        return $this;
593
    }
594
595
    /**
596
     * @return \DateTimeImmutable|null
597
     */
598
    public function getCreated()
599
    {
600
        return $this->created;
601
    }
602
603
    /**
604
     * @param \DateTimeImmutable|null $created
605
     * @return ProductInterface
606
     */
607
    public function setCreated($created)
608
    {
609
        $this->created = $created;
610
        return $this;
611
    }
612
613
    /**
614
     * @return null|string
615
     */
616
    public function getCreatedBy()
617
    {
618
        return $this->createdBy;
619
    }
620
621
    /**
622
     * @param null|string $createdBy
623
     * @return ProductInterface
624
     */
625
    public function setCreatedBy($createdBy)
626
    {
627
        $this->createdBy = $createdBy;
628
        return $this;
629
    }
630
631
    /**
632
     * @return int|null
633
     */
634
    public function getDefaultCategoryId()
635
    {
636
        return $this->defaultCategoryId;
637
    }
638
639
    /**
640
     * @param int|null $defaultCategoryId
641
     * @return ProductInterface
642
     */
643
    public function setDefaultCategoryId($defaultCategoryId)
644
    {
645
        $this->defaultCategoryId = $defaultCategoryId;
646
        return $this;
647
    }
648
649
    /**
650
     * @return array|null
651
     */
652
    public function getDisabledVariantIdList()
653
    {
654
        return $this->disabledVariantIdList;
655
    }
656
657
    /**
658
     * @param array|null $disabledVariantIdList
659
     * @return ProductInterface
660
     */
661
    public function setDisabledVariantIdList($disabledVariantIdList)
662
    {
663
        $this->disabledVariantIdList = $disabledVariantIdList;
664
        return $this;
665
    }
666
667
    /**
668
     * @return null|string
669
     */
670
    public function getEdbPriserProductNumber()
671
    {
672
        return $this->edbPriserProductNumber;
673
    }
674
675
    /**
676
     * @param null|string $edbPriserProductNumber
677
     * @return ProductInterface
678
     */
679
    public function setEdbPriserProductNumber($edbPriserProductNumber)
680
    {
681
        $this->edbPriserProductNumber = $edbPriserProductNumber;
682
        return $this;
683
    }
684
685
    /**
686
     * @return null|string
687
     */
688
    public function getFileSaleLink()
689
    {
690
        return $this->fileSaleLink;
691
    }
692
693
    /**
694
     * @param null|string $fileSaleLink
695
     * @return ProductInterface
696
     */
697
    public function setFileSaleLink($fileSaleLink)
698
    {
699
        $this->fileSaleLink = $fileSaleLink;
700
        return $this;
701
    }
702
703
    /**
704
     * @return null|string
705
     */
706
    public function getGoogleFeedCategory()
707
    {
708
        return $this->googleFeedCategory;
709
    }
710
711
    /**
712
     * @param null|string $googleFeedCategory
713
     * @return ProductInterface
714
     */
715
    public function setGoogleFeedCategory($googleFeedCategory)
716
    {
717
        $this->googleFeedCategory = $googleFeedCategory;
718
        return $this;
719
    }
720
721
    /**
722
     * @return bool|null
723
     */
724
    public function getisGiftCertificate()
725
    {
726
        return $this->isGiftCertificate;
727
    }
728
729
    /**
730
     * @param bool|null $isGiftCertificate
731
     * @return ProductInterface
732
     */
733
    public function setIsGiftCertificate($isGiftCertificate)
734
    {
735
        $this->isGiftCertificate = $isGiftCertificate;
736
        return $this;
737
    }
738
739
    /**
740
     * @return bool|null
741
     */
742
    public function getisModified()
743
    {
744
        return $this->isModified;
745
    }
746
747
    /**
748
     * @param bool|null $isModified
749
     * @return ProductInterface
750
     */
751
    public function setIsModified($isModified)
752
    {
753
        $this->isModified = $isModified;
754
        return $this;
755
    }
756
757
    /**
758
     * @return bool|null
759
     */
760
    public function getisRateVariants()
761
    {
762
        return $this->isRateVariants;
763
    }
764
765
    /**
766
     * @param bool|null $isRateVariants
767
     * @return ProductInterface
768
     */
769
    public function setIsRateVariants($isRateVariants)
770
    {
771
        $this->isRateVariants = $isRateVariants;
772
        return $this;
773
    }
774
775
    /**
776
     * @return bool|null
777
     */
778
    public function getisReviewVariants()
779
    {
780
        return $this->isReviewVariants;
781
    }
782
783
    /**
784
     * @param bool|null $isReviewVariants
785
     * @return ProductInterface
786
     */
787
    public function setIsReviewVariants($isReviewVariants)
788
    {
789
        $this->isReviewVariants = $isReviewVariants;
790
        return $this;
791
    }
792
793
    /**
794
     * @return bool|null
795
     */
796
    public function getisVariantMaster()
797
    {
798
        return $this->isVariantMaster;
799
    }
800
801
    /**
802
     * @param bool|null $isVariantMaster
803
     * @return ProductInterface
804
     */
805
    public function setIsVariantMaster($isVariantMaster)
806
    {
807
        $this->isVariantMaster = $isVariantMaster;
808
        return $this;
809
    }
810
811
    /**
812
     * @return null|string
813
     */
814
    public function getLocationNumber()
815
    {
816
        return $this->locationNumber;
817
    }
818
819
    /**
820
     * @param null|string $locationNumber
821
     * @return ProductInterface
822
     */
823
    public function setLocationNumber($locationNumber)
824
    {
825
        $this->locationNumber = $locationNumber;
826
        return $this;
827
    }
828
829
    /**
830
     * @return array|null
831
     */
832
    public function getManufacturereIdList()
833
    {
834
        return $this->manufacturereIdList;
835
    }
836
837
    /**
838
     * @param array|null $manufacturereIdList
839
     * @return ProductInterface
840
     */
841
    public function setManufacturereIdList($manufacturereIdList)
842
    {
843
        $this->manufacturereIdList = $manufacturereIdList;
844
        return $this;
845
    }
846
847
    /**
848
     * @return int|null
849
     */
850
    public function getMaxBuyAmount()
851
    {
852
        return $this->maxBuyAmount;
853
    }
854
855
    /**
856
     * @param int|null $maxBuyAmount
857
     * @return ProductInterface
858
     */
859
    public function setMaxBuyAmount($maxBuyAmount)
860
    {
861
        $this->maxBuyAmount = $maxBuyAmount;
862
        return $this;
863
    }
864
865
    /**
866
     * @return int|null
867
     */
868
    public function getMinBuyAmount()
869
    {
870
        return $this->minBuyAmount;
871
    }
872
873
    /**
874
     * @param int|null $minBuyAmount
875
     * @return ProductInterface
876
     */
877
    public function setMinBuyAmount($minBuyAmount)
878
    {
879
        $this->minBuyAmount = $minBuyAmount;
880
        return $this;
881
    }
882
883
    /**
884
     * @return int|null
885
     */
886
    public function getMinBuyAmountB2B()
887
    {
888
        return $this->minBuyAmountB2B;
889
    }
890
891
    /**
892
     * @param int|null $minBuyAmountB2B
893
     * @return ProductInterface
894
     */
895
    public function setMinBuyAmountB2B($minBuyAmountB2B)
896
    {
897
        $this->minBuyAmountB2B = $minBuyAmountB2B;
898
        return $this;
899
    }
900
901
    /**
902
     * @return null|string
903
     */
904
    public function getNumber()
905
    {
906
        return $this->number;
907
    }
908
909
    /**
910
     * @param null|string $number
911
     * @return ProductInterface
912
     */
913
    public function setNumber($number)
914
    {
915
        $this->number = $number;
916
        return $this;
917
    }
918
919
    /**
920
     * @return null|string
921
     */
922
    public function getPicture()
923
    {
924
        return $this->picture;
925
    }
926
927
    /**
928
     * @param null|string $picture
929
     * @return ProductInterface
930
     */
931
    public function setPicture($picture)
932
    {
933
        $this->picture = $picture;
934
        return $this;
935
    }
936
937
    /**
938
     * @return int|null
939
     */
940
    public function getSalesCount()
941
    {
942
        return $this->salesCount;
943
    }
944
945
    /**
946
     * @param int|null $salesCount
947
     * @return ProductInterface
948
     */
949
    public function setSalesCount($salesCount)
950
    {
951
        $this->salesCount = $salesCount;
952
        return $this;
953
    }
954
955
    /**
956
     * @return array|null
957
     */
958
    public function getSegmentIdList()
959
    {
960
        return $this->segmentIdList;
961
    }
962
963
    /**
964
     * @param array|null $segmentIdList
965
     * @return ProductInterface
966
     */
967
    public function setSegmentIdList($segmentIdList)
968
    {
969
        $this->segmentIdList = $segmentIdList;
970
        return $this;
971
    }
972
973
    /**
974
     * @return int|null
975
     */
976
    public function getSortOrder()
977
    {
978
        return $this->sortOrder;
979
    }
980
981
    /**
982
     * @param int|null $sortOrder
983
     * @return ProductInterface
984
     */
985
    public function setSortOrder($sortOrder)
986
    {
987
        $this->sortOrder = $sortOrder;
988
        return $this;
989
    }
990
991
    /**
992
     * @return int|null
993
     */
994
    public function getStockCount()
995
    {
996
        return $this->stockCount;
997
    }
998
999
    /**
1000
     * @param int|null $stockCount
1001
     * @return ProductInterface
1002
     */
1003
    public function setStockCount($stockCount)
1004
    {
1005
        $this->stockCount = $stockCount;
1006
        return $this;
1007
    }
1008
1009
    /**
1010
     * @return int|null
1011
     */
1012
    public function getStockLimit()
1013
    {
1014
        return $this->stockLimit;
1015
    }
1016
1017
    /**
1018
     * @param int|null $stockLimit
1019
     * @return ProductInterface
1020
     */
1021
    public function setStockLimit($stockLimit)
1022
    {
1023
        $this->stockLimit = $stockLimit;
1024
        return $this;
1025
    }
1026
1027
    /**
1028
     * @return int|null
1029
     */
1030
    public function getTypeId()
1031
    {
1032
        return $this->typeId;
1033
    }
1034
1035
    /**
1036
     * @param int|null $typeId
1037
     * @return ProductInterface
1038
     */
1039
    public function setTypeId($typeId)
1040
    {
1041
        $this->typeId = $typeId;
1042
        return $this;
1043
    }
1044
1045
    /**
1046
     * @return \DateTimeImmutable|null
1047
     */
1048
    public function getUpdated()
1049
    {
1050
        return $this->updated;
1051
    }
1052
1053
    /**
1054
     * @param \DateTimeImmutable|null $updated
1055
     * @return ProductInterface
1056
     */
1057
    public function setUpdated($updated)
1058
    {
1059
        $this->updated = $updated;
1060
        return $this;
1061
    }
1062
1063
    /**
1064
     * @return null|string
1065
     */
1066
    public function getUpdatedBy()
1067
    {
1068
        return $this->updatedBy;
1069
    }
1070
1071
    /**
1072
     * @param null|string $updatedBy
1073
     * @return ProductInterface
1074
     */
1075
    public function setUpdatedBy($updatedBy)
1076
    {
1077
        $this->updatedBy = $updatedBy;
1078
        return $this;
1079
    }
1080
1081
    /**
1082
     * @return array|null
1083
     */
1084
    public function getVariantGroupIdList()
1085
    {
1086
        return $this->variantGroupIdList;
1087
    }
1088
1089
    /**
1090
     * @param array|null $variantGroupIdList
1091
     * @return ProductInterface
1092
     */
1093
    public function setVariantGroupIdList($variantGroupIdList)
1094
    {
1095
        $this->variantGroupIdList = $variantGroupIdList;
1096
        return $this;
1097
    }
1098
1099
    /**
1100
     * @return array|null
1101
     */
1102
    public function getVariantIdList()
1103
    {
1104
        return $this->variantIdList;
1105
    }
1106
1107
    /**
1108
     * @param array|null $variantIdList
1109
     * @return ProductInterface
1110
     */
1111
    public function setVariantIdList($variantIdList)
1112
    {
1113
        $this->variantIdList = $variantIdList;
1114
        return $this;
1115
    }
1116
1117
    /**
1118
     * @return int|null
1119
     */
1120
    public function getVariantMasterId()
1121
    {
1122
        return $this->variantMasterId;
1123
    }
1124
1125
    /**
1126
     * @param int|null $variantMasterId
1127
     * @return ProductInterface
1128
     */
1129
    public function setVariantMasterId($variantMasterId)
1130
    {
1131
        $this->variantMasterId = $variantMasterId;
1132
        return $this;
1133
    }
1134
1135
    /**
1136
     * @return null|string
1137
     */
1138
    public function getVendorNumber()
1139
    {
1140
        return $this->vendorNumber;
1141
    }
1142
1143
    /**
1144
     * @param null|string $vendorNumber
1145
     * @return ProductInterface
1146
     */
1147
    public function setVendorNumber($vendorNumber)
1148
    {
1149
        $this->vendorNumber = $vendorNumber;
1150
        return $this;
1151
    }
1152
1153
    /**
1154
     * @return int|null
1155
     */
1156
    public function getWeight()
1157
    {
1158
        return $this->weight;
1159
    }
1160
1161
    /**
1162
     * @param int|null $weight
1163
     * @return ProductInterface
1164
     */
1165
    public function setWeight($weight)
1166
    {
1167
        $this->weight = $weight;
1168
        return $this;
1169
    }
1170
1171
    /**
1172
     * @return ArrayCollection|Category[]
1173
     */
1174
    public function getCategories()
1175
    {
1176
        return $this->categories;
1177
    }
1178
1179
    /**
1180
     * @param ArrayCollection|Category[] $categories
1181
     * @return ProductInterface
1182
     */
1183
    public function setCategories($categories)
1184
    {
1185
        $this->categories = $categories;
1186
        return $this;
1187
    }
1188
1189
    /**
1190
     * @return ArrayCollection|Variant[]
1191
     */
1192
    public function getDisabledVariants()
1193
    {
1194
        return $this->disabledVariants;
1195
    }
1196
1197
    /**
1198
     * @param ArrayCollection|Variant[] $disabledVariants
1199
     * @return ProductInterface
1200
     */
1201
    public function setDisabledVariants($disabledVariants)
1202
    {
1203
        $this->disabledVariants = $disabledVariants;
1204
        return $this;
1205
    }
1206
1207
    /**
1208
     * @return ArrayCollection|Manufacturer[]
1209
     */
1210
    public function getManufacturers()
1211
    {
1212
        return $this->manufacturers;
1213
    }
1214
1215
    /**
1216
     * @param ArrayCollection|Manufacturer[] $manufacturers
1217
     * @return ProductInterface
1218
     */
1219
    public function setManufacturers($manufacturers)
1220
    {
1221
        $this->manufacturers = $manufacturers;
1222
        return $this;
1223
    }
1224
1225
    /**
1226
     * @return ArrayCollection|Medium[]
1227
     */
1228
    public function getMedia()
1229
    {
1230
        return $this->media;
1231
    }
1232
1233
    /**
1234
     * @param ArrayCollection|Medium[] $media
1235
     * @return ProductInterface
1236
     */
1237
    public function setMedia($media)
1238
    {
1239
        $this->media = $media;
1240
        return $this;
1241
    }
1242
1243
    /**
1244
     * @return ArrayCollection|Price[]
1245
     */
1246
    public function getPrices()
1247
    {
1248
        return $this->prices;
1249
    }
1250
1251
    /**
1252
     * @param ArrayCollection|Price[] $prices
1253
     * @return ProductInterface
1254
     */
1255
    public function setPrices($prices)
1256
    {
1257
        $this->prices = $prices;
1258
        return $this;
1259
    }
1260
1261
    /**
1262
     * @return ArrayCollection|ProductRelation[]
1263
     */
1264
    public function getProductRelations()
1265
    {
1266
        return $this->productRelations;
1267
    }
1268
1269
    /**
1270
     * @param ArrayCollection|ProductRelation[] $productRelations
1271
     * @return ProductInterface
1272
     */
1273
    public function setProductRelations($productRelations)
1274
    {
1275
        $this->productRelations = $productRelations;
1276
        return $this;
1277
    }
1278
1279
    /**
1280
     * @return ProductTypeInterface
1281
     */
1282
    public function getProductType(): ProductTypeInterface
1283
    {
1284
        return $this->productType;
1285
    }
1286
1287
    /**
1288
     * @param ProductType $productType
1289
     * @return ProductInterface
1290
     */
1291
    public function setProductType(ProductType $productType)
1292
    {
1293
        $this->productType = $productType;
1294
        return $this;
1295
    }
1296
1297
    /**
1298
     * @return ArrayCollection|Segment[]
1299
     */
1300
    public function getSegments()
1301
    {
1302
        return $this->segments;
1303
    }
1304
1305
    /**
1306
     * @param ArrayCollection|Segment[] $segments
1307
     * @return ProductInterface
1308
     */
1309
    public function setSegments($segments)
1310
    {
1311
        $this->segments = $segments;
1312
        return $this;
1313
    }
1314
1315
    /**
1316
     * @return ArrayCollection|VariantGroup[]
1317
     */
1318
    public function getVariantGroups()
1319
    {
1320
        return $this->variantGroups;
1321
    }
1322
1323
    /**
1324
     * @param ArrayCollection|VariantGroup[] $variantGroups
1325
     * @return ProductInterface
1326
     */
1327
    public function setVariantGroups($variantGroups)
1328
    {
1329
        $this->variantGroups = $variantGroups;
1330
        return $this;
1331
    }
1332
1333
    /**
1334
     * @return ArrayCollection|Variant[]
1335
     */
1336
    public function getVariants()
1337
    {
1338
        return $this->variants;
1339
    }
1340
1341
    /**
1342
     * @param ArrayCollection|Variant[] $variants
1343
     * @return ProductInterface
1344
     */
1345
    public function setVariants($variants)
1346
    {
1347
        $this->variants = $variants;
1348
        return $this;
1349
    }
1350
}
1351