本文整理匯總了PHP中Magento\Quote\Model\Quote\Item::addOption方法的典型用法代碼示例。如果您正苦於以下問題:PHP Item::addOption方法的具體用法?PHP Item::addOption怎麽用?PHP Item::addOption使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Magento\Quote\Model\Quote\Item
的用法示例。
在下文中一共展示了Item::addOption方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: testGetBuyRequestOptionByCode
public function testGetBuyRequestOptionByCode()
{
$optionCode = "info_buyRequest";
$buyRequestQuantity = 23;
$optionMock = $this->getMockBuilder('Magento\\Quote\\Model\\Quote\\Item\\Option')->setMethods(['setItem', 'getCode', '__wakeup', 'getValue'])->disableOriginalConstructor()->getMock();
$optionMock->expects($this->once())->method('setItem')->with($this->model)->will($this->returnValue($optionMock));
$optionMock->expects($this->exactly(3))->method('getCode')->will($this->returnValue($optionCode));
$optionMock->expects($this->once())->method('getValue')->will($this->returnValue(serialize(['qty' => $buyRequestQuantity])));
$this->model->addOption($optionMock);
$quantity = 12;
$this->localeFormat->expects($this->at(0))->method('getNumber')->with($quantity)->will($this->returnValue($quantity));
$this->model->setQty($quantity);
$this->assertEquals($quantity, $this->model->getQty());
$buyRequest = $this->model->getBuyRequest();
$this->assertEquals($buyRequestQuantity, $buyRequest->getOriginalQty());
$this->assertEquals($quantity, $buyRequest->getQty());
}
示例2: _assignOptionsToItem
/**
* Assign options to item
*
* @param \Magento\Quote\Model\Quote\Item $item
* @param array $options
* @return $this
*/
protected function _assignOptionsToItem(\Magento\Quote\Model\Quote\Item $item, $options)
{
$optionIds = $item->getOptionByCode('option_ids');
if ($optionIds) {
foreach (explode(',', $optionIds->getValue()) as $optionId) {
$item->removeOption('option_' . $optionId);
}
$item->removeOption('option_ids');
}
if ($item->getOptionByCode('additional_options')) {
$item->removeOption('additional_options');
}
$item->save();
if (!empty($options['options'])) {
$item->addOption(new \Magento\Framework\DataObject(['product' => $item->getProduct(), 'code' => 'option_ids', 'value' => implode(',', array_keys($options['options']))]));
foreach ($options['options'] as $optionId => $optionValue) {
$item->addOption(new \Magento\Framework\DataObject(['product' => $item->getProduct(), 'code' => 'option_' . $optionId, 'value' => $optionValue]));
}
}
if (!empty($options['additional_options'])) {
$item->addOption(new \Magento\Framework\DataObject(['product' => $item->getProduct(), 'code' => 'additional_options', 'value' => serialize($options['additional_options'])]));
}
return $this;
}
示例3: unsetCustomPrice
/**
* Unset custom_price data for quote item
*
* @param Item $item
* @return void
*/
protected function unsetCustomPrice(Item $item)
{
/** @var \Magento\Framework\DataObject $infoBuyRequest */
$infoBuyRequest = $item->getBuyRequest();
if ($infoBuyRequest->hasData('custom_price')) {
$infoBuyRequest->unsetData('custom_price');
$infoBuyRequest->setValue(serialize($infoBuyRequest->getData()));
$infoBuyRequest->setCode('info_buyRequest');
$infoBuyRequest->setProduct($item->getProduct());
$item->addOption($infoBuyRequest);
}
$item->unsetData('custom_price');
$item->unsetData('original_custom_price');
}