サイトカレンダをスキップ

«
2017年 10月
»
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

-

ログイン

ログイン

QRコード

QR code


 掲示板目次 > Magento全般 > カスタマイズ質問 新規投稿 返信投稿
 Paypal通貨決済設定 & ET Currencyの組み合わせ、円小数点設定について
 
zrz
 2013年9月 4日 01:55 JST (参照数 13236回)  
掲示板 Newbie
Newbie

状態: オフライン


登録日: 2013年9月 4日
投稿数: 1
こんにちは、
Magento 1.7でサイトを作成中です。

Magento標準では、Paypalの支払通貨はBase Currency設定により固定ですが、
選択した通貨で決済したいので、下記のソースを修正しました。

app\code\core\Mage\Paypal\Model\Standard.php
PHP Formatted Code

public function getStandardCheckoutFormFields()
{
        $orderIncrementId = $this->getCheckout()->getLastRealOrderId();
        $order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
        $api = Mage::getModel('paypal/api_standard')->setConfigObject($this->getConfig());
        $api->setOrderId($orderIncrementId)
            ->setCurrencyCode($order->getOrderCurrencyCode())//---paypal 通貨対応修正
            //->setPaymentAction()
            ->setOrder($order)
            ->setNotifyUrl(Mage::getUrl('paypal/ipn/'))
         ...
}
 


app\code\core\Mage\Paypal\Model\Cart.php
PHP Formatted Code

protected function _render()
{
...
   if ($this->_salesEntity instanceof Mage_Sales_Model_Order) {
      $shippingDescription = $this->_salesEntity->getShippingDescription();
      $this->_totals = array(
          self::TOTAL_SUBTOTAL => $this->_salesEntity->getSubtotal(),//---paypal 通貨対応修正
          self::TOTAL_TAX      => $this->_salesEntity->getTaxAmount(),//---paypal 通貨対応修正
          self::TOTAL_SHIPPING => $this->_salesEntity->getShippingAmount(),//---paypal 通貨対応修正
          self::TOTAL_DISCOUNT => abs($this->_salesEntity->getDiscountAmount()),//---paypal 通貨対応修正
      );
...
}
 


app\core\Mage\Sales\Model\Order\Payment.php
PHP Formatted Code

protected function _isCaptureFinal($amountToCapture)
    {
        $amountToCapture = $this->_formatAmount($amountToCapture, true);
        $orderGrandTotal = $this->_formatAmount($this->getOrder()->getGrandTotal(), true);//---paypal 通貨対応修正
        if ($orderGrandTotal == $this->_formatAmount($this->getAmountPaid(), true) + $amountToCapture) {//---paypal 通貨対応修正
            if (false !== $this->getShouldCloseParentTransaction()) {
                $this->setShouldCloseParentTransaction(true);
            }
            return true;
        }
        return false;
    }
 


これでなんとなくPaypal側で選択通貨より決済ができました。

問題はBase Currencyがドル、日本円で決済を行う場合、当然円は小数点になり、
「ET Currency」モジュールを使い小数点を非表示にしましたが、
Paypal standardページへリダイレクトの場合、エラーになり、うまく行きませんでした。

getStandardCheckoutFormFieldsをしらべたところ、
getShippingAmount、getDiscountAmountは小数点のままでした。

Magento では初心ですので、ご教授ください。
よろしくお願いいたします。

 
プロフィール メール
引用して書き込む
bestshop24h
 2013年9月 6日 01:35 JST  
掲示板 Active Member
Active Member

状態: オフライン


登録日: 2011年12月27日
投稿数: 190
こんな程度の問題なら、無料は。。。ちょっと

業務:magentoテンプレート代購入、インストール、レイアウト修正、機能追加です。 bestshop24h.com
 
プロフィール メール ホームページ
引用して書き込む
bestshop24h
 2013年9月23日 13:31 JST  
掲示板 Active Member
Active Member

状態: オフライン


登録日: 2011年12月27日
投稿数: 190
hirokazu_nishi管理者しかできないと思います。

業務:magentoテンプレート代購入、インストール、レイアウト修正、機能追加です。 bestshop24h.com
 
プロフィール メール ホームページ
引用して書き込む
内容生成: 3.05 秒
新規投稿 返信投稿


通常 通常
注目トピック 注目トピック
ロック済 ロック済
新着 新着
注目トピック 新着 注目トピック 新着
ロック済トピック 新着 ロック済トピック 新着
ゲストユーザの投稿を見る 
ゲストユーザ投稿可能 
HTML許可 
バッドワードをチェック