本文整理匯總了PHP中Mtf\Fixture\FixtureInterface::getCustomOptions方法的典型用法代碼示例。如果您正苦於以下問題:PHP FixtureInterface::getCustomOptions方法的具體用法?PHP FixtureInterface::getCustomOptions怎麽用?PHP FixtureInterface::getCustomOptions使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Mtf\Fixture\FixtureInterface
的用法示例。
在下文中一共展示了FixtureInterface::getCustomOptions方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: assertOnShoppingCart
/**
* Assert prices on the shopping cart
*
* @param FixtureInterface $product
* @param CheckoutCart $checkoutCart
* @return void
*/
protected function assertOnShoppingCart(FixtureInterface $product, CheckoutCart $checkoutCart)
{
$customOptions = $product->getCustomOptions();
$checkoutData = $product->getCheckoutData();
$checkoutCustomOptions = isset($checkoutData['custom_options']) ? $checkoutData['custom_options'] : [];
$fixturePrice = $product->getPrice();
$groupPrice = $product->getGroupPrice();
$specialPrice = $product->getSpecialPrice();
$cartItem = $checkoutCart->getCartBlock()->getCartItem($product);
$formPrice = $cartItem->getPrice();
if ($groupPrice) {
$groupPrice = reset($groupPrice);
$fixturePrice = $groupPrice['price'];
}
if ($specialPrice) {
$fixturePrice = $specialPrice;
}
$fixtureActualPrice = $fixturePrice;
foreach ($checkoutCustomOptions as $checkoutOption) {
$attributeKey = $checkoutOption['title'];
$optionKey = $checkoutOption['value'];
$option = $customOptions[$attributeKey]['options'][$optionKey];
if ('Fixed' == $option['price_type']) {
$fixtureActualPrice += $option['price'];
} else {
$fixtureActualPrice += $fixturePrice / 100 * $option['price'];
}
}
\PHPUnit_Framework_Assert::assertEquals(number_format($fixtureActualPrice, 2), $formPrice, 'Product price in shopping cart is not correct.');
}
示例2: assertOnShoppingCart
/**
* Assert prices on the shopping cart
*
* @param FixtureInterface $product
* @param CheckoutCart $checkoutCart
* @return void
*/
protected function assertOnShoppingCart(FixtureInterface $product, CheckoutCart $checkoutCart)
{
$cartBlock = $checkoutCart->getCartBlock();
$productName = $product->getName();
$productOptions = $product->getCustomOptions();
$priceComparing = $product->getPrice();
if ($groupPrice = $product->getGroupPrice()) {
$groupPrice = reset($groupPrice);
$priceComparing = $groupPrice['price'];
}
if ($specialPrice = $product->getSpecialPrice()) {
$priceComparing = $specialPrice;
}
if (!empty($productOptions)) {
$productOption = reset($productOptions);
$optionsData = reset($productOption['options']);
$optionName = $cartBlock->getCartItemOptionsNameByProductName($productName);
$optionValue = $cartBlock->getCartItemOptionsValueByProductName($productName);
\PHPUnit_Framework_Assert::assertTrue(trim($optionName) === $productOption['title'] && trim($optionValue) === $optionsData['title'], 'In the cart wrong option product.');
if ($optionsData['price_type'] === 'Percent') {
$priceComparing = $priceComparing * (1 + $optionsData['price'] / 100);
} else {
$priceComparing += $optionsData['price'];
}
}
$price = $checkoutCart->getCartBlock()->getProductPriceByName($productName);
\PHPUnit_Framework_Assert::assertEquals(number_format($priceComparing, 2), $price, 'Product price in shopping cart is not correct.');
}
示例3: processAssert
/**
* Assertion that commodity options are displayed correctly
*
* @param CatalogProductView $catalogProductView
* @param FixtureInterface $product
* @return void
*/
public function processAssert(CatalogProductView $catalogProductView, FixtureInterface $product)
{
$this->product = $product;
// TODO fix initialization url for frontend page
// Open product view page
$catalogProductView->init($this->product);
$catalogProductView->open();
// Prepare data
$customOptions = $catalogProductView->getCustomOptionsBlock()->getOptions();
foreach ($customOptions as &$option) {
unset($option['value']);
}
unset($option);
$compareOptions = $this->prepareOptionArray($this->product->getCustomOptions());
$customOptions = $this->dataSortByKey($customOptions);
$compareOptions = $this->dataSortByKey($compareOptions);
\PHPUnit_Framework_Assert::assertEquals($customOptions, $compareOptions, 'Incorrect display of custom product options on the product page.');
}
示例4: __construct
/**
* @constructor
* @param FixtureInterface $product
*/
public function __construct(FixtureInterface $product)
{
/** @var CatalogProductSimple $product */
$checkoutData = $product->getCheckoutData();
$cartItem = isset($checkoutData['cartItem']) ? $checkoutData['cartItem'] : [];
$customOptions = $product->hasData('custom_options') ? $product->getCustomOptions() : [];
$checkoutCustomOptions = isset($checkoutData['options']['custom_options']) ? $checkoutData['options']['custom_options'] : [];
foreach ($checkoutCustomOptions as $key => $checkoutCustomOption) {
$attribute = str_replace('attribute_key_', '', $checkoutCustomOption['title']);
$option = str_replace('option_key_', '', $checkoutCustomOption['value']);
$checkoutCustomOptions[$key] = ['title' => isset($customOptions[$attribute]['title']) ? $customOptions[$attribute]['title'] : $attribute, 'value' => isset($customOptions[$attribute]['options'][$option]['title']) ? $customOptions[$attribute]['options'][$option]['title'] : $option];
}
$cartItem['options'] = isset($cartItem['options']) ? $cartItem['options'] + $checkoutCustomOptions : $checkoutCustomOptions;
$this->data = $cartItem;
}