Question

Je veux ajouter des commentaires produits programatically avec des champs personnalisés définis sur mon code ci-dessous

$review = Mage::getModel('review/review')
->setEntityPkValue(intval($pressquote->product_id)) //product id
->setStatusId(intval($pressquote->status))
->setDetail($pressquote->text)
->setTitle('')
->setEntityId(1)                     
->setStatusId(intval($pressquote->status))          //approved
->setCustomerId(null)                       //null is for administrator
->setNickname($pressquote->source)
->setLink($pressquote->link)                            //custom field
->setLinktext($pressquote->linktext)                   //custom field
->setYear($pressquote->year)                            //custom field
->setStoreId(1)                                          
->setStores(array('base'))                              
->save();

mais il ne fonctionne pas pour moi .. J'ai vérifié mon code et il arrête sur save(). Qu'est ce qui ne s'est pas bien passé? J'ai essayé de supprimer déjà les champs personnalisés, mais rien ne se passe

Était-ce utile?

La solution

// Invoque l'environnement Magento

require_once 'app/Mage.php';
Mage::app();

// Configurez votre propre boucle à passer par les commentaires du panier source.

// Logic pour rechercher le client qui a déjà été migré dans magento. // Vous avez donc $ _customer tenant un Mage_Customer_Model_Customer

// IMPORTANT: Mettre en place la session client. // cotation de l'indice / option vérifie les ressources de modèle de la session du client pour obtenir le numéro de client.

$_session = Mage::getSingleton('customer/session')->setCustomer($_customer)->setCustomerAsLoggedIn($_customer);

// Ajouter la revue

$_review = Mage::getModel('review/review');
->setEntityPkValue($_product->getId())
->setStatusId($sc_to_mage_review_status[$row_source_review['Status']])
->setTitle($row_source_review['Title'])
->setDetail($row_source_review['Review'])
->setEntityId(1)
->setStoreId($store)
->setStores(array($store))
->setCustomerId($_customer->getId())
->setNickname($_customer->getFirstname())
->save();

// Carte votre rating_id à votre option_id avec un tableau ou quelque chose

$rating_options = array(
1 => array(1,2,3,4,5), // <== Look at your database table `rating_option` for these vals
2 => array(6,7,8,9,10),
3 => array(11,12,13,14,15)
);

// maintenant enregistrer les notes

foreach($rating_options as $rating_id => $option_ids):
try {
    $_rating = Mage::getModel('rating/rating')
        ->setRatingId($rating_id)
        ->setReviewId($_review->getId())
        ->addOptionVote($option_ids[$rating_value-1],$_product->getId());
} catch (Exception $e) {
    die($e->getMessage());
}
endforeach;

Autres conseils

$review = Mage::getModel('review/review');
$review->setEntityPkValue(147);//product id
$review->setStatusId(1); // approved
$review->setTitle("title");
$review->setDetail("detail");
$review->setEntityId(1);                                      
$review->setStoreId(Mage::app()->getStore()->getId());                    
$review->setCustomerId(273);//null is for administrator
$review->setNickname("Me");
$review->setReviewId($review->getId());
$review->setStores(array(Mage::app()->getStore()->getId()));                    
$review->save();

$review->aggregate();

Référence ::

http://www.magentocommerce.com/boards/viewthread/199171/

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top