26 private $metadataPool;
31 private $entityManager;
46 $this->validator = $validator;
48 $this->entityManager = $entityManager
59 $this->
_init(
'catalog_product_bundle_option',
'option_id');
69 $this->
getTable(
'catalog_product_bundle_selection'),
82 parent::_afterSave($object);
85 'option_id = ?' => $object->getId(),
86 'store_id = ? OR store_id = 0' => $object->getStoreId(),
87 'parent_product_id = ?' => $object->getParentId()
93 $data = new \Magento\Framework\DataObject();
94 $data->setOptionId($object->getId())
95 ->setStoreId($object->getStoreId())
96 ->setParentProductId($object->getParentId())
97 ->setTitle($object->getTitle());
104 if (0 !== (
int)$object->getStoreId()) {
105 $data->setStoreId(0)->setTitle($object->getDefaultTitle());
120 parent::_afterDelete($object);
124 $this->
getTable(
'catalog_product_bundle_option_value'),
126 'option_id = ?' => $object->getId(),
127 'parent_product_id = ?' => $object->getParentId()
146 'option_title_store.title IS NOT NULL',
147 'option_title_store.title',
148 'option_title_default.title' 151 $linkField = $this->getMetadataPool()->getMetadata(ProductInterface::class)->getLinkField();
158 [
'option_title_default' => $this->
getTable(
'catalog_product_bundle_option_value')],
159 'option_title_default.option_id = opt.option_id AND option_title_default.store_id = 0',
163 [
'option_title_store' => $this->
getTable(
'catalog_product_bundle_option_value')],
164 'option_title_store.option_id = opt.option_id AND option_title_store.store_id = :store_id',
168 [
'e' => $this->
getTable(
'catalog_product_entity')],
169 "e.$linkField = opt.parent_id",
173 'e.entity_id=:product_id' 187 return $this->validator;
194 private function getMetadataPool()
196 if (!$this->metadataPool) {
199 return $this->metadataPool;
205 public function save(\
Magento\Framework\Model\AbstractModel $object)
207 $this->entityManager->save($object);
removeOptionSelections($optionId)
_afterDelete(\Magento\Framework\Model\AbstractModel $object)
_init($mainTable, $idFieldName)
save(\Magento\Framework\Model\AbstractModel $object)
_afterSave(\Magento\Framework\Model\AbstractModel $object)
__construct(\Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Bundle\Model\Option\Validator $validator, $connectionName=null, EntityManager $entityManager=null)
getValidationRulesBeforeSave()
getSearchableData($productId, $storeId)