5

私は多くの異なる色とサイズで利用できる構成可能な製品を持っています。構成可能な製品をすべての色に1回表示したい。私の考えは、構成可能な製品の1つの単純な製品を、すべての色で構成可能な製品のカテゴリーに割り当てることです。次に、リストを変更して、(色付きの)単純な製品がそのマスター製品(構成可能な製品)にリンクするようにします。

もう1つの方法は、構成可能な製品をカテゴリに割り当ててから、異なる色で複数回リストすることです。しかし、これは複雑になると思います。

解決

心から私は自分のコードを失いました。しかし、これが私がそれを管理した方法です:

  1. visibilityすべてのスレーブ製品をcatalog製品リストに表示されるように設定します
  2. 製品モデルをオーバーライドすると、そのgetProductUrl関数は次のようになります。
    public function getProductUrl($useSid = null)
    {
    $product = $this;
    $product->loadParentProductIds();
        $parentIds = $product->getParentProductIds();

    if(count($parentIds) > 0 && $product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
    {
            $parent = Mage::getModel("catalog/product")->setId($parentIds[0])->load();
            return $this->getUrlModel()->getProductUrl($parent, $useSid);
    }

    return $this->getUrlModel()->getProductUrl($product, $useSid);
    }

このようにして、各スレーブ製品はそのマスター製品にリンクします。トリッキーな部分は、属性をURLに添付することです。URLに追加#attributecode1=value1&attributecode2=value2して、属性選択ボックスを事前に選択できます。私はこの部分を素早く汚くしただけで、誰かがこれをもっとうまくやれると確信しています。

事前選択の例:

http://demo.magentocommerce.com/anashria-womens-premier-leather-sandal-7.html http://demo.magentocommerce.com/anashria-womens-premier-leather-sandal-7.html#502=43

4

4 に答える 4

2

すべての色のサイズに基づいて構成可能な製品を作成しない理由がわかりませんか? そうすれば、Magento の仕組みをハックする必要はありません。

構成可能な製品の一部である単純な製品をフロントエンドに表示する場合、それが構成可能な製品の一部である場合、それは構成可能な製品にリンクしません (ご存じのとおり)。構成可能な製品がサイズと色に基づいている場合、単純な製品にはサイズと色が設定されるため、それはあなたにとっても意味がありません。

シャツの色ごとに構成可能な製品を作成するだけで、完全に機能し、ハックのない作業が完了します。次に、関連商品を使用して他のシャツの色を表示することもできます.

ハッキングが少ないほど良い。それが私の意見です。

于 2010-05-18T12:23:27.303 に答える
0

1つの方法は、カタログ番号(または製品に使用している一意の識別番号)のサイズと色の部分を作成することです。

たとえば、2色と3サイズのウィジェットがあり、そのカタログ番号は「qwe123」であるとします。次の2つの項目を、適切な画像とともにシステムに入力します。私はあなたがすでにサイズに対処する方法を持っていると思います。

qwe123-赤
qwe123-青

この方法で行うための追加のプログラミングはありませんが、製品ページから入手できる他の色にリンクする場合は、カタログ番号の最初の部分を解析して、一致する色を検索する必要があります。 。

于 2010-05-17T07:16:32.787 に答える
0

単純な製品を構成可能な親製品にリダイレクトするために、プラグイン (インターセプター)を作成してMagento\Catalog\Model\Product::getProductUrl()、単純な製品の URL を変更できます。

if ($product->getTypeId() === 'simple') {
    /*Get the configurable parent product URL and assign it to a simple product.*/
}

構成可能な製品で単純な製品を事前選択するには、単純な製品のアドレスは次のようになります。

/mona-pullover-hoodlie.html#143=167&93=53

どこ

/mona-pullover-hoodlie.html- 構成可能な製品 URL、

14393- 属性 ID、

16753- オプション ID。

関数を使用して、属性 ID とオプション ID を取得できますMagento\ConfigurableProduct\Model\Product\Type\Configurable::getConfigurableAttributesAsArray($product)


VCT Simple Product URLこの問題を解決するモジュールを Magento Marketplace で作成しました。

于 2021-12-02T21:11:33.237 に答える