Magento Ensemble des coûts d'Expédition lors de la création de la commande par programme
INFO: Magento 1.7.0.2 CE
J'ai fait un module pour l'importation à partir d'une alimentation externe par cron calendrier, j'ai aussi créer un transporteur.
Tous fonctionne bien mais je ne peut pas définir le coût d'expédition... c'est le code:
$shippingAddress = $quote->getShippingAddress()->addData($addressData);
$shippingAddress->setCollectShippingRates(true)->collectShippingRates()
->setShippingMethod('customname_customname')
->setShippingAmount('10')
->setBaseShippingAmount('10');
$quote->collectTotals();
$quote->save();
$addressData contenir le client d'infos
J'ai essayé différentes méthodes, mais je ne peux pas définir le coût d'expédition. À l'AIDE!
C'est la coutume code de transporteur:
protected $_code = 'customname';
/**
* Collect rates for this shipping method based on information in $request
*
* @param Mage_Shipping_Model_Rate_Request $data
* @return Mage_Shipping_Model_Rate_Result
*/
public function collectRates(Mage_Shipping_Model_Rate_Request $request){
$result = Mage::getModel('shipping/rate_result');
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
$method->setPrice('0.00');
$method->setCost('0.00');
$result->append($method);
return $result;
}
/**
* Get allowed shipping methods
*
* @return array
*/
public function getAllowedMethods()
{
return array($this->_code=>$this->getConfigData('name'));
}
}
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé une autre solution "devrait" le travail (et l'ajouter à grand total):
Supprimer:
Ajoutez la ligne suivante à votre ajout de la commande de script:
Et, remplacez la ligne suivante dans votre méthode d'expédition:
avec:
p.s je l'ai testé dans Magento 1.6.1, PS vous pouvez aussi avoir besoin de supprimer
->setShippingAmount('10')
de votre commande ou obj, vous allez ajouter l'impôt deux foisVous pouvez mettre à jour le coût d'expédition par le biais de ces ligne de code:-
Il sera utile pour vous.
Certains de solution trouvée.
C'était simple, il suffit d'ajouter le montant des frais de port dans l'ordre obj comme suit:
Maintenant j'ai un nouveau message d'erreur, les frais d'expédition ne sont pas ajoutés à la grantotal...
$order->setSubtotal($subTotal) ->setBaseSubtotal($subTotal) ->setGrandTotal($subTotalWithShipping) ->setBaseGrandTotal($subTotalWithShipping);
Veuillez vérifier les collectRates(Mage_Shipping_Model_Rate_Request $request) méthode de votre module d'expédition. Vérifiez comment vous livraison total est initialisé.
Assurez-vous que les frais d'expédition total est mis à jour et enregistré dans $variable de prix de cette méthode.