2013-04-28 13 views
5

Używam Magento (1.7) i właśnie rozszerzyłem mój stary sklep (store1) o store2 przez multi-store. Mam dużo produktów (około 1500) i wszystkie są widoczne w sklepie Store1, ale nie w nowym sklepie (store2). Czy istnieje prosty sposób na włączenie wszystkich produktów dla wszystkich sklepów?Jak włączyć wszystkie produkty we wszystkich sklepach?

Odpowiedz

8

w siatce produktów w admin, wybrać wszystkie produkty z „zaznacz wszystko” przycisk. Z menu rozwijanego "Działania"; wybierz opcję "Aktualizuj atrybuty". W zakładce "Strony internetowe"; wybierz żądane strony i kliknij "zapisz". Następnie ponownie wyindeksuj wszystkie dane:

Przejdź do: System> Zarządzanie indeksami.
Wybierz wszystkie elementy i rozpocznij ponowne indeksowanie, przesyłając formularz.

+0

Mój problem całkowicie przeciwny, przez pomyłkę nasze produkty przypisane obie strony, potrzebuję moje produkty obecne tylko jeden sklep. Zgodnie z powyższymi zaleceniami moja strona internetowa składa się z 25 000 produktów. Nie jest możliwe używanie atrybutów zmiany, podczas gdy próbuję zablokować moją stronę, można to zrobić w DB lub w inny sposób. – Rathinam

2

Istnieje kilka sposobów, aby to zrobić. Najpierw i najłatwiej jest użyć funkcji masowej edycji w admin. Przejdź do strony zarządzania produktami, kliknij opcję zaznacz wszystko, zmień listę działań, aby powiedzieć "Zmień atrybuty" i kliknij przycisk prześlij. Następnie na karcie witryny sprawdź, czy nowa witryna jest zaznaczona w obszarze "Dodaj produkt do stron internetowych" i kliknij przycisk Zapisz.

Jeśli trzeba to zrobić programowo i mieć swoją stronę identyfikatory można umieścić coś takiego w skrypcie PHP w katalogu głównym Magento:

<?php 

require_once('app/Mage.php'); 
umask(0); 
Mage::app('admin'); 

$website_ids = array(1, 2); // I'm assuming your website IDs are 1 and 2. 
// $website_ids = getWebsitesArray(); 

$product_collection = Mage::getModel('catalog/product')->getCollection(); 
foreach($product_collection as $product) { 
    $product->setWebsiteIds($website_ids); 
    $product->save(); 
} 

I tak na dokładkę, oto jak zdobyć że tablica website_ids programowo:

/* @return array */ 
function getWebsitesArray() { 
    $ret = array(); 
    $website_collection = Mage::app()->getWebsites(true); 
    foreach($website_collection as $website) { 
     $ret = array_push($website->getId()); 
    } 

    return $ret; 
} 
Powiązane problemy