0

我将 Shipworks 3 与 Magento 1.5.1 一起使用,并希望通过采购订单 NUMBER。现在付款类型通过,但我需要采购订单号,以便它可以继续/打印在装箱单、发票和运输标签上。

这是 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 标记非常挑剔。您不能只在响应中添加一些内容,因为当它尝试与您的 Magento 商店同步时,它会在 SW 软件中引发错误。您可以使用当前未使用的现有元素添加它。在我们的例子中,我们没有使用 Gift Messages,它作为Notes添加到响应中,因此我将Notes元素重新用于包含其他内容。

查看WriteOrder函数(在第 396 行附近)并找到此部分:

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 回答