を見つけました。私は 'sort_order'と呼ばれる単純な製品の新しい属性を追加しました。そして、私はカタログ/製品のヘルパーをオーバーライドし、次のメソッドを追加しました:
public function getSortedSimpleProducts($product) {
$products = array();
$allProducts = $product->getTypeInstance(true)->getUsedProducts(null, $product);
foreach ($allProducts as $product) {
if ($product->isSaleable()) {
$products[] = $product;
}
}
$sorted_products = array();
$unsorted_products = array();
foreach ($products as $simple_product) {
$sort_order = $simple_product->getData('sort_order');
if ($sort_order) {
$sorted_products[$sort_order] = $simple_product;
}
else {
$unsorted_products[] = $simple_product;
}
}
$final_products = $sorted_products;
if (count($unsorted_products) > 0) {
$final_products = array_merge($sorted_products, $unsorted_products);
}
if (count($final_products) > 0) {
sort($final_products);
}
return $final_products;
}
そして、この線を中心list.phtmlテンプレート、中:
:
<?php $i=0; foreach ($_productCollection as $_product): ?>
私は、次のコードを追加しました
$image_product = $_product;
$products = $this->helper('catalog/product')->getSortedSimpleProducts($_product);
if (count($products) > 0) {
$image_product = $products[0];
}
と更新私のイメージタグ:
<img src="<?php echo $this->helper('catalog/image')->init($image_product, 'small_image')->resize(189,238); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
、私は(ビュー・ページ上の色の分類を決定する)新しいソート順でソートgetAllowProductsを作るためにMage_Catalog_Block_Product_View_Type_Configurableをオーバーライド:
public function getAllowProducts() {
if (!$this->hasAllowProducts()) {
$products = array();
$allProducts = Mage::helper('catalog/product')->getSortedSimpleProducts($this->getProduct());
foreach ($allProducts as $product) {
if ($product->isSaleable()) {
$products[] = $product;
}
}
$this->setAllowProducts($products);
}
return $this->getData('allow_products');
}
、その後media.phtmlファイル更新:
を
$childProducts = $this->helper('catalog/product')->getSortedSimpleProducts($_product);
このように、製品イメージでも同じ種類が使用されます。
私は、これがパフォーマンスに大きな影響を与えないことを望んでいます(これが主要な要件であることがクライアントから分かりました)。クライアントがシンプルな製品のソート順を設定しない場合は、うまく機能しません。在庫がなくなると、ソート順に次の画像が表示されます。
批評は歓迎されるでしょう!