2011-08-09 8 views
2

状況:Magentoの:Storeviewアクセス今

私はライブシステムを持っているし、その非常によく実行されています。 私はテストシステムを持っていません。

私たちのライブシステムは、複数のストアビューを1つのウェブサイトに持つマルチストアです。

問題:

私は1つ以上storeviewを追加し、そのlivesystem以内にその上で動作するようにする必要があります。このストアビューへのアクセスを制限するにはどうすればいいですか?ログインしているかどうかにかかわらず、このストアを見ることができる顧客はいませんか?これも可能ですか?

このストアビューにアクセスするには管理者(私)のみが必要です。

確かに、私は他のライブ・店舗内のすべてのstoreswitcherを無効にすることができますが、私は考えていない、これは私の問題への素敵な解決策になります。 :)

+0

:-)幸運その明白な、データベースをマージについて開発サイト –

+0

、何を設定しますか?私は注文や顧客を失いたくない。 – Marek123

+0

あなたは開発のためにuptodateデータベースを必要としません。通常、デベロッパー、ステージングサイト、ライブサイトを持っているようになります。あなたはライブからデベロッパーとステージのデータベースをマージし、デベロッパーからステージにライブすることはできません。すべてのセットアップでは、サイトとコードベースの制限と復旧をどのように保つことができるかというモジュールを備えたセットアップスクリプトを使用して行います。 –

答えて

2

次の操作を行う、あなたの言語]ドロップダウン選択フィールドに現在編集しストア(ビュー)を表示したくない場合は、次の

  1. あなたのお店に「管理者」と呼ばれる新しい顧客グループを追加し、リストに表示されるIDを覚えておいてください。

    まだ行っていない場合は
  2. 、管理者のための新しい顧客を追加し、>システム - ストアビューとStoreView名のリンクをクリックするだけで作成した顧客グループ

  3. 行くためにそれを割り当てます - あなたがフロントエンドに表示したくない場合は、URLにStoreView IDが表示されます。/index.php/admin/system_store/editStore/store_id//key /、覚えています

  4. は今すぐファイルを編集:アプリ/設計/フロントエンド/デフォルト/ your_shop /テンプレート/ページ/スイッチ/ languages.phtml

から:

<?php if(count($this->getStores())>1): ?> 
<div class="form-language"> 
    <label for="select-language"><?php echo $this->__('Your Language:') ?></label> 
    <select id="select-language" title="<?php echo $this->__('Your Language') ?>" onchange="window.location.href=this.value"> 
    <?php foreach ($this->getStores() as $_lang): ?> 
     <?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?> 
     <option value="<?php echo $_lang->getCurrentUrl() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option> 
    <?php endforeach; ?> 
    </select> 
</div> 
<?php endif; ?> 

に:

<?php 
// StoreView-Ids we dont want to show on frontend 
$stores = array(3); 
// Set admin group id with access to the above storeviews 
$frontendAdminGroupId = 5; 
// Get current user group id 
$currentGroupId = $this->helper('customer')->getCurrentCustomer()->group_id; 
?> 
<?php if(count($this->getStores())>1): ?> 
<div class="form-language"> 
    <label for="select-language"><?php echo $this->__('Your Language:') ?></label> 
    <select id="select-language" title="<?php echo $this->__('Your Language') ?>" onchange="window.location.href=this.value"> 
    <?php foreach ($this->getStores() as $_lang): ?> 
     <?php foreach ($stores as $_adminStore) : ?>    
      <?php /* Admin Store! */?> 
      <?php if($_adminStore == $_lang->getId()) : ?> 
       <?php if($currentGroupId == $frontendAdminGroupId) : ?> 
        <?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?> 
        <option value="<?php echo $_lang->getCurrentUrl() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option> 
       <?php endif; ?> 
      <?php else: ?> 
      <?php /* Normal User! */?> 
       <?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?> 
       <option value="<?php echo $_lang->getCurrentUrl() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option> 
      <?php endif; ?> 
     <?php endforeach; ?>  
    <?php endforeach; ?> 
    </select> 
</div> 
<?php endif; ?> 

あなたはまた、チェックアウトや店舗ビューの選択フィールドを示しMagentoのの他の部分を編集する必要があり、それはただのです半分の解。

+0

これは実際にはアクセスを全く妨げず、OPの質問には答えません。フロントエンド上の他のストアへの参照を削除するだけです。不要なユーザーがヒットするURLを知っていても、そのサイトにはまだアクセスできます。 –

1

、あなたが生産にそれらを押し出す前に、これらの変更を行うことができるだろうステージングサイトを与えているMagentoのEnterpriseを使用した場合。

それとも、あなたは@Anton Sは、上記の言ったように行い、開発サイトを作成することができます。変更を移動するには、Magentoの書き出し機能を使用します。完全なデータベースのダンプ/インポートではありません。そうすれば、顧客や注文情報を失うことはありません。

関連する問題