本文整理汇总了PHP中Magento\Catalog\Model\Product::addCustomOption方法的典型用法代码示例。如果您正苦于以下问题:PHP Product::addCustomOption方法的具体用法?PHP Product::addCustomOption怎么用?PHP Product::addCustomOption使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Catalog\Model\Product
的用法示例。
在下文中一共展示了Product::addCustomOption方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testGetSelectedAttributesInfoForStore
/**
* @magentoAppIsolation enabled
*/
public function testGetSelectedAttributesInfoForStore()
{
$attributes = $this->_model->getConfigurableAttributesAsArray($this->_product);
$attribute = reset($attributes);
$optionValueId = $attribute['values'][0]['value_index'];
$this->_product->addCustomOption('attributes', serialize([$attribute['attribute_id'] => $optionValueId]));
$configurableAttr = $this->_model->getConfigurableAttributes($this->_product);
$attribute = $configurableAttr->getFirstItem();
$attribute->getProductAttribute()->setStoreLabel('store label');
$info = $this->_model->getSelectedAttributesInfo($this->_product);
$this->assertEquals([['label' => 'store label', 'value' => 'Option 1']], $info);
}
示例2: testReset
/**
* @magentoAppArea frontend
*/
public function testReset()
{
$model = $this->_model;
$this->_assertEmpty($model);
$this->_model->setData('key', 'value');
$this->_model->reset();
$this->_assertEmpty($model);
$this->_model->setOrigData('key', 'value');
$this->_model->reset();
$this->_assertEmpty($model);
$this->_model->addCustomOption('key', 'value');
$this->_model->reset();
$this->_assertEmpty($model);
$this->_model->canAffectOptions(true);
$this->_model->reset();
$this->_assertEmpty($model);
}
示例3: testCustomOptionsApi
/**
* @covers \Magento\Catalog\Model\Product::addCustomOption
* @covers \Magento\Catalog\Model\Product::setCustomOptions
* @covers \Magento\Catalog\Model\Product::getCustomOptions
* @covers \Magento\Catalog\Model\Product::getCustomOption
* @covers \Magento\Catalog\Model\Product::hasCustomOptions
*/
public function testCustomOptionsApi()
{
$this->assertEquals([], $this->_model->getCustomOptions());
$this->assertFalse($this->_model->hasCustomOptions());
$this->_model->setId(99);
$this->_model->addCustomOption('one', 'value1');
$option = $this->_model->getCustomOption('one');
$this->assertInstanceOf('Magento\\Framework\\DataObject', $option);
$this->assertEquals($this->_model->getId(), $option->getProductId());
$this->assertSame($option->getProduct(), $this->_model);
$this->assertEquals('one', $option->getCode());
$this->assertEquals('value1', $option->getValue());
$this->assertEquals(['one' => $option], $this->_model->getCustomOptions());
$this->assertTrue($this->_model->hasCustomOptions());
$this->_model->setCustomOptions(['test']);
$this->assertTrue(is_array($this->_model->getCustomOptions()));
}
示例4: testReset
/**
* @magentoAppArea frontend
*/
public function testReset()
{
$model = $this->_model;
$this->_assertEmpty($model);
$this->_model->setData('key', 'value');
$this->_model->reset();
$this->_assertEmpty($model);
$this->_model->setOrigData('key', 'value');
$this->_model->reset();
$this->_assertEmpty($model);
$this->_model->addCustomOption('key', 'value');
$this->_model->reset();
$this->_assertEmpty($model);
$this->_model->addOption(\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product\\Option'));
$this->_model->reset();
$this->_assertEmpty($model);
$this->_model->canAffectOptions(true);
$this->_model->reset();
$this->_assertEmpty($model);
}
示例5: addCustomOption
/**
* {@inheritdoc}
*/
public function addCustomOption($code, $value, $product = null)
{
$pluginInfo = $this->pluginList->getNext($this->subjectType, 'addCustomOption');
if (!$pluginInfo) {
return parent::addCustomOption($code, $value, $product);
} else {
return $this->___callPlugins('addCustomOption', func_get_args(), $pluginInfo);
}
}