J'essaie d'utiliser l'API de Magento Enterprise 1.10 XML-RPC pour gérer les fonctions de chariot / catalogue en dehors de l'installation de Magento. La question que j'ai eu est quand j'ajoute au panier. Je peux connecter simplement bien au point d'extrémité de l'API, à la connexion et à la récupération de données. Ce qui suit est le code que j'utilise pour découvrir les fonctionnages de l'API Magento.
[product_id] => 5 [sku] => product1 [set] => 9 [type] => virtual [categories] => Array ( ) [websites] => Array ( [0] => 1 ) [type_id] => virtual [name] => product [description] => Test [short_description] => Test [news_from_date] => [old_id] => [news_to_date] => [status] => 1 [visibility] => 4 ... [created_at] => 2011-05-25 15:11:34 [updated_at] => 2011-05-25 15:11:34 ... [price] => 10.0000
3 Réponses :
Juste pour que cela puisse être une question de réponse officielle, voici la solution trouvée, http: // magentamperce. com / planches / viewthread / 227044 J'ai passé deux jours à la recherche de cela, et aujourd'hui proposer un terme de recherche obscur pour essayer de trouver la solution p>
Le lien de votre réponse a été modifié et ne pointe plus la solution. Celui-ci fait: web.archive. Org / Web / 20120624021427 / http: // ...
Je regarde ce problème depuis quelques jours maintenant. Cela n'a pas de sens pour moi que si vous ajoutez un produit à votre panier via l'interface Web normale [IE ces deux lignes créent effectivement Si vous êtes prêt / capable de modifier le code de Magento, vous pouvez modifier Je n'ai testé qu'un peu, mais je pense vraiment que ceci est un bug et non une fonctionnalité. Je verrai d'obtenir cela devant le Magento Devs et peut-être qu'ils l'incluront dans la prochaine version. P> P> Mage_Checkout_cartcontroller :: Addaction () Code>]. Il connaît le prix sans vous fournir une adresse. J'ai finalement trouvé la différence entre les deux. Dans
Addaction () Code> Ils créent une instance de
mage_checkout_model_cart code>, ajoutez le produit à cela et enregistrez-le. Dans l'API, ils utilisent
mage_sales_model_quote code> à la place. Si vous regardez
mage_checkout_model_cart :: Enregistrer () code> Vous verrez ces deux lignes:
mage_sales_model_quote_address code> objets qui est enregistré dans la base de données. p>
Mage_checkout_model_cart_api :: créer () code> et ajouter un appel à ces deux méthodes avant
$ Quote-> Enregistrer () code> et l'API et l'interface Web fonctionneront de la même manière. P>
Magento Frontend et API les deux sont différents. Dans FronTender après avoir enregistré le client, il crée une citation pour le client et définit également l'adresse avec cet identifiant de devis créé. Mais dans API, cela ne crée qu'une citation uniquement en utilisant Ici fournit la solution: P> Modifier la fonction dans Fichier - shoppingcartcreate code>. Pour bien, nous devons personnaliser Créer un service. J'ai fait et ça a fonctionné pour moi.
Mage / Checkout / Modèle / Panier / API.PHP CODE> P>
public function create($store = null)
{
$storeId = $this->_getStoreId($store);
try {
/*@var $quote Mage_Sales_Model_Quote*/
$quote = Mage::getModel('sales/quote');
$quote->setStoreId($storeId)
->setIsActive(false)
->setIsMultiShipping(false)
->save();
/* Customized this for saving default address for quote and it will show price in cart info*/
$quote->getBillingAddress();
$quote->getShippingAddress()->setCollectShippingRates(true);
$quote->collectTotals();
$quote->save();
/* End cart here */
} catch (Mage_Core_Exception $e) {
$this->_fault('create_quote_fault', $e->getMessage());
}
return (int) $quote->getId();
}
Solution trouvée, MagentOcommerce.com/boards/viewthread/227044 J'ai passé deux jours à chercher Pour cela, et aujourd'hui proposer un terme de recherche obscur pour essayer de trouver la solution.
Vous pouvez répondre à vos propres questions et fermer cela, FYI.
Je n'ai pas une contribution assez élevée, je ne peux pas y répondre pendant 4 heures de plus. = \