0

Shipworks 3 と Magento 1.5.1 を使用しており、発注書 NUMBER を通過させたいと考えています。現在、支払いタイプは送信されていますが、梱包票、請求書、配送ラベルに印刷できるように PO 番号が必要です。

これは、shipworks.php の抜粋です。このセクションに追加する必要があると思いますが、何を追加すればよいかわかりません。

助けてくれてありがとう。

$payment = $order->getPayment();

            // CC info
            if ($secure)
            {
                      $cc_num = $payment->getCcNumber();
            }
            else
            {
                      $cc_num = $payment->getCcLast4();
                      if (!empty($cc_num))
                      {
                                 $cc_num = '************'.$payment->getCcLast4();
                      }
            }
            $cc_year = sprintf('%02u%s', $payment->getCcExpMonth(), substr($payment->getCcExpYear(), 2)); 


        writeStartTag("Payment");
        writeElement("Method", Mage::helper('payment')->getMethodInstance($payment->getMethod())->getTitle());

        writeStartTag("CreditCard");
        writeElement("Type", $payment->getCcType());
        writeElement("Owner", $payment->getCcOwner());
        writeElement("Number", $cc_num);
        writeElement("Expires", $cc_year);
        writeCloseTag("CreditCard");

        writeCloseTag("Payment");
4

2 に答える 2

2

以下を使用して、自分の po 番号をメモに表示することができました。これは私が使用したものです。それが役に立てば幸い。

// CC info
if ($secure)
{
    $cc_num = $payment->getCcNumber();
}
else
{
    $cc_num = $payment->getCcLast4();
    if (!empty($cc_num))
    {
        $cc_num = '************'.$payment->getCcLast4();
    }
}
$cc_year = sprintf('%02u%s', $payment->getCcExpMonth(), substr($payment->getCcExpYear(), 2)); 


    writeStartTag("Payment");
    writeElement("Method", Mage::helper('payment')->getMethodInstance($payment->getMethod())->getTitle());

    writeStartTag("CreditCard");
    writeElement("Type", $payment->getCcType());
    writeElement("Owner", $payment->getCcOwner());
    writeElement("Number", $cc_num);
    writeElement("Expires", $cc_year);
    writeCloseTag("CreditCard");

    writeCloseTag("Payment");

     writeStartTag("Notes");
    writeFullElement("Note", $payment->getPoNumber(),array("public" =>"true"));
   writeCloseTag("Notes");

    WriteOrderItems($order->getAllItems());

    WriteOrderTotals($order);
于 2011-11-11T17:00:45.317 に答える
0

Shipworks は、受け取る XML タグについて非常にうるさいです。SW ソフトウェアが Magento ストアと同期しようとするとエラーがスローされるため、応答に何かを追加することはできません。現在使用されていない既存の要素を使用して追加できます。私たちの場合、 Notesとして応答に追加される Gift Messages を使用していませんでし

関数 (396 行目あたり) を見て、次のWriteOrderセクションを見つけます。

if ($order->getGiftMessageId())
{
    $message = Mage::helper('giftmessage/message')->getGiftMessage($order->getGiftMessageId());
    $messageString = "Gift message for ". $message['recipient']. ": ". $message['message'];

    writeStartTag("Notes");
    writeFullElement("Note", $messageString, array("public" => "true"));
    writeCloseTag("Notes");
}

このセクションをコメントアウトして、次のように追加します。

if ($order->getPoNumber())
{
    writeStartTag("Notes");
    writeFullElement("Note", $order->getPoNumber(), array("public" => "true"));
    writeCloseTag("Notes");
}

注:実際に機能するかどうかはわかりません$order->getPoNumber()...これは、あなたがする必要があることの単なるサンプルです

于 2011-08-12T14:35:39.350 に答える