我有一个magento网站
我的问题是显示货币运作良好。每个商店视图都有自己的个人价格(没有自动转换)。一切似乎都在起作用。但是,在最终付款电子邮件和与支付提供商(PayPal / Sage)的实际连接。始终使用基础货币。虽然显示屏以每个商店视图的货币显示。
我的问题是为什么商店查看货币不用于PayPal,电子邮件等。虽然金额,显示货币等工作正常?
答案 0 :(得分:1)
事实证明,可以在每个商店视图上设置基本货币。但是,此选项未在管理员方面显示。我不得不更改system.xml
应用程序/代码/核心/法师/目录/ etc /的system.xml
<label>Base Currency</label>
我必须设置适当的从0更改为1
<show_in_store>1</show_in_store>
完成此操作后,即使在商店视图中,我也可以在“货币选项”下看到基础货币。现在效果很好,一切似乎都运转正常。
不需要更改PHP代码或任何其他插件。
答案 1 :(得分:0)
当我遇到一个相当大的Magento商店遇到这个问题时,这个快速解决方案对我来说非常好:Magento knowledge-base paypal base currency tweak
请注意,该修复程序可能无法开箱即用,但它会进行一些调整
答案 2 :(得分:0)
这是一些解决方案。 您可以自定义一些代码 如果您使用的是Paypal Express, \应用\代码\核心\法师\贝宝\模型\ Express.php
protected function _placeOrder(Mage_Sales_Model_Order_Payment $payment, $amount)
{
$order = $payment->getOrder();
// prepare api call
$token = $payment->getAdditionalInformation(Mage_Paypal_Model_Express_Checkout::PAYMENT_INFO_TRANSPORT_TOKEN);
$api = $this->_pro->getApi()
->setToken($token)
->setPayerId($payment->
getAdditionalInformation(Mage_Paypal_Model_Express_Checkout::PAYMENT_INFO_TRANSPORT_PAYER_ID))
->setAmount($amount)
->setPaymentAction($this->_pro->getConfig()->paymentAction)
->setNotifyUrl(Mage::getUrl('paypal/ipn/'))
->setInvNum($order->getIncrementId())
**->setCurrencyCode($order->getOrderCurrencyCode())** // should be used getOrderCurrencyCode();
->setPaypalCart(Mage::getModel('paypal/cart', array($order)))
->setIsLineItemsEnabled($this->_pro->getConfig()->lineItemsEnabled)
;
if ($order->getIsVirtual()) {
$api->setAddress($order->getBillingAddress())->setSuppressShipping(true);
} else {
$api->setAddress($order->getShippingAddress());
$api->setBillingAddress($order->getBillingAddress());
}
// call api and get details from it
$api->callDoExpressCheckoutPayment();
$this->_importToPayment($api, $payment);
return $this;
}
\应用\代码\核心\法师\贝宝\模型\ Standard.php
public function getStandardCheckoutFormFields()
{
$orderIncrementId = $this->getCheckout()->getLastRealOrderId();
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
/* @var $api Mage_Paypal_Model_Api_Standard */
$api = Mage::getModel('paypal/api_standard')->setConfigObject($this->getConfig());
$api->setOrderId($orderIncrementId)
**->setCurrencyCode($order->getOrderCurrencyCode())** // should be used getOrderCurrencyCode();
//->setPaymentAction()
->setOrder($order)
->setNotifyUrl(Mage::getUrl('paypal/ipn/'))
->setReturnUrl(Mage::getUrl('paypal/standard/success'))
->setCancelUrl(Mage::getUrl('paypal/standard/cancel'));
// export address
$isOrderVirtual = $order->getIsVirtual();
$address = $isOrderVirtual ? $order->getBillingAddress() : $order->getShippingAddress();
if ($isOrderVirtual) {
$api->setNoShipping(true);
} elseif ($address->validate()) {
$api->setAddress($address);
}
// add cart totals and line items
$api->setPaypalCart(Mage::getModel('paypal/cart', array($order)))
->setIsLineItemsEnabled($this->_config->lineItemsEnabled)
;
$api->setCartSummary($this->_getAggregatedCartSummary());
$api->setLocale($api->getLocaleCode());
$result = $api->getStandardCheckoutRequest();
return $result;
}