Передать номер заказа на поставку Magento в Shipworks; затем добавьте в поле Fedex Reference
Я использую 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");
2 ответа
Я смог использовать следующее, чтобы мой номер ро показывался в заметках. Это то, что я использовал. Надеюсь, поможет.
// 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);
Shipworks очень требователен к полученным XML-тегам. Вы не можете просто что-то добавить к ответу, потому что он будет выдавать ошибки в программном обеспечении SW при попытке синхронизации с вашим магазином Magento. Вы можете добавить его, используя существующий элемент, который в данный момент не используется. В нашем случае мы не использовали "Подарочные сообщения", которые добавляются к ответу как " Заметки", поэтому я изменил назначение элемента " Заметки", чтобы он содержал что-то еще.
Посмотрите на 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()
на самом деле работает... это просто пример того, что вам нужно сделать