1

設定可能な製品がフロント エンドに表示されません。バックエンドでは、Magento は構成可能な製品を 0 在庫としてリストしているようです (ただし、構成可能な製品の数量を入力するボックスはありません)。

  1. すべての製品が「在庫あり」に設定されており、数量がゼロを超えています
  2. 構成可能な製品自体も「在庫あり」に設定されています [数量の設定はありません - 上記のとおり]
  3. データは再インデックスされ、キャッシュはフラッシュされました
  4. Magento 1.7.0.2 の使用
  5. 人気のある拡張機能 Simple Configurable Products の使用はこちら

お知らせ下さい...

4

1 に答える 1

12

これが私のために働いた解決策です:

問題は、Simple Configurable Products (OrganicInternet) で使用されるコードにあります。

上記の 2 つの別々の問題が同時に発生していたことに注意したいと思います。また、製品価格インデックスのインデックス作成が拒否されました ( SQLSTATE[21S01]: Insertとして説明された、次のメッセージを受け取っていました: Cannot intialize the indexer process )。値リストが列リストと一致しません: 1136 列数が行 1 の値数と一致しません)

両方の問題が関連していることが判明したため、以下で両方を解決しました;)

  1. ファイル内 / app / code / community / OrganicInternet / SimpleConfigurableProducts / Catalog / Model / Resource / Eav / Mysql4 / Product / Indexer / Price / Configurable.php

変化する:

$select->columns(array(
        'entity_id'         => new Zend_Db_Expr('e.entity_id'),
        'customer_group_id' => new Zend_Db_Expr('pi.customer_group_id'),
        'website_id'        => new Zend_Db_Expr('cw.website_id'),
        'tax_class_id'      => new Zend_Db_Expr('pi.tax_class_id'),
        'orig_price'        => new Zend_Db_Expr('pi.price'),
        'price'             => new Zend_Db_Expr('pi.final_price'),
        'min_price'         => new Zend_Db_Expr('pi.final_price'),
        'max_price'         => new Zend_Db_Expr('pi.final_price'),
        'tier_price'        => new Zend_Db_Expr('pi.tier_price'),
        'base_tier'         => new Zend_Db_Expr('pi.tier_price'),
    ));

に:

$select->columns(array(
        'entity_id' => new Zend_Db_Expr('e.entity_id'),
        'customer_group_id' => new Zend_Db_Expr('pi.customer_group_id'),
        'website_id' => new Zend_Db_Expr('cw.website_id'),
        'tax_class_id' => new Zend_Db_Expr('pi.tax_class_id'),
        'orig_price' => new Zend_Db_Expr('pi.price'),
        'price' => new Zend_Db_Expr('pi.final_price'),
        'min_price' => new Zend_Db_Expr('pi.final_price'),
        'max_price' => new Zend_Db_Expr('pi.final_price'),
        'tier_price' => new Zend_Db_Expr('pi.tier_price'),
        'base_tier' => new Zend_Db_Expr('pi.tier_price'),
        'group_price' => new Zend_Db_Expr('pi.group_price'),
        'base_group_price' => new Zend_Db_Expr('pi.group_price'),
    ));

$outerSelect->columns(array(
        'customer_group_id',
        'website_id',
        'tax_class_id',
        'orig_price',
        'price',
        'min_price',
        'max_price'     => new Zend_Db_Expr('MAX(inner.max_price)'),
        'tier_price',
        'base_tier',
        #'child_entity_id'
    ));

$outerSelect->columns(array(
        'customer_group_id',
        'website_id',
        'tax_class_id',
        'orig_price',
        'price',
        'min_price',
        'max_price'     => new Zend_Db_Expr('MAX(inner.max_price)'),
        'tier_price',
        'base_tier',
    'group_price',
    'base_group_price',
        #'child_entity_id'
    ));

出典:これに伴う主な問題(ただし、正しいコードは'base_group_price' => new Zend_Db_Expr('pi.group_price') であり、'base_group_price' => new Zend_Db_Expr('pi. base_ group_price') ではないことに注意してください。

  1. また、ファイル内: / app / code / community / OrganicInternet / SimpleConfigurableProducts / Catalog / Model / Resource / Eav / Mysql4 / Product / Indexer / Price.php

変化する

$this->cloneIndexTable(true);

$this->clearTemporaryIndexTable();

出典:こちら

これを理解するのに数時間かかったので、他の人が時間を無駄にしないようにこの投稿を書きました.

頑張ってください!

于 2013-01-28T01:04:19.063 に答える