私は本当にmagentoで次のものが必要です。顧客が構成製品を表示し、色を選択すると、単純な製品の画像と説明が表示されます。私はすでにSCP製品を使用していますが、色とサイズの両方を選択する必要があります。そうしないと、画像が変更されません。さらに、このモジュールは、電子メールアイテムの外観とPDFの外観を変更します
誰かが別の解決策を知っていますか?
返信ありがとうございます。これを2つの問題に分けましょう。
問題1:
SCPを使用すると、メールやPDFのアイテムテーブルに色とサイズが表示されなくなります。そのため、配達のためにどの製品を入手する必要があるかを確認するのは簡単ではありません。
問題2:
実際、彼は、シンプルな製品の詳細を表示するために、ドロップダウン、サイズ、色の両方を変更する必要があります。これは色だけに変更する必要があります。これを機能させるためのコードを記載した投稿を見つけましたが、私には向いていません。
http://www.magentocommerce.com/boards/site.php/viewthread/30929/P0/
そこで、mysqlで見つけたattribIDを変更し、値colorをkleurproductであるcolorattributeに変更しました。
このコードを追加しました
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);
}
}
};