forked from magento/magento2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathItem.php
70 lines (63 loc) · 1.79 KB
/
Item.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Wishlist\Model\ResourceModel;
/**
* Wishlist item model resource
*
* @api
* @since 100.0.2
*/
class Item extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
/**
* Initialize connection and define main table
*
* @return void
*/
protected function _construct()
{
$this->_init('wishlist_item', 'wishlist_item_id');
}
/**
* Load item by wishlist, product and shared stores
*
* @param \Magento\Wishlist\Model\Item $object
* @param int $wishlistId
* @param int $productId
* @param array $sharedStores
* @return $this
*/
public function loadByProductWishlist($object, $wishlistId, $productId, $sharedStores)
{
$connection = $this->getConnection();
$storeWhere = $connection->quoteInto('store_id IN (?)', $sharedStores);
$select = $connection->select()->from(
$this->getMainTable()
)->where(
'wishlist_id=:wishlist_id AND ' . 'product_id=:product_id AND ' . $storeWhere
);
$bind = ['wishlist_id' => $wishlistId, 'product_id' => $productId];
$data = $connection->fetchRow($select, $bind);
if ($data) {
$object->setData($data);
}
$this->_afterLoad($object);
return $this;
}
/**
* @inheritDoc
*/
public function save(\Magento\Framework\Model\AbstractModel $object)
{
$hasDataChanges = $object->hasDataChanges();
$object->setIsOptionsSaved(false);
$result = parent::save($object);
if ($hasDataChanges && !$object->isOptionsSaved()) {
$object->saveItemOptions();
}
return $result;
}
}