Question

J'ai reçu le code de la création d'un objet de citation et d'un objet d'élément de citation, et je suis capable de créer une citation avec succès que je pourrais le confirmer en cochant la base de données, j'ai également créé un cookie nommé front-end.Tout ce dont j'ai besoin maintenant consiste à attribuer le devis créé à l'utilisateur invité, de sorte que je puisse laisser la vérification de l'utilisateur en tant qu'invité, mais je n'ai pas pu attribuer le panier à l'utilisateur invité.

La demande d'articles dans le panier provenait du 3ème site de la 3e partie via une demande JSON que j'ai décodée et bouclée.

voici le code

session_name("frontend");

session_start();

$cartInfo = $_GET['items'];

require_once '../app/Mage.php'; 

Mage::init('default');

$session = Mage::getSingleton('customer/session');

Mage::getSingleton('checkout/cart')->getQuote();

foreach ($cartArray as $key=> $value) {
        $productId = $key;
        $productQuantity = $value;
        $productModel = Mage::getSingleton('catalog/product');
        $productObj = $productModel->load($productId);
        if (!$quoteObj) {
            $quoteObj = new Mage_Sales_Model_Quote();
        }

        $store_id = Mage::app()->getStore()->getId();
        $storeObj = $quoteObj->getStore()->load($store_id);
        $quoteObj->setStore($storeObj);

        $quoteItem = Mage::getModel('sales/quote_item')->setProduct($productObj);
        $quoteItem->setQuote($quoteObj);
        $quoteItem->setQty($productQuantity);
        $quoteItem->setStoreId($store_id);

        $quoteObj->addItem($quoteItem);
        $quoteObj->setStoreId($store_id);
        $quoteObj->collectTotals();
        $quoteObj->setCustomerId(null);
        $quoteObj->save();
        $quoteId = $quoteObj->entity_id;
        echo $quoteObj->entity_id.'**<br />';
        echo $quoteItem->item_id.'---<br />';
}

Était-ce utile?

La solution

a finalement compris la question, espérons que cela aide quelqu'un, voici la réponse.

Le code donné ci-dessus dans la section de la question fonctionne parfaitement, tout ce que vous avez à faire est de placer le fichier personnalisé dans le dossier racine de votre installation Magento, si vous créez un dossier et placez ce code, il ne fonctionnera pas.Il faut que le fichier de code doit être à la racine.

Autres conseils

Étant donné que ceci est une caisse de devinette, la seule façon à laquelle je peux penser est de laisser le client rééditer la citation dans leur navigateur.Vous auriez donc besoin de les envoyer un lien avec l'ID de devis ou de les laisser entrer l'ID de devis sur votre site.

Recharger la citation de votre contrôleur

 $id = $this->getRequest()->getParam('quote_id');
 $store_id = $this->getRequest()->getParam('store_id');

 ....   
 $this->_getSession()->clear();
 $this->_getQuote()
      ->setQuoteId($id)
      ->setStoreId($store_id)
      ->setIsActive(true)
      ->load($id);

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