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 ) )