我真的需要magento中的以下内容。当客户显示配置产品并选择颜色时,简单的产品图像和描述应显示。我已经在使用 SCP 产品,但颜色和尺寸都需要选择,否则不会改变图片。此外,此模块更改了电子邮件项目的外观以及 pdf 的外观
有人知道不同的解决方案吗?
感谢您的回复,让我把它分成我遇到的2个问题。
问题1:
当我使用 SCP 时,他不再在我的电子邮件和 pdf 中的项目表上显示颜色和大小。因此,不再容易看到我需要抓取哪种产品进行交付。
问题2:
事实上,他需要更改下拉菜单、大小和颜色以显示简单的产品细节。这需要更改为仅颜色。我发现了一个帖子,上面写了一些代码来让它工作,但不适合我。
http://www.magentocommerce.com/boards/site.php/viewthread/30929/P0/
所以我改变了我通过mysql找到的attribID,并将值颜色更改为我的colorattribute,即kleurproduct
添加了此代码
Product.Config.prototype.reloadPrice = function() {
var childProductId = this.getMatchingSimpleProduct();
var childProducts = this.config.childProducts;
var attribID = 158;
var kleurproductDropdown = document.getElementById('attribute' + attribID);
var kleurproductSelectedIndex = kleurproductDropdown.selectedIndex;
var kleurproduct_value = kleurproductDropdown.options[kleurproductSelectedIndex].text;
//if the price ranges option is checked in the backend then a colon and the price is added to the dropdown
if (kleurproduct_value.indexOf(':') > -1) {
kleurproduct_value = kleurproduct_value.substr(0,kleurproduct_value.indexOf(':'));
}
var usingZoomer = false;
if(this.config.imageZoomer){
usingZoomer = true;
}
if (childProductId){
var price = childProducts[childProductId]["price"];
var finalPrice = childProducts[childProductId]["finalPrice"];
optionsPrice.productPrice = finalPrice;
optionsPrice.productOldPrice = price;
optionsPrice.reload();
optionsPrice.reloadPriceLabels(true);
optionsPrice.updateSpecialPriceDisplay(price, finalPrice);
this.updateProductShortDescription(childProductId);
this.updateProductDescription(childProductId);
this.updateProductName(childProductId);
this.updateProductAttributes(childProductId);
this.updateFormProductId(childProductId);
this.addParentProductIdToCartForm(this.config.productId);
this.showCustomOptionsBlock(childProductId, this.config.productId);
if (usingZoomer) {
this.showFullImageDiv(childProductId, this.config.productId);
}else{
this.updateProductImage(childProductId);
}
}
//added else if for when just a kleurproduct is selected
else if (kleurproduct_value) {
for (var product in childProducts) {
//find the kleurproduct attribute in the childProduct html
var colStartPos = childProducts[product].productAttributes.indexOf('<th class="label">kleurproduct</th>')
colStartPos = childProducts[product].productAttributes.indexOf('>', colStartPos + 28)
var colEndPos = childProducts[product].productAttributes.indexOf('</td>', colStartPos)
//check each child product for matching kleurproduct
if (childProducts[product].productAttributes.substr(colStartPos + 1, colEndPos - colStartPos - 1)==kleurproduct_value) {
childProductId = product;
var price = childProducts[childProductId]["price"];
var finalPrice = childProducts[childProductId]["finalPrice"];
optionsPrice.productPrice = finalPrice;
optionsPrice.productOldPrice = price;
optionsPrice.reload();
optionsPrice.reloadPriceLabels(true);
optionsPrice.updateSpecialPriceDisplay(price, finalPrice);
this.updateProductShortDescription(childProductId);
this.updateProductDescription(childProductId);
this.updateProductName(childProductId);
this.updateProductAttributes(childProductId);
this.updateFormProductId(childProductId);
this.addParentProductIdToCartForm(this.config.productId);
this.showCustomOptionsBlock(childProductId, this.config.productId);
if (usingZoomer) {
this.showFullImageDiv(childProductId, this.config.productId);
}else{
this.updateProductImage(childProductId);
}
//one product was found, exit the loop
break;
}
}
}
else {
var cheapestPid = this.getProductIdOfCheapestProductInScope("finalPrice");
//var mostExpensivePid = this.getProductIdOfMostExpensiveProductInScope("finalPrice");
var price = childProducts[cheapestPid]["price"];
var finalPrice = childProducts[cheapestPid]["finalPrice"];
optionsPrice.productPrice = finalPrice;
optionsPrice.productOldPrice = price;
optionsPrice.reload();
optionsPrice.reloadPriceLabels(false);
optionsPrice.updateSpecialPriceDisplay(price, finalPrice);
this.updateProductShortDescription(false);
this.updateProductDescription(false);
this.updateProductName(false);
this.updateProductAttributes(false);
this.showCustomOptionsBlock(false, false);
if (usingZoomer) {
this.showFullImageDiv(false, false);
}else{
this.updateProductImage(false);
}
}
};