java 设置百分比随机,我想修改自定义选项百分比功能

首先,让我试着改写你的问题:

在每个自定义选项步骤中,如何根据前面步骤中的价格计算百分比,而不是基于产品基本价格?换句话说,你如何让Magento积累自定义期权价格而不是总结它们?

示例产品:

基本价格:0美元

尺码A:20美元

颜色X:10%

Magento的计算:基本价格的10%0 = 0.总价格20 .

期望的计算:基价和尺寸价格的10%= 20的10% . 总价22 .

Solution

要做到这一点,你必须覆盖Magento的自定义选项定价逻辑 . 必须在价格模型(用于服务器端计算)以及块和模板代码(用于客户端Javascript计算)中进行更改 .

在价格模型 Mage_Catalog_Model_Product_Type_Price 中,更改函数 _applyOptionsPrice 中的计算:

//$finalPrice += $group->getOptionPrice($quoteItemOption->getValue(), $basePrice);

$finalPrice += $group->getOptionPrice($quoteItemOption->getValue(), $finalPrice);

在 Mage_Catalog_Block_Product_View_Options 中,函数 getJsonConfig 在将其返回到模板之前计算基本价格的百分比 . 更改此项以获取返回到模板的实际百分比值:

//$_tmpPriceValues[$value->getId()] = Mage::helper('core')->currency($value->getPrice(true), false, false);

// Add fixed price or percentage (don't calculate percentage yet, done by JS live instead)

$_tmpPriceValues[$value->getId()]['pricing_value'] = ($value->getPriceType() != 'percent') ? Mage::helper('core')->currency($value->getPrice(true), false, false) : $value->getPrice();

$_tmpPriceValues[$value->getId()]['is_percentage'] = ($value->getPriceType() == 'percent');

现在修改 template/catalog/product/view/options.phtml 中的Javascript以累计计算即时百分比 . 在Javascript类 Product.Options 中,添加一个计算函数:

getPriceToAdd : function(optionvalue, oldprice) {

var value = parseFloat(optionvalue['pricing_value']);

if (optionvalue['is_percentage']) {

return Math.round(value*oldprice)/100;

} else {

return value;

}

}

并更改 reloadPrice 函数以使用新计算:

//price += parseFloat(config[optionId][element.getValue()]);

price += opConfig.getPriceToAdd(config[optionId][element.getValue()], price);

...

//price += parseFloat(this.config[optionId]);

price += opConfig.getPriceToAdd(this.config[optionId], price);

...

//price += parseFloat(this.config[optionId][selectOption.value]);

price += opConfig.getPriceToAdd(this.config[optionId][selectOption.value], price);

...

//price += parseFloat(this.config[optionId]);

price += opConfig.getPriceToAdd(this.config[optionId], price);

像往常一样,不要直接编辑核心文件 . 使用本地重写 . 请注意,您的新价格模型必须在每个相关产品类型的配置中声明:

mymodule/product_type_simple_price

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Excel单元格格式设置百分比,你可以使用Java中的Apache POI库。 下面是一个简单的示例代码,演示如何将单元格格式设置百分比并将数据写入Excel文件: ```java import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFColor; import org.apache.poi.xssf.usermodel.XSSFDataFormat; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelWriter { public static void main(String[] args) throws IOException { // 创建工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); // 创建工作表 XSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建样式 XSSFCellStyle style = workbook.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); style.setDataFormat(workbook.createDataFormat().getFormat("0.00%")); style.setFillForegroundColor(new XSSFColor(new java.awt.Color(217, 217, 217))); style.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(XSSFCellStyle.BORDER_THIN); style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); style.setBorderLeft(XSSFCellStyle.BORDER_THIN); style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); style.setBorderRight(XSSFCellStyle.BORDER_THIN); style.setRightBorderColor(IndexedColors.BLACK.getIndex()); style.setBorderTop(XSSFCellStyle.BORDER_THIN); style.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 创建行 XSSFRow row = sheet.createRow(0); // 创建单元格并设置值及样式 row.createCell(0, CellType.NUMERIC).setCellValue(0.1234); row.getCell(0).setCellStyle(style); // 写入到文件 FileOutputStream out = new FileOutputStream("output.xlsx"); workbook.write(out); out.close(); System.out.println("Excel文件生成成功!"); } } ``` 在上面的示例代码中,我们使用`XSSFCellStyle`类创建样式,并使用`XSSFDataFormat`类创建百分比格式。然后,我们将样式应用于单元格。最后,我们将工作簿写入文件。 如果您需要导出更复杂的Excel文件,可以使用POI库提供的其他功能,如创建合并单元格、设置字体、设置对齐方式等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值