Pagina 1 din 1

PHP Magento Adaugare de produs in cos

Scris: Mie Mai 17, 2017 2:23 pm
de theramore
Buna ziua !
Incerc sa dezvolt o aplicatie (phonegap) Android/iOS care sa comunice cu o platforma magento. Pentru asta am un fisier JS ce trimite $.post catre un fisier .php aflat pe serverul cu magento chiar in root-ul acestuia. Problema mea este in fisierul PHP care arata cam asa :

Cod: SelectaĊ£i tot

<?php
require_once 'app/Mage.php';
header("Access-Control-Allow-Origin: *");

$pass = isset($_GET['pass']) ? strip_tags(trim($_GET['pass'])) : '';
if ($pass === md5('OParola')) {
    $action = isset($_GET['action']) ? strip_tags(trim($_GET['action'])) : '';
   header("Content-Type: application/json");
    if ($action == 'add_to_cart') {
        $email = isset($_POST['email']) ? strip_tags(trim($_POST['email'])) : 'office@simpapp.ro';
        $entity_id = isset($_POST['entity_id']) ? strip_tags(trim($_POST['entity_id'])) : '115';
        $qty = isset($_POST['qty']) ? strip_tags(trim($_POST['qty'])) : '1';
        Mage::app();
        $jsonData = array();
        $customer = Mage::getModel('customer/customer')
            ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
            ->loadByEmail($email);
        Mage::getSingleton('customer/session')->setCustomerAsLoggedIn($customer)
            ->renewSession();
        $session = Mage::getSingleton('customer/session', array('name' => 'frontend'));
        $cart = Mage::getSingleton('checkout/cart');
        $cart->init();
        $product = Mage::getModel('catalog/product')->load($entity_id);
        if($product->getHasOptions()){
      $attribute1 = $product->getData('marime'); //see admin for attribute code
      $product->setData('marime', '117');
      $attribute2 = $product->getData('marime'); //see admin for attribute code
        }
        var_dump($attribute1);
        var_dump($attribute2);
        $cart->addProduct($product,array('product_id' => $entity_id, 'qty' => $qty, 'options' => array(117 => array('product_id' => 117, 'qty' => $qty))));
       
        //$session->setCartWasUpdated(true);

        // save the cart
        $cart->save();
        $jsonData['msg'] = 'Produs adaugat in cos!';
        echo Mage::helper('core')->jsonEncode($jsonData);
        $session->clear();
    }
}
?>


Iar eroarea cam asa :

Cod: SelectaĊ£i tot

Fatal error: Uncaught exception 'Mage_Core_Exception' with message 'Please specify the product's option(s).' in /home/public_html/app/Mage.php:595 Stack trace: #0 /home/public_html/app/code/core/Mage/Checkout/Model/Cart.php(284): Mage::throwException('Please specify ...') #1 /home/public_html/simpapp.php(476): Mage_Checkout_Model_Cart->addProduct(Object(Mage_Catalog_Model_Product), Array) #2 {main} thrown in /home/public_html/app/Mage.php on line 595


Asta se intampla din cate am inteles deoarece produsul este de tip "configurabil" si nu poate veni singur ci doar cu un alt produs ca addon(In cazul de fata este un tricou , iar optiunea - marime (S,M,L - care la randul lor sunt alte produse ) )

Re: PHP Magento Adaugare de produs in cos

Scris: Mie Mai 17, 2017 8:41 pm
de nevvermind
Cauta pe net, dude. Multi au avut problema ta: https://www.google.co.uk/search?q=magen ... o+cart+api
Eroare zicea de Product options, nu de produsele-copii ale configurabilului, deci e altceva. Se asteapta la vreo cheie "options" probabil, nu mai tin minte. Vezi pe gugal.

Haoleu! md5('parola')! Is asa de multe variante mai bune decat asta incat nu stiu de unde sa incep. Am sa presupun ca doar testezi si ca n-ai sa-l lasi asa in productie.

Orisicum, aplicatiile pot fi integrate cu Magento prin API-ul lui, fie REST, fie SOAP. Are si metode de-a adauga produse intr-un cart: http://devdocs.magento.com/guides/m1x/a ... t.add.html. Ala-i SOAP. Vezi si REST, poate-ti place mai mult ala.

Re: PHP Magento Adaugare de produs in cos

Scris: Lun Mai 22, 2017 2:55 pm
de l33t
Ai un modul in app/code/core/Mage -> MobileConnect, acolo ai 2 controllere - CatalogProduct si CartController, primul il folosesti ca sa afisezi produsul configurabil (optiuni) iar al doilea pentru a il adauga in cos.
Va trebui sa-ti configurezi din admin un appcode.