La adición de un producto (paquete) en el carrito programación en diferentes sitios web / tiendas

magento.stackexchange https://magento.stackexchange.com/questions/3612

Pregunta

¿Cómo añadir un producto a la cesta es lo que ya he trabajo, pero parece estar funcionando sólo para el almacén predeterminado. Así que cuando agrego un producto a la cesta con la secuencia de comandos en el sitio web por defecto / tienda, los productos se añaden al carro, pero si lo hago en otra tienda, el carro permanece vacío (sin ningún error).

Aquí está el añadir a la cesta de la escritura que tengo hasta ahora:

require_once($_SERVER['DOCUMENT_ROOT'] . '/app/Mage.php');
umask(0);
Mage::app()->setCurrentStore(Mage::app()->getStore()->getStoreId());

$session = Mage::getSingleton('core/session', array('name'=>'frontend'));
$cart = Mage::helper('checkout/cart')->getCart();

if( $_REQUEST['params_1'] != '' ) {
    try {
        $params_1 = unserialize($_REQUEST['params_1']);

        $productcart = new Mage_Catalog_Model_Product();
        $productcart = $productcart->load($params_1['product']);
        $cart->addProduct($productcart, $params_1);
        $session->setLastAddedProductId($productcart->getId());
    } catch(Exception $e) {
        echo Mage::helper('catalog')->__($e->getMessage());
    }
}

$cart->save();

Mage::getSingleton('checkout/session')->setCartWasUpdated(true);

$_REQUEST['params_1'] mantiene la configuración del producto paquete como una matriz, que parece correcta, ya que está trabajando en el almacén predeterminado.

¿Es necesario llamada $cart = Mage::helper('checkout/cart')->getCart(); diferente con el fin de reflejar otra tienda?

¿Fue útil?

Solución 2

De acuerdo, no sé exactamente lo resuelto, pero he resuelto el problema mediante la adopción de estos dos pasos:

  1. Yo estaba usando jQuery.ajax() para hacer una llamada AJAX a mi Magento ajaxController que maneja mi añadir a la cesta de la escritura. Eso fue un solo archivo .php, pero añade el código a mi módulo ajaxController.

  2. El parámetro url para la llamada AJAX era relativo, como en url: "/myhelper/ajax/add_to_cart_final_ajax/", ahora me envuelvo los URIs con el getUrl función auxiliar (), así: url: "<?php echo $this->getUrl('myhelper/ajax/add_to_cart_final_ajax') ?>"

Gracias Fabian Blechschmidt por su ayuda y paciencia de todos modos!

Otros consejos

El carro es un represantetion de una cotización. Una cita está unido a una tienda, por lo que acaba de cambiar el ID de tienda podría no ser suficiente si el carro / presupuesto ya está conectado a la tienda equivocada.

Compruebe el StoreID de la compra / cita y cambiarlo, esto podría ayudar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top