Completed
Push — master ( 3762bd...2b4d4e )
by Tim
12s
created

deleteProductTextAttribute()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 2
crap 2
1
<?php
2
3
/**
4
 * TechDivision\Import\Product\Services\ProductBunchProcessor
5
 *
6
 * NOTICE OF LICENSE
7
 *
8
 * This source file is subject to the Open Software License (OSL 3.0)
9
 * that is available through the world-wide-web at this URL:
10
 * http://opensource.org/licenses/osl-3.0.php
11
 *
12
 * PHP version 5
13
 *
14
 * @author    Tim Wagner <[email protected]>
15
 * @copyright 2016 TechDivision GmbH <[email protected]>
16
 * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
 * @link      https://github.com/techdivision/import-product
18
 * @link      http://www.techdivision.com
19
 */
20
21
namespace TechDivision\Import\Product\Services;
22
23
use TechDivision\Import\Actions\UrlRewriteAction;
24
use TechDivision\Import\Connection\ConnectionInterface;
25
use TechDivision\Import\Product\Actions\CategoryProductAction;
26
use TechDivision\Import\Product\Actions\ProductAction;
27
use TechDivision\Import\Product\Actions\ProductDatetimeAction;
28
use TechDivision\Import\Product\Actions\ProductDecimalAction;
29
use TechDivision\Import\Product\Actions\ProductIntAction;
30
use TechDivision\Import\Product\Actions\ProductTextAction;
31
use TechDivision\Import\Product\Actions\ProductVarcharAction;
32
use TechDivision\Import\Product\Actions\ProductWebsiteAction;
33
use TechDivision\Import\Product\Actions\StockItemAction;
34
use TechDivision\Import\Product\Actions\StockStatusAction;
35
use TechDivision\Import\Product\Repositories\CategoryProductRepository;
36
use TechDivision\Import\Product\Repositories\ProductDatetimeRepository;
37
use TechDivision\Import\Product\Repositories\ProductDecimalRepository;
38
use TechDivision\Import\Product\Repositories\ProductIntRepository;
39
use TechDivision\Import\Product\Repositories\ProductRepository;
40
use TechDivision\Import\Product\Repositories\ProductTextRepository;
41
use TechDivision\Import\Product\Repositories\ProductVarcharRepository;
42
use TechDivision\Import\Product\Repositories\ProductWebsiteRepository;
43
use TechDivision\Import\Product\Repositories\StockItemRepository;
44
use TechDivision\Import\Product\Repositories\StockStatusRepository;
45
use TechDivision\Import\Repositories\EavAttributeOptionValueRepository;
46
use TechDivision\Import\Repositories\EavAttributeRepository;
47
48
/**
49
 * The product bunch processor implementation.
50
 *
51
 * @author    Tim Wagner <[email protected]>
52
 * @copyright 2016 TechDivision GmbH <[email protected]>
53
 * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
54
 * @link      https://github.com/techdivision/import-product
55
 * @link      http://www.techdivision.com
56
 */
57
class ProductBunchProcessor implements ProductBunchProcessorInterface
58
{
59
60
    /**
61
     * A PDO connection initialized with the values from the Doctrine EntityManager.
62
     *
63
     * @var \TechDivision\Import\Connection\ConnectionInterface
64
     */
65
    protected $connection;
66
67
    /**
68
     * The repository to access EAV attribute option values.
69
     *
70
     * @var \TechDivision\Import\Repositories\EavAttributeOptionValueRepository
71
     */
72
    protected $eavAttributeOptionValueRepository;
73
74
    /**
75
     * The repository to access EAV attributes.
76
     *
77
     * @var \TechDivision\Import\Repositories\EavAttributeRepository
78
     */
79
    protected $eavAttributeRepository;
80
81
    /**
82
     * The action for product CRUD methods.
83
     *
84
     * @var \TechDivision\Import\Product\Actions\ProductAction
85
     */
86
    protected $productAction;
87
88
    /**
89
     * The action for product varchar attribute CRUD methods.
90
     *
91
     * @var \TechDivision\Import\Product\Actions\ProductVarcharAction
92
     */
93
    protected $productVarcharAction;
94
95
    /**
96
     * The action for product text attribute CRUD methods.
97
     *
98
     * @var \TechDivision\Import\Product\Actions\ProductTextAction
99
     */
100
    protected $productTextAction;
101
102
    /**
103
     * The action for product int attribute CRUD methods.
104
     *
105
     * @var \TechDivision\Import\Product\Actions\ProductIntAction
106
     */
107
    protected $productIntAction;
108
109
    /**
110
     * The action for product decimal attribute CRUD methods.
111
     *
112
     * @var \TechDivision\Import\Product\Actions\ProductDecimalAction
113
     */
114
    protected $productDecimalAction;
115
116
    /**
117
     * The action for product datetime attribute CRUD methods.
118
     *
119
     * @var \TechDivision\Import\Product\Actions\ProductDatetimeAction
120
     */
121
    protected $productDatetimeAction;
122
123
    /**
124
     * The action for product website CRUD methods.
125
     *
126
     * @var \TechDivision\Import\Product\Actions\ProductWebsiteAction
127
     */
128
    protected $productWebsiteAction;
129
130
    /**
131
     * The action for category product relation CRUD methods.
132
     *
133
     * @var \TechDivision\Import\Product\Actions\CategoryProductAction
134
     */
135
    protected $categoryProductAction;
136
137
    /**
138
     * The action for stock item CRUD methods.
139
     *
140
     * @var \TechDivision\Import\Product\Actions\StockItemAction
141
     */
142
    protected $stockItemAction;
143
144
    /**
145
     * The action for stock status CRUD methods.
146
     *
147
     * @var \TechDivision\Import\Product\Actions\StockStatusAction
148
     */
149
    protected $stockStatusAction;
150
151
    /**
152
     * The action for URL rewrite CRUD methods.
153
     *
154
     * @var \TechDivision\Import\Actions\UrlRewriteAction
155
     */
156
    protected $urlRewriteAction;
157
158
    /**
159
     * The repository to load the products with.
160
     *
161
     * @var \TechDivision\Import\Product\Repositories\ProductRepository
162
     */
163
    protected $productRepository;
164
165
    /**
166
     * The repository to load the product website relations with.
167
     *
168
     * @var \TechDivision\Import\Product\Repositories\ProductWebsiteRepository
169
     */
170
    protected $productWebsiteRepository;
171
172
    /**
173
     * The repository to load the product datetime attribute with.
174
     *
175
     * @var \TechDivision\Import\Product\Repositories\ProductDatetimeRepository
176
     */
177
    protected $productDatetimeRepository;
178
179
    /**
180
     * The repository to load the product decimal attribute with.
181
     *
182
     * @var \TechDivision\Import\Product\Repositories\ProductDecimalRepository
183
     */
184
    protected $productDecimalRepository;
185
186
    /**
187
     * The repository to load the product integer attribute with.
188
     *
189
     * @var \TechDivision\Import\Product\Repositories\ProductIntRepository
190
     */
191
    protected $productIntRepository;
192
193
    /**
194
     * The repository to load the product text attribute with.
195
     *
196
     * @var \TechDivision\Import\Product\Repositories\ProductTextRepository
197
     */
198
    protected $productTextRepository;
199
200
    /**
201
     * The repository to load the product varchar attribute with.
202
     *
203
     * @var \TechDivision\Import\Product\Repositories\ProductVarcharRepository
204
     */
205
    protected $productVarcharRepository;
206
207
    /**
208
     * The repository to load the category product relations with.
209
     *
210
     * @var \TechDivision\Import\Product\Repositories\CategoryProductRepository
211
     */
212
    protected $categoryProductRepository;
213
214
    /**
215
     * The repository to load the stock status with.
216
     *
217
     * @var \TechDivision\Import\Product\Repositories\StockStatusRepository
218
     */
219
    protected $stockStatusRepository;
220
221
    /**
222
     * The repository to load the stock item with.
223
     *
224
     * @var \TechDivision\Import\Product\Repositories\StockItemRepository
225
     */
226
    protected $stockItemRepository;
227
228
    /**
229
     * Initialize the processor with the necessary assembler and repository instances.
230
     *
231
     * @param \TechDivision\Import\Connection\ConnectionInterface                 $connection                        The connection to use
232
     * @param \TechDivision\Import\Product\Repositories\ProductRepository         $productRepository                 The product repository to use
233
     * @param \TechDivision\Import\Product\Repositories\ProductWebsiteRepository  $productWebsiteRepository          The product website repository to use
234
     * @param \TechDivision\Import\Product\Repositories\ProductDatetimeRepository $productDatetimeRepository         The product datetime repository to use
235
     * @param \TechDivision\Import\Product\Repositories\ProductDecimalRepository  $productDecimalRepository          The product decimal repository to use
236
     * @param \TechDivision\Import\Product\Repositories\ProductIntRepository      $productIntRepository              The product integer repository to use
237
     * @param \TechDivision\Import\Product\Repositories\ProductTextRepository     $productTextRepository             The product text repository to use
238
     * @param \TechDivision\Import\Product\Repositories\ProductVarcharRepository  $productVarcharRepository          The product varchar repository to use
239
     * @param \TechDivision\Import\Product\Repositories\CategoryProductRepository $categoryProductRepository         The category product repository to use
240
     * @param \TechDivision\Import\Product\Repositories\StockStatusRepository     $stockStatusRepository             The stock status repository to use
241
     * @param \TechDivision\Import\Product\Repositories\StockItemRepository       $stockItemRepository               The stock item repository to use
242
     * @param \TechDivision\Import\Repositories\EavAttributeOptionValueRepository $eavAttributeOptionValueRepository The EAV attribute option value repository to use
243
     * @param \TechDivision\Import\Repositories\EavAttributeRepository            $eavAttributeRepository            The EAV attribute repository to use
244
     * @param \TechDivision\Import\Product\Actions\CategoryProductAction          $categoryProductAction             The category product action to use
245
     * @param \TechDivision\Import\Product\Actions\ProductDatetimeAction          $productDatetimeAction             The product datetime action to use
246
     * @param \TechDivision\Import\Product\Actions\ProductDecimalAction           $productDecimalAction              The product decimal action to use
247
     * @param \TechDivision\Import\Product\Actions\ProductIntAction               $productIntAction                  The product integer action to use
248
     * @param \TechDivision\Import\Product\Actions\ProductAction                  $productAction                     The product action to use
249
     * @param \TechDivision\Import\Product\Actions\ProductTextAction              $productTextAction                 The product text action to use
250
     * @param \TechDivision\Import\Product\Actions\ProductVarcharAction           $productVarcharAction              The product varchar action to use
251
     * @param \TechDivision\Import\Product\Actions\ProductWebsiteAction           $productWebsiteAction              The product website action to use
252
     * @param \TechDivision\Import\Product\Actions\StockItemAction                $stockItemAction                   The stock item action to use
253
     * @param \TechDivision\Import\Product\Actions\StockStatusAction              $stockStatusAction                 The stock status action to use
254
     * @param \TechDivision\Import\Actions\UrlRewriteAction                       $urlRewriteAction                  The URL rewrite action to use
255
     */
256
    public function __construct(
257
        ConnectionInterface $connection,
258
        ProductRepository $productRepository,
259
        ProductWebsiteRepository $productWebsiteRepository,
260
        ProductDatetimeRepository $productDatetimeRepository,
261
        ProductDecimalRepository $productDecimalRepository,
262
        ProductIntRepository $productIntRepository,
263
        ProductTextRepository $productTextRepository,
264
        ProductVarcharRepository $productVarcharRepository,
265
        CategoryProductRepository $categoryProductRepository,
266
        StockStatusRepository $stockStatusRepository,
267
        StockItemRepository $stockItemRepository,
268
        EavAttributeOptionValueRepository $eavAttributeOptionValueRepository,
269
        EavAttributeRepository $eavAttributeRepository,
270
        CategoryProductAction $categoryProductAction,
271
        ProductDatetimeAction $productDatetimeAction,
272
        ProductDecimalAction $productDecimalAction,
273
        ProductIntAction $productIntAction,
274
        ProductAction $productAction,
275
        ProductTextAction $productTextAction,
276
        ProductVarcharAction $productVarcharAction,
277
        ProductWebsiteAction $productWebsiteAction,
278
        StockItemAction $stockItemAction,
279
        StockStatusAction $stockStatusAction,
280
        UrlRewriteAction $urlRewriteAction
281
    ) {
282
        $this->setConnection($connection);
283
        $this->setProductRepository($productRepository);
284
        $this->setProductWebsiteRepository($productWebsiteRepository);
285
        $this->setProductDatetimeRepository($productDatetimeRepository);
286
        $this->setProductDecimalRepository($productDecimalRepository);
287
        $this->setProductIntRepository($productIntRepository);
288
        $this->setProductTextRepository($productTextRepository);
289
        $this->setProductVarcharRepository($productVarcharRepository);
290
        $this->setCategoryProductRepository($categoryProductRepository);
291
        $this->setStockStatusRepository($stockStatusRepository);
292
        $this->setStockItemRepository($stockItemRepository);
293
        $this->setEavAttributeOptionValueRepository($eavAttributeOptionValueRepository);
294
        $this->setEavAttributeRepository($eavAttributeRepository);
295
        $this->setCategoryProductAction($categoryProductAction);
296
        $this->setProductDatetimeAction($productDatetimeAction);
297
        $this->setProductDecimalAction($productDecimalAction);
298
        $this->setProductIntAction($productIntAction);
299
        $this->setProductAction($productAction);
300
        $this->setProductTextAction($productTextAction);
301
        $this->setProductVarcharAction($productVarcharAction);
302
        $this->setProductWebsiteAction($productWebsiteAction);
303
        $this->setStockItemAction($stockItemAction);
304
        $this->setStockStatusAction($stockStatusAction);
305
        $this->setUrlRewriteAction($urlRewriteAction);
306
    }
307
308
    /**
309
     * Set's the passed connection.
310
     *
311
     * @param \TechDivision\Import\Connection\ConnectionInterface $connection The connection to set
312
     *
313
     * @return void
314
     */
315
    public function setConnection(ConnectionInterface $connection)
316
    {
317
        $this->connection = $connection;
318
    }
319
320
    /**
321
     * Return's the connection.
322
     *
323
     * @return \TechDivision\Import\Connection\ConnectionInterface The connection instance
324
     */
325
    public function getConnection()
326
    {
327
        return $this->connection;
328
    }
329
330
    /**
331
     * Turns off autocommit mode. While autocommit mode is turned off, changes made to the database via the PDO
332
     * object instance are not committed until you end the transaction by calling ProductProcessor::commit().
333
     * Calling ProductProcessor::rollBack() will roll back all changes to the database and return the connection
334
     * to autocommit mode.
335
     *
336
     * @return boolean Returns TRUE on success or FALSE on failure
337
     * @link http://php.net/manual/en/pdo.begintransaction.php
338
     */
339
    public function beginTransaction()
340
    {
341
        return $this->connection->beginTransaction();
342
    }
343
344
    /**
345
     * Commits a transaction, returning the database connection to autocommit mode until the next call to
346
     * ProductProcessor::beginTransaction() starts a new transaction.
347
     *
348
     * @return boolean Returns TRUE on success or FALSE on failure
349
     * @link http://php.net/manual/en/pdo.commit.php
350
     */
351
    public function commit()
352
    {
353
        return $this->connection->commit();
354
    }
355
356
    /**
357
     * Rolls back the current transaction, as initiated by ProductProcessor::beginTransaction().
358
     *
359
     * If the database was set to autocommit mode, this function will restore autocommit mode after it has
360
     * rolled back the transaction.
361
     *
362
     * Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition
363
     * language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit
364
     * COMMIT will prevent you from rolling back any other changes within the transaction boundary.
365
     *
366
     * @return boolean Returns TRUE on success or FALSE on failure
367
     * @link http://php.net/manual/en/pdo.rollback.php
368
     */
369
    public function rollBack()
370
    {
371
        return $this->connection->rollBack();
372
    }
373
374
    /**
375
     * Set's the repository to access EAV attribute option values.
376
     *
377
     * @param \TechDivision\Import\Repositories\EavAttributeOptionValueRepository $eavAttributeOptionValueRepository The repository to access EAV attribute option values
378
     *
379
     * @return void
380
     */
381
    public function setEavAttributeOptionValueRepository($eavAttributeOptionValueRepository)
382
    {
383
        $this->eavAttributeOptionValueRepository = $eavAttributeOptionValueRepository;
384
    }
385
386
    /**
387
     * Return's the repository to access EAV attribute option values.
388
     *
389
     * @return \TechDivision\Import\Repositories\EavAttributeOptionValueRepository The repository instance
390
     */
391
    public function getEavAttributeOptionValueRepository()
392
    {
393
        return $this->eavAttributeOptionValueRepository;
394
    }
395
396
    /**
397
     * Set's the repository to access EAV attributes.
398
     *
399
     * @param \TechDivision\Import\Repositories\EavAttributeRepository $eavAttributeRepository The repository to access EAV attributes
400
     *
401
     * @return void
402
     */
403
    public function setEavAttributeRepository($eavAttributeRepository)
404
    {
405
        $this->eavAttributeRepository = $eavAttributeRepository;
406
    }
407
408
    /**
409
     * Return's the repository to access EAV attributes.
410
     *
411
     * @return \TechDivision\Import\Repositories\EavAttributeRepository The repository instance
412
     */
413
    public function getEavAttributeRepository()
414
    {
415
        return $this->eavAttributeRepository;
416
    }
417
418
    /**
419
     * Return's an array with the available EAV attributes for the passed is user defined flag.
420
     *
421
     * @param integer $isUserDefined The flag itself
422
     *
423
     * @return array The array with the EAV attributes matching the passed flag
424
     */
425
    public function getEavAttributeByIsUserDefined($isUserDefined = 1)
426
    {
427
        return $this->getEavAttributeRepository()->findAllByIsUserDefined($isUserDefined);
428
    }
429
430
    /**
431
     * Set's the action with the product CRUD methods.
432
     *
433
     * @param \TechDivision\Import\Product\Actions\ProductAction $productAction The action with the product CRUD methods
434
     *
435
     * @return void
436
     */
437
    public function setProductAction($productAction)
438
    {
439
        $this->productAction = $productAction;
440
    }
441
442
    /**
443
     * Return's the action with the product CRUD methods.
444
     *
445
     * @return \TechDivision\Import\Product\Actions\ProductAction The action instance
446
     */
447
    public function getProductAction()
448
    {
449
        return $this->productAction;
450
    }
451
452
    /**
453
     * Set's the action with the product varchar attribute CRUD methods.
454
     *
455
     * @param \TechDivision\Import\Product\Actions\ProductVarcharAction $productVarcharAction The action with the product varchar attriute CRUD methods
456
     *
457
     * @return void
458
     */
459
    public function setProductVarcharAction($productVarcharAction)
460
    {
461
        $this->productVarcharAction = $productVarcharAction;
462
    }
463
464
    /**
465
     * Return's the action with the product varchar attribute CRUD methods.
466
     *
467
     * @return \TechDivision\Import\Product\Actions\ProductVarcharAction The action instance
468
     */
469
    public function getProductVarcharAction()
470
    {
471
        return $this->productVarcharAction;
472
    }
473
474
    /**
475
     * Set's the action with the product text attribute CRUD methods.
476
     *
477
     * @param \TechDivision\Import\Product\Actions\ProductTextAction $productTextAction The action with the product text attriute CRUD methods
478
     *
479
     * @return void
480
     */
481
    public function setProductTextAction($productTextAction)
482
    {
483
        $this->productTextAction = $productTextAction;
484
    }
485
486
    /**
487
     * Return's the action with the product text attribute CRUD methods.
488
     *
489
     * @return \TechDivision\Import\Product\Actions\ProductTextAction The action instance
490
     */
491
    public function getProductTextAction()
492
    {
493
        return $this->productTextAction;
494
    }
495
496
    /**
497
     * Set's the action with the product int attribute CRUD methods.
498
     *
499
     * @param \TechDivision\Import\Product\Actions\ProductIntAction $productIntAction The action with the product int attriute CRUD methods
500
     *
501
     * @return void
502
     */
503
    public function setProductIntAction($productIntAction)
504
    {
505
        $this->productIntAction = $productIntAction;
506
    }
507
508
    /**
509
     * Return's the action with the product int attribute CRUD methods.
510
     *
511
     * @return \TechDivision\Import\Product\Actions\ProductIntAction The action instance
512
     */
513
    public function getProductIntAction()
514
    {
515
        return $this->productIntAction;
516
    }
517
518
    /**
519
     * Set's the action with the product decimal attribute CRUD methods.
520
     *
521
     * @param \TechDivision\Import\Product\Actions\ProductDecimalAction $productDecimalAction The action with the product decimal attriute CRUD methods
522
     *
523
     * @return void
524
     */
525
    public function setProductDecimalAction($productDecimalAction)
526
    {
527
        $this->productDecimalAction = $productDecimalAction;
528
    }
529
530
    /**
531
     * Return's the action with the product decimal attribute CRUD methods.
532
     *
533
     * @return \TechDivision\Import\Product\Actions\ProductDecimalAction The action instance
534
     */
535
    public function getProductDecimalAction()
536
    {
537
        return $this->productDecimalAction;
538
    }
539
540
    /**
541
     * Set's the action with the product datetime attribute CRUD methods.
542
     *
543
     * @param \TechDivision\Import\Product\Actions\ProductDatetimeAction $productDatetimeAction The action with the product datetime attriute CRUD methods
544
     *
545
     * @return void
546
     */
547
    public function setProductDatetimeAction($productDatetimeAction)
548
    {
549
        $this->productDatetimeAction = $productDatetimeAction;
550
    }
551
552
    /**
553
     * Return's the action with the product datetime attribute CRUD methods.
554
     *
555
     * @return \TechDivision\Import\Product\Actions\ProductDatetimeAction The action instance
556
     */
557
    public function getProductDatetimeAction()
558
    {
559
        return $this->productDatetimeAction;
560
    }
561
562
    /**
563
     * Set's the action with the product website CRUD methods.
564
     *
565
     * @param \TechDivision\Import\Product\Actions\ProductWebsiteAction $productWebsiteAction The action with the product website CRUD methods
566
     *
567
     * @return void
568
     */
569
    public function setProductWebsiteAction($productWebsiteAction)
570
    {
571
        $this->productWebsiteAction = $productWebsiteAction;
572
    }
573
574
    /**
575
     * Return's the action with the product website CRUD methods.
576
     *
577
     * @return \TechDivision\Import\Product\Actions\ProductWebsiteAction The action instance
578
     */
579
    public function getProductWebsiteAction()
580
    {
581
        return $this->productWebsiteAction;
582
    }
583
584
    /**
585
     * Set's the action with the category product relation CRUD methods.
586
     *
587
     * @param \TechDivision\Import\Product\Actions\CategoryProductAction $categoryProductAction The action with the category product relation CRUD methods
588
     *
589
     * @return void
590
     */
591
    public function setCategoryProductAction($categoryProductAction)
592
    {
593
        $this->categoryProductAction = $categoryProductAction;
594
    }
595
596
    /**
597
     * Return's the action with the category product relation CRUD methods.
598
     *
599
     * @return \TechDivision\Import\Product\Actions\CategoryProductAction The action instance
600
     */
601
    public function getCategoryProductAction()
602
    {
603
        return $this->categoryProductAction;
604
    }
605
606
    /**
607
     * Set's the action with the stock item CRUD methods.
608
     *
609
     * @param \TechDivision\Import\Product\Actions\StockItemAction $stockItemAction The action with the stock item CRUD methods
610
     *
611
     * @return void
612
     */
613
    public function setStockItemAction($stockItemAction)
614
    {
615
        $this->stockItemAction = $stockItemAction;
616
    }
617
618
    /**
619
     * Return's the action with the stock item CRUD methods.
620
     *
621
     * @return \TechDivision\Import\Product\Actions\StockItemAction The action instance
622
     */
623
    public function getStockItemAction()
624
    {
625
        return $this->stockItemAction;
626
    }
627
628
    /**
629
     * Set's the action with the stock status CRUD methods.
630
     *
631
     * @param \TechDivision\Import\Product\Actions\StockStatusAction $stockStatusAction The action with the stock status CRUD methods
632
     *
633
     * @return void
634
     */
635
    public function setStockStatusAction($stockStatusAction)
636
    {
637
        $this->stockStatusAction = $stockStatusAction;
638
    }
639
640
    /**
641
     * Return's the action with the stock status CRUD methods.
642
     *
643
     * @return \TechDivision\Import\Product\Actions\StockStatusAction The action instance
644
     */
645
    public function getStockStatusAction()
646
    {
647
        return $this->stockStatusAction;
648
    }
649
650
    /**
651
     * Set's the action with the URL rewrite CRUD methods.
652
     *
653
     * @param \TechDivision\Import\Actions\UrlRewriteAction $urlRewriteAction The action with the URL rewrite CRUD methods
654
     *
655
     * @return void
656
     */
657
    public function setUrlRewriteAction($urlRewriteAction)
658
    {
659
        $this->urlRewriteAction = $urlRewriteAction;
660
    }
661
662
    /**
663
     * Return's the action with the URL rewrite CRUD methods.
664
     *
665
     * @return \TechDivision\Import\Actions\UrlRewriteAction The action instance
666
     */
667
    public function getUrlRewriteAction()
668
    {
669
        return $this->urlRewriteAction;
670
    }
671
672
    /**
673
     * Set's the repository to load the products with.
674
     *
675
     * @param \TechDivision\Import\Product\Repositories\ProductRepository $productRepository The repository instance
676
     *
677
     * @return void
678
     */
679
    public function setProductRepository($productRepository)
680
    {
681
        $this->productRepository = $productRepository;
682
    }
683
684
    /**
685
     * Return's the repository to load the products with.
686
     *
687
     * @return \TechDivision\Import\Product\Repositories\ProductRepository The repository instance
688
     */
689
    public function getProductRepository()
690
    {
691
        return $this->productRepository;
692
    }
693
694
    /**
695
     * Set's the repository to load the product website relations with.
696
     *
697
     * @param \TechDivision\Import\Product\Repositories\ProductWebsiteRepository $productWebsiteRepository The repository instance
698
     *
699
     * @return void
700
     */
701
    public function setProductWebsiteRepository($productWebsiteRepository)
702
    {
703
        $this->productWebsiteRepository = $productWebsiteRepository;
704
    }
705
706
    /**
707
     * Return's the repository to load the product website relations with.
708
     *
709
     * @return \TechDivision\Import\Product\Repositories\ProductWebsiteRepository The repository instance
710
     */
711
    public function getProductWebsiteRepository()
712
    {
713
        return $this->productWebsiteRepository;
714
    }
715
716
    /**
717
     * Set's the repository to load the product datetime attribute with.
718
     *
719
     * @param \TechDivision\Import\Product\Repositories\ProductDatetimeRepository $productDatetimeRepository The repository instance
720
     *
721
     * @return void
722
     */
723
    public function setProductDatetimeRepository($productDatetimeRepository)
724
    {
725
        $this->productDatetimeRepository = $productDatetimeRepository;
726
    }
727
728
    /**
729
     * Return's the repository to load the product datetime attribute with.
730
     *
731
     * @return \TechDivision\Import\Product\Repositories\ProductDatetimeRepository The repository instance
732
     */
733
    public function getProductDatetimeRepository()
734
    {
735
        return $this->productDatetimeRepository;
736
    }
737
738
    /**
739
     * Set's the repository to load the product decimal attribute with.
740
     *
741
     * @param \TechDivision\Import\Product\Repositories\ProductDecimalRepository $productDecimalRepository The repository instance
742
     *
743
     * @return void
744
     */
745
    public function setProductDecimalRepository($productDecimalRepository)
746
    {
747
        $this->productDecimalRepository = $productDecimalRepository;
748
    }
749
750
    /**
751
     * Return's the repository to load the product decimal attribute with.
752
     *
753
     * @return \TechDivision\Import\Product\Repositories\ProductDecimalRepository The repository instance
754
     */
755
    public function getProductDecimalRepository()
756
    {
757
        return $this->productDecimalRepository;
758
    }
759
760
    /**
761
     * Set's the repository to load the product integer attribute with.
762
     *
763
     * @param \TechDivision\Import\Product\Repositories\ProductIntRepository $productIntRepository The repository instance
764
     *
765
     * @return void
766
     */
767
    public function setProductIntRepository($productIntRepository)
768
    {
769
        $this->productIntRepository = $productIntRepository;
770
    }
771
772
    /**
773
     * Return's the repository to load the product integer attribute with.
774
     *
775
     * @return \TechDivision\Import\Product\Repositories\ProductIntRepository The repository instance
776
     */
777
    public function getProductIntRepository()
778
    {
779
        return $this->productIntRepository;
780
    }
781
782
    /**
783
     * Set's the repository to load the product text attribute with.
784
     *
785
     * @param \TechDivision\Import\Product\Repositories\ProductTextRepository $productTextRepository The repository instance
786
     *
787
     * @return void
788
     */
789
    public function setProductTextRepository($productTextRepository)
790
    {
791
        $this->productTextRepository = $productTextRepository;
792
    }
793
794
    /**
795
     * Return's the repository to load the product text attribute with.
796
     *
797
     * @return \TechDivision\Import\Product\Repositories\ProductTextRepository The repository instance
798
     */
799
    public function getProductTextRepository()
800
    {
801
        return $this->productTextRepository;
802
    }
803
804
    /**
805
     * Set's the repository to load the product varchar attribute with.
806
     *
807
     * @param \TechDivision\Import\Product\Repositories\ProductVarcharRepository $productVarcharRepository The repository instance
808
     *
809
     * @return void
810
     */
811
    public function setProductVarcharRepository($productVarcharRepository)
812
    {
813
        $this->productVarcharRepository = $productVarcharRepository;
814
    }
815
816
    /**
817
     * Return's the repository to load the product varchar attribute with.
818
     *
819
     * @return \TechDivision\Import\Product\Repositories\ProductVarcharRepository The repository instance
820
     */
821
    public function getProductVarcharRepository()
822
    {
823
        return $this->productVarcharRepository;
824
    }
825
826
    /**
827
     * Set's the repository to load the category product relations with.
828
     *
829
     * @param \TechDivision\Import\Product\Repositories\CategoryProductRepository $categoryProductRepository The repository instance
830
     *
831
     * @return void
832
     */
833
    public function setCategoryProductRepository($categoryProductRepository)
834
    {
835
        $this->categoryProductRepository = $categoryProductRepository;
836
    }
837
838
    /**
839
     * Return's the repository to load the category product relations with.
840
     *
841
     * @return \TechDivision\Import\Product\Repositories\CategoryProductRepository The repository instance
842
     */
843
    public function getCategoryProductRepository()
844
    {
845
        return $this->categoryProductRepository;
846
    }
847
848
    /**
849
     * Set's the repository to load the stock status with.
850
     *
851
     * @param \TechDivision\Import\Product\Repositories\StockStatusRepository $stockStatusRepository The repository instance
852
     *
853
     * @return void
854
     */
855
    public function setStockStatusRepository($stockStatusRepository)
856
    {
857
        $this->stockStatusRepository = $stockStatusRepository;
858
    }
859
860
    /**
861
     * Return's the repository to load the stock status with.
862
     *
863
     * @return \TechDivision\Import\Product\Repositories\StockStatusRepository The repository instance
864
     */
865
    public function getStockStatusRepository()
866
    {
867
        return $this->stockStatusRepository;
868
    }
869
870
    /**
871
     * Set's the repository to load the stock items with.
872
     *
873
     * @param \TechDivision\Import\Product\Repositories\StockItemRepository $stockItemRepository The repository instance
874
     *
875
     * @return void
876
     */
877
    public function setStockItemRepository($stockItemRepository)
878
    {
879
        $this->stockItemRepository = $stockItemRepository;
880
    }
881
882
    /**
883
     * Return's the repository to load the stock items with.
884
     *
885
     * @return \TechDivision\Import\Product\Repositories\StockItemRepository The repository instance
886
     */
887
    public function getStockItemRepository()
888
    {
889
        return $this->stockItemRepository;
890
    }
891
892
    /**
893
     * Return's the category product relations for the product with the passed SKU.
894
     *
895
     * @param string $sku The product SKU to load the category relations for
896
     *
897
     * @return array The category product relations for the product with the passed SKU
898
     */
899
    public function getCategoryProductsBySku($sku)
900
    {
901
        return $this->getCategoryProductRepository()->findAllBySku($sku);
902
    }
903
904
    /**
905
     * Load's and return's the EAV attribute option value with the passed code, store ID and value.
906
     *
907
     * @param string  $attributeCode The code of the EAV attribute option to load
908
     * @param integer $storeId       The store ID of the attribute option to load
909
     * @param string  $value         The value of the attribute option to load
910
     *
911
     * @return array The EAV attribute option value
912
     */
913
    public function loadEavAttributeOptionValueByAttributeCodeAndStoreIdAndValue($attributeCode, $storeId, $value)
914
    {
915
        return $this->getEavAttributeOptionValueRepository()->findOneByAttributeCodeAndStoreIdAndValue($attributeCode, $storeId, $value);
916
    }
917
918
    /**
919
     * Load's and return's the product with the passed SKU.
920
     *
921
     * @param string $sku The SKU of the product to load
922
     *
923
     * @return array The product
924
     */
925
    public function loadProduct($sku)
926
    {
927
        return $this->getProductRepository()->findOneBySku($sku);
928
    }
929
930
    /**
931
     * Load's and return's the product website relation with the passed product and website ID.
932
     *
933
     * @param string $productId The product ID of the relation
934
     * @param string $websiteId The website ID of the relation
935
     *
936
     * @return array The product website
937
     */
938
    public function loadProductWebsite($productId, $websiteId)
939
    {
940
        return $this->getProductWebsiteRepository()->findOneByProductIdAndWebsite($productId, $websiteId);
941
    }
942
943
    /**
944
     * Return's the category product relation with the passed category/product ID.
945
     *
946
     * @param integer $categoryId The category ID of the category product relation to return
947
     * @param integer $productId  The product ID of the category product relation to return
948
     *
949
     * @return array The category product relation
950
     */
951
    public function loadCategoryProduct($categoryId, $productId)
952
    {
953
        return $this->getCategoryProductRepository()->findOneByCategoryIdAndProductId($categoryId, $productId);
954
    }
955
956
    /**
957
     * Load's and return's the stock status with the passed product/website/stock ID.
958
     *
959
     * @param integer $productId The product ID of the stock status to load
960
     * @param integer $websiteId The website ID of the stock status to load
961
     * @param integer $stockId   The stock ID of the stock status to load
962
     *
963
     * @return array The stock status
964
     */
965
    public function loadStockStatus($productId, $websiteId, $stockId)
966
    {
967
        return $this->getStockStatusRepository()->findOneByProductIdAndWebsiteIdAndStockId($productId, $websiteId, $stockId);
968
    }
969
970
    /**
971
     * Load's and return's the stock status with the passed product/website/stock ID.
972
     *
973
     * @param integer $productId The product ID of the stock item to load
974
     * @param integer $websiteId The website ID of the stock item to load
975
     * @param integer $stockId   The stock ID of the stock item to load
976
     *
977
     * @return array The stock item
978
     */
979
    public function loadStockItem($productId, $websiteId, $stockId)
980
    {
981
        return $this->getStockItemRepository()->findOneByProductIdAndWebsiteIdAndStockId($productId, $websiteId, $stockId);
982
    }
983
984
    /**
985
     * Load's and return's the datetime attribute with the passed entity/attribute/store ID.
986
     *
987
     * @param integer $entityId    The entity ID of the attribute
988
     * @param integer $attributeId The attribute ID of the attribute
989
     * @param integer $storeId     The store ID of the attribute
990
     *
991
     * @return array|null The datetime attribute
992
     */
993
    public function loadProductDatetimeAttribute($entityId, $attributeId, $storeId)
994
    {
995
        return  $this->getProductDatetimeRepository()->findOneByEntityIdAndAttributeIdAndStoreId($entityId, $attributeId, $storeId);
996
    }
997
998
    /**
999
     * Load's and return's the decimal attribute with the passed entity/attribute/store ID.
1000
     *
1001
     * @param integer $entityId    The entity ID of the attribute
1002
     * @param integer $attributeId The attribute ID of the attribute
1003
     * @param integer $storeId     The store ID of the attribute
1004
     *
1005
     * @return array|null The decimal attribute
1006
     */
1007
    public function loadProductDecimalAttribute($entityId, $attributeId, $storeId)
1008
    {
1009
        return  $this->getProductDecimalRepository()->findOneByEntityIdAndAttributeIdAndStoreId($entityId, $attributeId, $storeId);
1010
    }
1011
1012
    /**
1013
     * Load's and return's the integer attribute with the passed entity/attribute/store ID.
1014
     *
1015
     * @param integer $entityId    The entity ID of the attribute
1016
     * @param integer $attributeId The attribute ID of the attribute
1017
     * @param integer $storeId     The store ID of the attribute
1018
     *
1019
     * @return array|null The integer attribute
1020
     */
1021
    public function loadProductIntAttribute($entityId, $attributeId, $storeId)
1022
    {
1023
        return $this->getProductIntRepository()->findOneByEntityIdAndAttributeIdAndStoreId($entityId, $attributeId, $storeId);
1024
    }
1025
1026
    /**
1027
     * Load's and return's the text attribute with the passed entity/attribute/store ID.
1028
     *
1029
     * @param integer $entityId    The entity ID of the attribute
1030
     * @param integer $attributeId The attribute ID of the attribute
1031
     * @param integer $storeId     The store ID of the attribute
1032
     *
1033
     * @return array|null The text attribute
1034
     */
1035
    public function loadProductTextAttribute($entityId, $attributeId, $storeId)
1036
    {
1037
        return $this->getProductTextRepository()->findOneByEntityIdAndAttributeIdAndStoreId($entityId, $attributeId, $storeId);
1038
    }
1039
1040
    /**
1041
     * Load's and return's the varchar attribute with the passed entity/attribute/store ID.
1042
     *
1043
     * @param integer $entityId    The entity ID of the attribute
1044
     * @param integer $attributeId The attribute ID of the attribute
1045
     * @param integer $storeId     The store ID of the attribute
1046
     *
1047
     * @return array|null The varchar attribute
1048
     */
1049
    public function loadProductVarcharAttribute($entityId, $attributeId, $storeId)
1050
    {
1051
        return $this->getProductVarcharRepository()->findOneByEntityIdAndAttributeIdAndStoreId($entityId, $attributeId, $storeId);
1052
    }
1053
1054
    /**
1055
     * Load's and return's the varchar attribute with the passed params.
1056
     *
1057
     * @param integer $attributeCode The attribute code of the varchar attribute
1058
     * @param integer $entityTypeId  The entity type ID of the varchar attribute
1059
     * @param integer $storeId       The store ID of the varchar attribute
1060
     * @param string  $value         The value of the varchar attribute
1061
     *
1062
     * @return array|null The varchar attribute
1063
     */
1064
    public function loadProductVarcharAttributeByAttributeCodeAndEntityTypeIdAndStoreIdAndValue($attributeCode, $entityTypeId, $storeId, $value)
1065
    {
1066
        return $this->getProductVarcharRepository()->findOneByAttributeCodeAndEntityTypeIdAndStoreIdAndValue($attributeCode, $entityTypeId, $storeId, $value);
1067
    }
1068
1069
    /**
1070
     * Persist's the passed product data and return's the ID.
1071
     *
1072
     * @param array       $product The product data to persist
1073
     * @param string|null $name    The name of the prepared statement that has to be executed
1074
     *
1075
     * @return string The ID of the persisted entity
1076
     */
1077
    public function persistProduct($product, $name = null)
1078
    {
1079
        return $this->getProductAction()->persist($product, $name);
0 ignored issues
show
Unused Code introduced by
The call to ProductAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1080
    }
1081
1082
    /**
1083
     * Persist's the passed product varchar attribute.
1084
     *
1085
     * @param array       $attribute The attribute to persist
1086
     * @param string|null $name      The name of the prepared statement that has to be executed
1087
     *
1088
     * @return void
1089
     */
1090
    public function persistProductVarcharAttribute($attribute, $name = null)
1091
    {
1092
        $this->getProductVarcharAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to ProductVarcharAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1093
    }
1094
1095
    /**
1096
     * Persist's the passed product integer attribute.
1097
     *
1098
     * @param array       $attribute The attribute to persist
1099
     * @param string|null $name      The name of the prepared statement that has to be executed
1100
     *
1101
     * @return void
1102
     */
1103
    public function persistProductIntAttribute($attribute, $name = null)
1104
    {
1105
        $this->getProductIntAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to ProductIntAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1106
    }
1107
1108
    /**
1109
     * Persist's the passed product decimal attribute.
1110
     *
1111
     * @param array       $attribute The attribute to persist
1112
     * @param string|null $name      The name of the prepared statement that has to be executed
1113
     *
1114
     * @return void
1115
     */
1116
    public function persistProductDecimalAttribute($attribute, $name = null)
1117
    {
1118
        $this->getProductDecimalAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to ProductDecimalAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1119
    }
1120
1121
    /**
1122
     * Persist's the passed product datetime attribute.
1123
     *
1124
     * @param array       $attribute The attribute to persist
1125
     * @param string|null $name      The name of the prepared statement that has to be executed
1126
     *
1127
     * @return void
1128
     */
1129
    public function persistProductDatetimeAttribute($attribute, $name = null)
1130
    {
1131
        $this->getProductDatetimeAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to ProductDatetimeAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1132
    }
1133
1134
    /**
1135
     * Persist's the passed product text attribute.
1136
     *
1137
     * @param array       $attribute The attribute to persist
1138
     * @param string|null $name      The name of the prepared statement that has to be executed
1139
     *
1140
     * @return void
1141
     */
1142
    public function persistProductTextAttribute($attribute, $name = null)
1143
    {
1144
        $this->getProductTextAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to ProductTextAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1145
    }
1146
1147
    /**
1148
     * Persist's the passed product website data and return's the ID.
1149
     *
1150
     * @param array       $productWebsite The product website data to persist
1151
     * @param string|null $name           The name of the prepared statement that has to be executed
1152
     *
1153
     * @return void
1154
     */
1155
    public function persistProductWebsite($productWebsite, $name = null)
1156
    {
1157
        $this->getProductWebsiteAction()->persist($productWebsite, $name);
0 ignored issues
show
Unused Code introduced by
The call to ProductWebsiteAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1158
    }
1159
1160
    /**
1161
     * Persist's the passed category product relation.
1162
     *
1163
     * @param array       $categoryProduct The category product relation to persist
1164
     * @param string|null $name            The name of the prepared statement that has to be executed
1165
     *
1166
     * @return void
1167
     */
1168
    public function persistCategoryProduct($categoryProduct, $name = null)
1169
    {
1170
        $this->getCategoryProductAction()->persist($categoryProduct, $name);
0 ignored issues
show
Unused Code introduced by
The call to CategoryProductAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1171
    }
1172
1173
    /**
1174
     * Persist's the passed stock item data and return's the ID.
1175
     *
1176
     * @param array       $stockItem The stock item data to persist
1177
     * @param string|null $name      The name of the prepared statement that has to be executed
1178
     *
1179
     * @return void
1180
     */
1181
    public function persistStockItem($stockItem, $name = null)
1182
    {
1183
        $this->getStockItemAction()->persist($stockItem, $name);
0 ignored issues
show
Unused Code introduced by
The call to StockItemAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1184
    }
1185
1186
    /**
1187
     * Persist's the passed stock status data and return's the ID.
1188
     *
1189
     * @param array       $stockStatus The stock status data to persist
1190
     * @param string|null $name        The name of the prepared statement that has to be executed
1191
     *
1192
     * @return void
1193
     */
1194
    public function persistStockStatus($stockStatus, $name = null)
1195
    {
1196
        $this->getStockStatusAction()->persist($stockStatus, $name);
0 ignored issues
show
Unused Code introduced by
The call to StockStatusAction::persist() has too many arguments starting with $name.

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
1197
    }
1198
1199
    /**
1200
     * Delete's the entity with the passed attributes.
1201
     *
1202
     * @param array       $row  The attributes of the entity to delete
1203
     * @param string|null $name The name of the prepared statement that has to be executed
1204
     *
1205
     * @return void
1206
     */
1207
    public function deleteProduct($row, $name = null)
1208
    {
1209
        $this->getProductAction()->delete($row, $name);
1210
    }
1211
1212
    /**
1213
     * Delete's the URL rewrite with the passed attributes.
1214
     *
1215
     * @param array       $row  The attributes of the entity to delete
1216
     * @param string|null $name The name of the prepared statement that has to be executed
1217
     *
1218
     * @return void
1219
     */
1220
    public function deleteUrlRewrite($row, $name = null)
1221
    {
1222
        $this->getUrlRewriteAction()->delete($row, $name);
1223
    }
1224
1225
    /**
1226
     * Delete's the stock item(s) with the passed attributes.
1227
     *
1228
     * @param array       $row  The attributes of the entity to delete
1229
     * @param string|null $name The name of the prepared statement that has to be executed
1230
     *
1231
     * @return void
1232
     */
1233
    public function deleteStockItem($row, $name = null)
1234
    {
1235
        $this->getStockItemAction()->delete($row, $name);
1236
    }
1237
1238
    /**
1239
     * Delete's the stock status with the passed attributes.
1240
     *
1241
     * @param array       $row  The attributes of the entity to delete
1242
     * @param string|null $name The name of the prepared statement that has to be executed
1243
     *
1244
     * @return void
1245
     */
1246
    public function deleteStockStatus($row, $name = null)
1247
    {
1248
        $this->getStockStatusAction()->delete($row, $name);
1249
    }
1250
1251
    /**
1252
     * Delete's the product website relations with the passed attributes.
1253
     *
1254
     * @param array       $row  The attributes of the entity to delete
1255
     * @param string|null $name The name of the prepared statement that has to be executed
1256
     *
1257
     * @return void
1258
     */
1259
    public function deleteProductWebsite($row, $name = null)
1260
    {
1261
        $this->getProductWebsiteAction()->delete($row, $name);
1262
    }
1263
1264
    /**
1265
     * Delete's the category product relations with the passed attributes.
1266
     *
1267
     * @param array       $row  The attributes of the entity to delete
1268
     * @param string|null $name The name of the prepared statement that has to be executed
1269
     *
1270
     * @return void
1271
     */
1272
    public function deleteCategoryProduct($row, $name = null)
1273
    {
1274
        $this->getCategoryProductAction()->delete($row, $name);
1275
    }
1276
1277
    /**
1278
     * Delete's the product datetime attribute with the passed attributes.
1279
     *
1280
     * @param array       $row  The attributes of the entity to delete
1281
     * @param string|null $name The name of the prepared statement that has to be executed
1282
     *
1283
     * @return void
1284
     */
1285
    public function deleteProductDatetimeAttribute($row, $name = null)
1286
    {
1287
        $this->getProductDatetimeAction()->delete($row, $name);
1288
    }
1289
1290
    /**
1291
     * Delete's the product decimal attribute with the passed attributes.
1292
     *
1293
     * @param array       $row  The attributes of the entity to delete
1294
     * @param string|null $name The name of the prepared statement that has to be executed
1295
     *
1296
     * @return void
1297
     */
1298
    public function deleteProductDecimalAttribute($row, $name = null)
1299
    {
1300
        $this->getProductDecimalAction()->delete($row, $name);
1301
    }
1302
1303
    /**
1304
     * Delete's the product integer attribute with the passed attributes.
1305
     *
1306
     * @param array       $row  The attributes of the entity to delete
1307
     * @param string|null $name The name of the prepared statement that has to be executed
1308
     *
1309
     * @return void
1310
     */
1311
    public function deleteProductIntAttribute($row, $name = null)
1312
    {
1313
        $this->getProductIntAction()->delete($row, $name);
1314
    }
1315
1316
    /**
1317
     * Delete's the product text attribute with the passed attributes.
1318
     *
1319
     * @param array       $row  The attributes of the entity to delete
1320
     * @param string|null $name The name of the prepared statement that has to be executed
1321
     *
1322
     * @return void
1323
     */
1324
    public function deleteProductTextAttribute($row, $name = null)
1325
    {
1326
        $this->getProductTextAction()->delete($row, $name);
1327
    }
1328
1329
    /**
1330
     * Delete's the product varchar attribute with the passed attributes.
1331
     *
1332
     * @param array       $row  The attributes of the entity to delete
1333
     * @param string|null $name The name of the prepared statement that has to be executed
1334
     *
1335
     * @return void
1336
     */
1337
    public function deleteProductVarcharAttribute($row, $name = null)
1338
    {
1339
        $this->getProductVarcharAction()->delete($row, $name);
1340
    }
1341
}
1342