/** * Adds shipment with specified tracking number * * @param Mage_Sales_Model_Order_Shipment $shipment * @param Mage_Sales_Model_Order_Shipment_Track $track */ private function _addShipmentWithTrack(Mage_Sales_Model_Order_Shipment $shipment, Mage_Sales_Model_Order_Shipment_Track $track = null) { $mageCarrierCode = $this->_getCarrierCodeFromOrder($shipment->getOrder()); $carrierCode = $this->_getConfig()->getCarrierCode($mageCarrierCode); $otherCarrierName = $carrierCode == Mage_GoogleTrustedStore_Model_Config::CARRIER_CODE_OTHER ? $this->_getConfig()->getOtherCarrierName($mageCarrierCode) : ''; $this->_addRow(array($shipment->getOrder()->getIncrementId(), trim($track ? $track->getNumber() : ''), $carrierCode, $otherCarrierName, $shipment->getCreatedAtDate()->toString('yyyy-MM-dd'))); }
/** * Get html for the PGaddress * * @return string */ public function getPgAddressHtml() { $res = array(); $pgAddress = Mage::helper('tig_myparcel')->getPgAddress($this->_shipment->getOrder()); if ($pgAddress) { $res = array($pgAddress->getCompany(), implode(' ', $pgAddress->getStreet()), $pgAddress->getPostcode() . ' ' . $pgAddress->getCity() . ' (' . $pgAddress->getCountry() . ')'); } return empty($res) ? '' : '<p>' . implode('<br/>', $res) . '</p>'; }
/** * True is returned if we transport the shipment in a single package. * * @param Mage_Sales_Model_Order_Shipment $shipment * * @return boolean */ public function mustShipInOneParcel(Mage_Sales_Model_Order_Shipment $shipment) { $carrier = $shipment->getOrder()->getShippingCarrier(); if ($carrier instanceof Zitec_PackedShipment_Model_Carrier_Interface) { $shippingMethod = $shipment->getOrder()->getShippingMethod(); return $carrier->shippingMethodRequiresShipmentsOfOnlyOneParcel($shippingMethod); } return true; }
/** * @param Mage_Sales_Model_Order_Shipment $shipment * @return array */ public function buildMap(Mage_Sales_Model_Order_Shipment $shipment) { $map = array('packingslip_id_label' => $this->getSalesHelper()->__('Packingslip # '), 'order_id_label' => $this->getSalesHelper()->__('Order # '), 'order_date_label' => $this->getSalesHelper()->__('Order Date: '), 'billing_address_label' => $this->getSalesHelper()->__('Sold to:'), 'shipping_address_label' => $this->getSalesHelper()->__('Ship to:'), 'payment_method_label' => $this->getSalesHelper()->__('Payment Method:'), 'shipping_method_label' => $this->getSalesHelper()->__('Shipping Method:'), 'products_qty_label' => $this->getSalesHelper()->__('Qty'), 'products_label' => $this->getSalesHelper()->__('Products'), 'products_sku_label' => $this->getSalesHelper()->__('SKU')); $order = $shipment->getOrder(); $billingAddress = $order->getBillingAddress(); $map['packingslip_id'] = $shipment->getIncrementId(); $map['order_id'] = Mage::getStoreConfigFlag(Mage_Sales_Model_Order_Pdf_Shipment::XML_PATH_SALES_PDF_SHIPMENT_PUT_ORDER_ID, $order->getStoreId()) ? $order->getRealOrderId() : 'N/A'; $map['order_date'] = $this->getCoreHelper()->formatDate($order->getCreatedAtStoreDate(), 'medium', false); $map['billing_name'] = $billingAddress->getFirstname() . ' ' . $billingAddress->getLastname(); $map['billing_street'] = $billingAddress->getStreetFull(); $map['billing_city'] = $billingAddress->getCity(); $map['billing_zip'] = $billingAddress->getPostcode(); $map['billing_country'] = $billingAddress->getCountryModel()->getIso2Code(); $map['billing_phone'] = $billingAddress->getTelephone(); $shippingAddress = $order->getShippingAddress(); $map['shipping_name'] = $shippingAddress->getFirstname() . ' ' . $shippingAddress->getLastname(); $map['shipping_street'] = $shippingAddress->getStreetFull(); $map['shipping_city'] = $shippingAddress->getCity(); $map['shipping_zip'] = $shippingAddress->getPostcode(); $map['shipping_country'] = $shippingAddress->getCountry(); $map['shipping_phone'] = $shippingAddress->getTelephone(); $map['payment_method'] = $paymentInfo = $this->getPaymentHelper()->getInfoBlock($order->getPayment())->setIsSecureMode(true)->toHtml(); $map['shipping_method'] = $order->getShippingDescription(); $map['shipping_charges'] = '(' . $this->getSalesHelper()->__('Total Shipping Charges') . ' ' . $order->formatPriceTxt($order->getShippingAmount()) . ')'; $map['products_data'] = ''; foreach ($shipment->getAllItems() as $item) { if ($item->getOrderItem()->getParentItem()) { continue; } $map['products_data'] .= $this->drawItem($item, $order); } return $map; }
public function generateShipmentArray(Mage_Sales_Model_Order_Shipment $shipment) { $address = $shipment->getShippingAddress(); $trackingMethods = $shipment->getAllTracks(); $primaryTrack = count($trackingMethods) ? $trackingMethods[0] : false; $array = array('@context' => 'http://schema.org', '@type' => 'ParcelDelivery', 'deliveryAddress' => array('@type' => 'PostalAddress', 'streetAddress' => $address->getStreetFull(), 'addressLocality' => $address->getCity(), 'addressRegion' => $address->getRegionCode(), 'addressCountry' => $address->getCountry(), 'postalCode' => $address->getPostcode()), 'partOfOrder' => $this->generateOrderArray($shipment->getOrder()), "expectedArrivalUntil" => date("c", time() + 60 * 60 * 24 * 365.25)); if (count($trackingMethods)) { $array['carrier'] = $primaryTrack->getTitle(); $array['trackingNumber'] = $primaryTrack->getNumber(); $array['trackingUrl'] = $this->helper('shipping')->getTrackingPopUpUrlByTrackId($primaryTrack->getId()); } return $array; }
/** * Save shipment * * @param Mage_Sales_Model_Order_Shipment $shipment * @param array $data * @return bool */ public function saveShipment($shipment, $data) { $result = false; $carrierCode = $shipment->getOrder()->getShippingCarrier()->getCarrierCode(); switch (true) { case Mage::getModel('shippingcore/carrier_aramex')->isUsed($carrierCode): $result = Mage::getModel('shippingcore/carrier_aramex')->saveShipment($shipment, $data); break; case Mage::getModel('shippingcore/carrier_skynet')->isUsed($carrierCode): $result = Mage::getModel('shippingcore/carrier_skynet')->saveShipment($shipment, $data); break; } return $result; }
/** * Send vendor comment to store owner * * @param Mage_Sales_Model_Order_Shipment $shipment * @param string $comment */ public function sendVendorComment($shipment, $comment) { $order = $shipment->getOrder(); $store = $order->getStore(); $to = $store->getConfig('udropship/admin/vendor_comments_receiver'); $subject = $store->getConfig('udropship/admin/vendor_comments_subject'); $template = $store->getConfig('udropship/admin/vendor_comments_template'); $vendor = $this->getVendor($shipment->getUdropshipVendor()); $ahlp = Mage::getModel('adminhtml/url'); if ($subject && $template && $vendor->getId()) { $toEmail = $store->getConfig('trans_email/ident_' . $to . '/email'); $toName = $store->getConfig('trans_email/ident_' . $to . '/name'); $data = array('vendor_name' => $vendor->getVendorName(), 'order_id' => $order->getIncrementId(), 'shipment_id' => $shipment->getIncrementId(), 'vendor_url' => $ahlp->getUrl('udropship/adminhtml_vendor/edit', array('id' => $vendor->getId())), 'order_url' => $ahlp->getUrl('adminhtml/sales_order/view', array('order_id' => $order->getId())), 'shipment_url' => $ahlp->getUrl('adminhtml/sales_order_shipment/view', array('shipment_id' => $shipment->getId(), 'order_id' => $order->getId())), 'comment' => $comment); if ($this->isUdpoActive() && ($po = Mage::helper('udpo')->getShipmentPo($shipment))) { $data['po_id'] = $po->getIncrementId(); $data['po_url'] = $ahlp->getUrl('udpoadmin/order_po/view', array('udpo_id' => $po->getId(), 'order_id' => $order->getId())); $template = preg_replace('/{{isPoAvailable}}(.*?){{\\/isPoAvailable}}/s', '\\1', $template); } else { $template = preg_replace('/{{isPoAvailable}}.*?{{\\/isPoAvailable}}/s', '', $template); } foreach ($data as $k => $v) { $subject = str_replace('{{' . $k . '}}', $v, $subject); $template = str_replace('{{' . $k . '}}', $v, $template); } $mail = Mage::getModel('core/email')->setFromEmail($vendor->getEmail())->setFromName($vendor->getVendorName())->setToEmail($toEmail)->setToName($toName)->setSubject($subject)->setBody($template)->send(); //mail('"'.$toName.'" <'.$toEmail.'>', $subject, $template, 'From: "'.$vendor->getVendorName().'" <'.$vendor->getEmail().'>'); } Mage::helper('udropship')->addShipmentComment($shipment, $this->__($vendor->getVendorName() . ': ' . $comment)); $shipment->getCommentsCollection()->save(); return $this; }
protected function _createShipmentInfo(Mage_Sales_Model_Order_Shipment $shipment) { $result = array('shipmentId' => $shipment->getIncrementId(), 'shippingFees' => array('amount' => '0', 'code' => Mage::app()->getStore()->getBaseCurrencyCode()), 'discountAmount' => null, 'discounts' => null, 'additionalCost' => null, 'packagingHandlingCost' => null, 'surcharge' => null, 'trackingDetails' => $this->_createTrackingInfo($shipment->getAllTracks()), 'shippingMethod' => $shipment->getOrder()->getShippingDescription(), 'deliveryWindow' => null, 'shippingWindow' => null, 'shippingMessage' => null); return $result; }
/** * Saves the Shipment changes in the Order * * @param $shipment Mage_Sales_Model_Order_Shipment * @param $order Mage_Sales_Model_Order * @param $customerEmailComments string */ protected function _saveShipment(Mage_Sales_Model_Order_Shipment $shipment, Mage_Sales_Model_Order $order, $customerEmailComments = '') { $shipment->getOrder()->setIsInProcess(true); $transactionSave = Mage::getModel('core/resource_transaction')->addObject($shipment)->addObject($order)->save(); $emailSentStatus = $shipment->getData('email_sent'); if (!is_null($customerEmail) && !$emailSentStatus) { $shipment->sendEmail(true, $customerEmailComments); $shipment->setEmailSent(true); } return $this; }
public static function generateDocuments(Mage_Sales_Model_Order_Shipment $shipment) { $result = array(); if ($shipment->getDcOrderId() && Mage::getStoreConfig('dc_charge_extension/dccharge/create-documents')) { $helper = Mage::helper('dccharge'); $params = array(); $params['calculation_id'] = $shipment->getDcOrderId(); $params['output_currency'] = $shipment->getOrder()->getOrderCurrencyCode(); $params['seller_first_name'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-first-name'); $params['seller_last_name'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-last-name'); $params['seller_country'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-country'); $params['seller_address_line_1'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-address-line'); $params['seller_city'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-city'); $params['seller_zip'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-postcode'); $params['seller_phone'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-phone'); $params['shipment_invoice_no'] = $shipment->getIncrementId(); $params['shipment_date'] = $shipment->getCreatedAt(); $params['shipment_number_parcels'] = 1; $params['shipment_total_actual_weight'] = 0; foreach ($shipment->getAllItems() as $item) { $orderItem = $item->getOrderItem(); $product = Mage::getModel('catalog/product')->load($orderItem->getProductId()); if ($orderItem->getParentItemId() || !$orderItem->getQuoteItemId() || $product->isVirtual()) { continue; } $itemWeightInKG = 0; if ($item->getWeight()) { $weigthUnit = Mage::getStoreConfig('dc_charge_extension/dccharge/weight-unit'); $weight = Mage::getStoreConfig('dc_charge_extension/dccharge/allow-override-products-weight') ? Mage::getStoreConfig('dc_charge_extension/dccharge/overridden-products-weight') : $item->getWeight(); if ($weigthUnit == 'lb') { $itemWeightInKG = round($weight * 0.45359237, 2); } else { $itemWeightInKG = $weight; } } $params['shipment_total_actual_weight'] += $itemWeightInKG * $item->getQty(); } $params['shipment_currency_sale'] = $shipment->getOrder()->getOrderCurrencyCode(); if ($shipment->getDeliveryDutyType() == Dutycalculator_Charge_Helper_Data::DC_DELIVERY_TYPE_DDP) { $params['shipment_incoterms'] = 'DDP'; } elseif ($shipment->getDeliveryDutyType() == Dutycalculator_Charge_Helper_Data::DC_DELIVERY_TYPE_DDU) { $params['shipment_incoterms'] = 'DAP'; } else { $params['shipment_incoterms'] = ''; } $shippingAddress = $shipment->getShippingAddress(); $billingAddress = $shipment->getBillingAddress(); $params['shipto_first_name'] = $shippingAddress->getFirstname(); $params['shipto_last_name'] = $shippingAddress->getLastname(); $params['shipto_address_line_1'] = $shippingAddress->getStreet(-1); $params['shipto_city'] = $shippingAddress->getCity(); $params['shipto_zip'] = $shippingAddress->getPostcode(); $params['shipto_country'] = $shippingAddress->getCountryId(); $params['shipto_phone'] = $shippingAddress->getTelephone(); $params['soldto_first_name'] = $billingAddress->getFirstname(); $params['soldto_last_name'] = $billingAddress->getLastname(); $params['soldto_address_line_1'] = $billingAddress->getStreet(-1); $params['soldto_city'] = $billingAddress->getCity(); $params['soldto_zip'] = $billingAddress->getPostcode(); $params['soldto_country'] = $billingAddress->getCountryId(); $params['soldto_phone'] = $billingAddress->getTelephone(); $params['print_first_name'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-first-name'); $params['print_last_name'] = Mage::getStoreConfig('dc_charge_extension/dccharge/seller-last-name'); $params['print_date'] = date('Y-m-d'); $rawXml = $helper->sendRequest('documents', $params); try { if (stripos($rawXml, '<?xml') === false) { throw new Exception($rawXml); } $answer = new SimpleXMLElement($rawXml); $commercialInvoice = current($answer->xpath('commercial-invoice')); $packingList = current($answer->xpath('packing-list')); $result['commercial_invoice_url'] = (string) $commercialInvoice->url; $result['packing_list_url'] = (string) $packingList->url; } catch (Exception $ex) { Mage::logException($ex); } } return $result; }
/** * @param Mage_Sales_Model_Order_Shipment $shipment * * @return String containing HTML for shipment items and tracking numbers */ protected function _filterShipmentItems(Mage_Sales_Model_Order_Shipment $shipment) { $order = $shipment->getOrder(); $layout = Mage::getSingleton('core/layout'); /* @var $items Mage_Sales_Block_Items_Abstract */ $items = $layout->createBlock('sales/order_email_shipment_items', 'items'); $items->setTemplate('email/order/shipment/items.phtml'); $items->setOrder($order); $items->setShipment($shipment); // Setup templates to use for products $items->addItemRender('default', 'sales/order_email_items_order_default', 'email/order/items/shipment/default.phtml'); $items->addItemRender('grouped', 'sales/order_email_items_order_grouped', 'email/order/items/shipment/default.phtml'); $items->addItemRender('bundle', 'bundle/sales_order_items_renderer', 'bundle/email/order/items/shipment/default.phtml'); // When emailing from the admin, we need to ensure that we're using templates from the frontend Mage::getDesign()->setArea('frontend'); return $items->toHtml(); }
/** * Save shipment and order in one transaction * @param Mage_Sales_Model_Order_Shipment $shipment */ protected function _saveShipment($shipment) { $shipment->getOrder()->setIsInProcess(true); $transactionSave = Mage::getModel('core/resource_transaction')->addObject($shipment)->addObject($shipment->getOrder())->save(); return $this; }
/** * Get default weight. * * @param Mage_Sales_Model_Order_Shipment $shipment * @return float $weight */ public function getDefaultWeight(Mage_Sales_Model_Order_Shipment $shipment) { $weight = 0; if (true === $this->getConfig()->useProductWeightAsDefault()) { /* @var $item Mage_Sales_Model_Order_Item */ foreach ($shipment->getOrder()->getItemsCollection() as $item) { if (false === Mage::helper('intraship')->isAllowedProductTypeForWeightCalculation($item->getProductType())) { continue; } $weight += Mage::helper('intraship')->convertWeight((double) $item->getWeight() * (double) $item->getQtyOrdered()); } } else { $weight = $this->getConfig()->getWeightDefault($shipment->getShippingAddress()->getCountryId()); } return (double) $weight; }
/** * * @param Mage_Sales_Model_Order_Shipment $shipment * * @return boolean */ public function isCancelledWithDpd(Mage_Sales_Model_Order_Shipment $shipment) { return $this->isShippingMethodDpd($shipment->getOrder()->getShippingMethod()) && !$shipment->getShippingLabel(); }
/** * prepare item information * * @param Mage_Sales_Model_Order_Shipment $mOrderShipment */ private function _prepareItems($mOrderShipment) { $key = 0; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vProd'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vNF'] = '0'; /** * assign shipping values to items */ $nItems = count($mOrderShipment->getOrder()->getAllItems()); if ($mOrderShipment->getOrder()->getShippingAmount()) { $vFrete = (string) number_format($mOrderShipment->getOrder()->getShippingAmount(), 2, '.', ''); $vFreteParcial = number_format($vFrete / $nItems, 2, '.', ''); for ($i = 0; $i < $nItems; $i++) { $arrFreteParcial[$i] = $vFreteParcial; } if ($vFreteParcial * $nItems < $vFrete) { $arrFreteParcial[0] += $vFrete - $vFreteParcial * $nItems; } if ($vFreteParcial * $nItems > $vFrete) { $arrFreteParcial[0] += $vFreteParcial * $nItems - $vFrete; } /** * format elements */ for ($i = 0; $i < $nItems; $i++) { $arrFreteParcial[$i] = number_format($arrFreteParcial[$i], 2, '.', ''); } } foreach ($mOrderShipment->getAllItems() as $_shipmentItem) { /** * load order item */ $mOrderItem = Mage::getModel('sales/order_item')->load($_shipmentItem->getOrderItemId()); $mProduct = Mage::getModel('catalog/product')->load($mOrderItem->getProductId()); $cKey = $key; $aOrderItem[$cKey]['@nItem'] = ++$key; $aOrderItem[$cKey]['nfe.prod']['nfe.cProd'] = $_shipmentItem->getSku(); $aOrderItem[$cKey]['nfe.prod']['nfe.cEAN'] = ''; $aOrderItem[$cKey]['nfe.prod']['nfe.cEANTrib'] = ''; $aOrderItem[$cKey]['nfe.prod']['nfe.xProd'] = trim($_shipmentItem->getName()); $productPrice = $_shipmentItem->getPrice(); $dDescTotal = 0; if ($mOrderItem->getDiscountAmount() > 0) { $dDescTotal = number_format($mOrderItem->getDiscountAmount() * ($_shipmentItem->getQty() / $mOrderItem->getQtyOrdered()), 2, '.', ''); } $aOrderItem[$cKey]['nfe.prod']['nfe.vDesc'] = $dDescTotal; $diff = $mOrderShipment->getOrder()->getTotalPaid() - $mOrderShipment->getOrder()->getGrandTotal(); $percent = $diff / $mOrderShipment->getOrder()->getGrandTotal(); $productPrice = $productPrice * (1 + $percent); $aOrderItem[$cKey]['nfe.prod']['nfe.vProd'] = (string) number_format($productPrice * $_shipmentItem->getQty(), 2, '.', ''); $aOrderItem[$cKey]['nfe.prod']['nfe.indTot'] = '1'; /** * check CFOP code */ $aOrderItem[$cKey]['nfe.prod']['nfe.CFOP'] = $this->getCustomerUf($mOrderShipment) == Mage::getStoreConfig('easynfe_nfe/emit/cuf') ? '5102' : '6108'; $aOrderItem[$cKey]['nfe.prod']['nfe.NCM'] = (string) ($_shipmentItem->getNfeNcm() ? $_shipmentItem->getNfeNcm() : $mProduct->getNfeNcm()); $aOrderItem[$cKey]['nfe.prod']['nfe.uCom'] = (string) ($_shipmentItem->getNfeUcom() ? $_shipmentItem->getNfeUcom() : $mProduct->getNfeUcom()); $aOrderItem[$cKey]['nfe.prod']['nfe.qCom'] = (int) $_shipmentItem->getQty(); $aOrderItem[$cKey]['nfe.prod']['nfe.vUnCom'] = (string) number_format($productPrice, 2, '.', ''); $aOrderItem[$cKey]['nfe.prod']['nfe.uTrib'] = (string) ($_shipmentItem->getNfeUcom() ? $_shipmentItem->getNfeUcom() : $mProduct->getNfeUcom()); $aOrderItem[$cKey]['nfe.prod']['nfe.qTrib'] = (int) $_shipmentItem->getQty(); $aOrderItem[$cKey]['nfe.prod']['nfe.vUnTrib'] = (string) number_format($productPrice, 2, '.', ''); $vFrete = 0; if ($arrFreteParcial[$cKey] > 0) { $vFrete = $arrFreteParcial[$cKey] * ($_shipmentItem->getQty() / $mOrderItem->getQtyOrdered()) * (1 + $percent); $aOrderItem[$cKey]['nfe.prod']['nfe.vFrete'] = (string) number_format($vFrete, 2, '.', ''); } $vTotal = number_format($productPrice * $_shipmentItem->getQty(), 2, '.', ''); /** * ICMS */ $aOrderItem[$cKey]['nfe.imposto']['nfe.ICMS']['nfe.ICMSSN102']['nfe.orig'] = (string) ($_shipmentItem->getNfeOrig() ? $_shipmentItem->getNfeOrig() : '0'); $aOrderItem[$cKey]['nfe.imposto']['nfe.ICMS']['nfe.ICMSSN102']['nfe.CSOSN'] = '102'; /** * COFINS CST 99 */ $aOrderItem[$cKey]['nfe.imposto']['nfe.COFINS']['nfe.COFINSOutr']['nfe.CST'] = '99'; $aOrderItem[$cKey]['nfe.imposto']['nfe.COFINS']['nfe.COFINSOutr']['nfe.vBC'] = '0'; $aOrderItem[$cKey]['nfe.imposto']['nfe.COFINS']['nfe.COFINSOutr']['nfe.pCOFINS'] = '0'; $aOrderItem[$cKey]['nfe.imposto']['nfe.COFINS']['nfe.COFINSOutr']['nfe.vCOFINS'] = '0'; /** * PIS CST 99 */ $aOrderItem[$cKey]['nfe.imposto']['nfe.PIS']['nfe.PISOutr']['nfe.CST'] = '99'; $aOrderItem[$cKey]['nfe.imposto']['nfe.PIS']['nfe.PISOutr']['nfe.vBC'] = '0'; $aOrderItem[$cKey]['nfe.imposto']['nfe.PIS']['nfe.PISOutr']['nfe.pPIS'] = '0'; $aOrderItem[$cKey]['nfe.imposto']['nfe.PIS']['nfe.PISOutr']['nfe.vPIS'] = '0'; /** * sum items */ $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vProd'] += $vTotal; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vNF'] += $vTotal + $vFrete - $dDescTotal; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vDesc'] += $dDescTotal; if ($vFrete > 0) { $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vFrete'] += $vFrete; } } $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vProd'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vProd'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vNF'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vNF'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vFrete'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vFrete'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vDesc'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vDesc'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vICMS'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vICMSDeson'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vBC'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vPIS'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vCOFINS'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vST'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vBCST'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vSeg'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vII'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vIPI'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vOutro'] = '0'; return $aOrderItem; }
/** * @param Mage_Sales_Model_Order_Shipment $shipment * * @return String containing HTML for shipment items and tracking numbers */ protected function _filterShipmentItems(Mage_Sales_Model_Order_Shipment $shipment) { $order = $shipment->getOrder(); $layout = Mage::getSingleton('core/layout'); /* @var $items Mage_Sales_Block_Items_Abstract */ $items = $layout->createBlock('sales/order_email_shipment_items', 'items'); $items->setTemplate('email/order/shipment/items.phtml'); $items->setOrder($order); $items->setShipment($shipment); // Setup templates to use for products $items->addItemRender('default', 'sales/order_email_items_order_default', 'email/order/items/shipment/default.phtml'); $items->addItemRender('grouped', 'sales/order_email_items_order_grouped', 'email/order/items/shipment/default.phtml'); $items->addItemRender('bundle', 'bundle/sales_order_items_renderer', 'bundle/email/order/items/shipment/default.phtml'); $this->_respectDesignTheme(); return $items->toHtml(); }
public function sendUpdateShipmentEmail(SM_Vendors_Model_Order $vendorOrder, Mage_Sales_Model_Order_Shipment $shipment, $notifyCustomer = true, $comment = '') { $data = array(); $data['order'] = $shipment->getOrder(); $data['can_send_method'] = 'canSendShipmentCommentEmail'; $data['template_id'] = self::SHIPMENT_EMAIL_UPDATE_TEMPLATE_ID; $data['email_identity'] = self::SHIPMENT_XML_PATH_UPDATE_EMAIL_IDENTITY; $data['notify_customer'] = $notifyCustomer; $data['target_object'] = $shipment; $data['template_params'] = array('comment' => $comment, 'shipment' => $shipment); $result = $this->_sendMail($vendorOrder, $data, self::TYPE_UPDATE); if (!$result) { Mage::log("[smvendors][sendUpdateShipmentEmail] Error when sending email. Data=\n"); Mage::log(print_r($data, true)); } return $result; }
/** * Send order shipment to Rakuten Checkout * * @param Mage_Sales_Model_Order_Shipment $shipment * @return bool * @throws Exception|Mage_Core_Exception */ public function sendShipment($shipment) { // Create Rakuten Checkout Send Order Shipment XML request $xml = new SimpleXMLElement("<?xml version='1.0' encoding='UTF-8' ?><tradoria_order_shipment />"); $merchantAuth = $xml->addChild('merchant_authentication'); $merchantAuth->addChild('project_id', $this->_projectId); $merchantAuth->addChild('api_key', $this->_apiKey); /** @var $order Mage_Sales_Model_Order */ $order = $shipment->getOrder(); $xml->addChild('order_no', $order->getExtOrderId()); $carrierTrackingId = $xml->addChild('carrier_tracking_id'); $carrierTrackingUrl = $xml->addChild('carrier_tracking_url'); $carrierTrackingCode = $xml->addChild('carrier_tracking_code'); if ($tracks = $shipment->getAllTracks()) { /** @var $track Mage_Sales_Model_Order_Shipment_Track */ $track = array_shift($tracks); // Multiple tracking codes for one shipment are supported by Magento $this->_addCDATA($carrierTrackingId, $track->getCarrierCode()); $this->_addCDATA($carrierTrackingCode, $track->getNumber()); } $request = $xml->asXML(); $response = $this->sendRequest($request, 'shipment'); try { $response = new SimpleXMLElement($response); if ($response->success != 'true') { throw new Mage_Core_Exception((string) $response->message, (int) $response->code); } else { if ((string) $response->invoice_number != '') { $comment = Mage::helper('rakuten')->__('Rakuten Invoice No: %s', '<strong>' . (string) $response->invoice_number . '</strong><br />'); $shipment->addComment($comment); $order->addStatusHistoryComment($comment); } } } catch (Mage_Core_Exception $e) { throw $e; } catch (Exception $e) { Mage::logException($e); throw $e; } return true; }
/** * prepare item information * * @param Mage_Sales_Model_Order_Shipment $mOrderShipment */ private function _prepareItems($mOrderShipment) { $key = 0; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vBC'] = 0; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vProd'] = 0; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vICMS'] = 0; $mShipping = $mOrderShipment->getOrder()->getShippingAddress(); /** * assign shipping values to items */ $nItems = count($mOrderShipment->getOrder()->getAllItems()); if ($mOrderShipment->getOrder()->getShippingAmount()) { $vFrete = (string) number_format($mOrderShipment->getOrder()->getShippingAmount(), 2, '.', ''); $vFreteParcial = number_format($vFrete / $nItems, 2, '.', ''); for ($i = 0; $i < $nItems; $i++) { $arrFreteParcial[$i] = $vFreteParcial; } if ($vFreteParcial * $nItems < $vFrete) { $arrFreteParcial[0] += $vFrete - $vFreteParcial * $nItems; } if ($vFreteParcial * $nItems > $vFrete) { $arrFreteParcial[0] += $vFreteParcial * $nItems - $vFrete; } /** * format elements */ for ($i = 0; $i < $nItems; $i++) { $arrFreteParcial[$i] = number_format($arrFreteParcial[$i], 2, '.', ''); } } foreach ($mOrderShipment->getAllItems() as $_shipmentItem) { /** * load order item */ $mOrderItem = Mage::getModel('sales/order_item')->load($_shipmentItem->getOrderItemId()); $mProduct = Mage::getModel('catalog/product')->load($mOrderItem->getProductId()); $cKey = $key; $aOrderItem[$cKey]['@nItem'] = ++$key; $aOrderItem[$cKey]['nfe.prod']['nfe.cProd'] = $_shipmentItem->getSku(); $aOrderItem[$cKey]['nfe.prod']['nfe.cEAN'] = ''; $aOrderItem[$cKey]['nfe.prod']['nfe.cEANTrib'] = ''; $aOrderItem[$cKey]['nfe.prod']['nfe.xProd'] = trim($_shipmentItem->getName()); $productPrice = $_shipmentItem->getPrice(); $dDescTotal = 0; if ($mOrderItem->getDiscountAmount() > 0) { $dDescTotal = number_format($mOrderItem->getDiscountAmount() * ($_shipmentItem->getQty() / $mOrderItem->getQtyOrdered()), 2, '.', ''); $productPrice -= $dDescTotal / $_shipmentItem->getQty(); } $diff = $mOrderShipment->getOrder()->getTotalPaid() - $mOrderShipment->getOrder()->getGrandTotal(); $percent = $diff / $mOrderShipment->getOrder()->getGrandTotal(); $productPrice = $productPrice * (1 + $percent); unset($aOrderItem[$cKey]['nfe.prod']['nfe.vDesc']); $aOrderItem[$cKey]['nfe.prod']['nfe.vProd'] = (string) number_format($productPrice * $_shipmentItem->getQty(), 2, '.', ''); $aOrderItem[$cKey]['nfe.prod']['nfe.indTot'] = '1'; $sCustomerUf = Mage::getModel('easynfe_nfe/directory_country_region')->load($mShipping->getRegionId(), 'region_id')->getId(); /** * check CFOP code */ $aOrderItem[$cKey]['nfe.prod']['nfe.CFOP'] = $sCustomerUf == Mage::getStoreConfig('easynfe_nfe/emit/cuf') ? '5102' : '6108'; $aOrderItem[$cKey]['nfe.prod']['nfe.NCM'] = (string) ($_shipmentItem->getNfeNcm() ? $_shipmentItem->getNfeNcm() : $mProduct->getNfeNcm()); $aOrderItem[$cKey]['nfe.prod']['nfe.uCom'] = (string) ($_shipmentItem->getNfeUcom() ? $_shipmentItem->getNfeUcom() : $mProduct->getNfeUcom()); $aOrderItem[$cKey]['nfe.prod']['nfe.qCom'] = (int) $_shipmentItem->getQty(); $aOrderItem[$cKey]['nfe.prod']['nfe.vUnCom'] = (string) number_format($productPrice, 2, '.', ''); $aOrderItem[$cKey]['nfe.prod']['nfe.uTrib'] = (string) ($_shipmentItem->getNfeUcom() ? $_shipmentItem->getNfeUcom() : $mProduct->getNfeUcom()); $aOrderItem[$cKey]['nfe.prod']['nfe.qTrib'] = (int) $_shipmentItem->getQty(); $aOrderItem[$cKey]['nfe.prod']['nfe.vUnTrib'] = (string) number_format($productPrice, 2, '.', ''); $vFrete = 0; if ($arrFreteParcial[$cKey] > 0) { $vFrete = $arrFreteParcial[$cKey] * ($_shipmentItem->getQty() / $mOrderItem->getQtyOrdered()) * (1 + $percent); $aOrderItem[$cKey]['nfe.prod']['nfe.vFrete'] = (string) number_format($vFrete, 2, '.', ''); } $vTotal = number_format($productPrice * $_shipmentItem->getQty(), 2, '.', ''); /** * ICMS 00 */ $aOrderItem[$cKey]['nfe.imposto']['nfe.ICMS']['nfe.ICMS00']['nfe.orig'] = (string) ($_shipmentItem->getNfeOrig() ? $_shipmentItem->getNfeOrig() : '0'); $aOrderItem[$cKey]['nfe.imposto']['nfe.ICMS']['nfe.ICMS00']['nfe.CST'] = '00'; $aOrderItem[$cKey]['nfe.imposto']['nfe.ICMS']['nfe.ICMS00']['nfe.modBC'] = '0'; //a definir $aOrderItem[$cKey]['nfe.imposto']['nfe.ICMS']['nfe.ICMS00']['nfe.vBC'] = (string) number_format($vTotal + $vFrete, 2, '.', ''); /** * ICMS fixed 18% */ $aOrderItem[$cKey]['nfe.imposto']['nfe.ICMS']['nfe.ICMS00']['nfe.pICMS'] = '18'; $aOrderItem[$cKey]['nfe.imposto']['nfe.ICMS']['nfe.ICMS00']['nfe.vICMS'] = (string) number_format(($vTotal + $vFrete) * 0.18, 2, '.', ''); /** * COFINS CST 01 - 7.60% */ $pAliquotaCofins = '7.60'; $aOrderItem[$cKey]['nfe.imposto']['nfe.COFINS']['nfe.COFINSAliq']['nfe.CST'] = '01'; $aOrderItem[$cKey]['nfe.imposto']['nfe.COFINS']['nfe.COFINSAliq']['nfe.vBC'] = (string) number_format($vTotal + $vFrete, 2, '.', ''); $aOrderItem[$cKey]['nfe.imposto']['nfe.COFINS']['nfe.COFINSAliq']['nfe.pCOFINS'] = $pAliquotaCofins; $aOrderItem[$cKey]['nfe.imposto']['nfe.COFINS']['nfe.COFINSAliq']['nfe.vCOFINS'] = (string) number_format(($vTotal + $vFrete) * ($pAliquotaCofins / 100), 2, '.', ''); /** * PIS CST 01 - 1.65% */ $pAliquotaPis = '1.65'; $aOrderItem[$cKey]['nfe.imposto']['nfe.PIS']['nfe.PISAliq']['nfe.CST'] = '01'; $aOrderItem[$cKey]['nfe.imposto']['nfe.PIS']['nfe.PISAliq']['nfe.vBC'] = (string) number_format($vTotal + $vFrete, 2, '.', ''); $aOrderItem[$cKey]['nfe.imposto']['nfe.PIS']['nfe.PISAliq']['nfe.pPIS'] = $pAliquotaPis; $aOrderItem[$cKey]['nfe.imposto']['nfe.PIS']['nfe.PISAliq']['nfe.vPIS'] = (string) number_format(($vTotal + $vFrete) * ($pAliquotaPis / 100), 2, '.', ''); /** * sum items */ $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vProd'] += $vTotal; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vICMS'] += ($vTotal + $vFrete) * 0.18; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vBC'] += $vTotal + $vFrete; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vNF'] += $vTotal + $vFrete; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vPIS'] += ($vTotal + $vFrete) * ($pAliquotaPis / 100); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vCOFINS'] += ($vTotal + $vFrete) * ($pAliquotaCofins / 100); if ($vFrete > 0) { $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vFrete'] += $vFrete; } /*if( $dTotal ){ $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vDesc'] += $dTotal; }*/ } $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vProd'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vProd'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vICMS'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vICMS'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vBC'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vBC'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vNF'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vNF'], 2, '.', ''); // if( $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vFrete'] ) $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vFrete'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vFrete'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vPIS'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vPIS'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vCOFINS'] = (string) number_format($aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vCOFINS'], 2, '.', ''); $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vST'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vBCST'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vSeg'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vDesc'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vII'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vIPI'] = '0'; $aOrderItem['nfe.total']['nfe.ICMSTot']['nfe.vOutro'] = '0'; return $aOrderItem; }
/** * Save shipment and order in one transaction * * @param Mage_Sales_Model_Order_Shipment $shipment * @return Mage_Adminhtml_Sales_Order_ShipmentController */ protected function _saveShipment($shipment) { $shipment->getOrder()->setIsInProcess(true); $transactionSave = Mage::getModel('core/resource_transaction')->addObject($shipment)->addObject($shipment->getOrder()); // HiepHM Process vendor order if ($vendorOrder = Mage::registry('vendor_order')) { /* @var $vendorOrder SM_Vendors_Model_Order */ $vendorOrder->registerShipment($shipment); $transactionSave->addObject($vendorOrder); } $transactionSave->save(); return $this; }
/** * Prepare and do request to shipment * * @param Mage_Sales_Model_Order_Shipment $orderShipment * @return Varien_Object */ public function requestToShipment(Mage_Sales_Model_Order_Shipment $orderShipment) { $admin = Mage::getSingleton('admin/session')->getUser(); $order = $orderShipment->getOrder(); $address = $order->getShippingAddress(); $selectedShipMethod = $this->_mapShipMethod($order->getShippingMethod(true), $order->getShippingCarrier(), $address); $shipmentStoreId = $orderShipment->getStoreId(); $shipmentCarrier = Mage::getModel('wsaendicia/carrier_endicia'); $shippingMethod = $this->_getShipmentCarrier($selectedShipMethod, $shipmentCarrier->getCarrierCode()); $baseCurrencyCode = Mage::app()->getStore($shipmentStoreId)->getBaseCurrencyCode(); if (!$shipmentCarrier) { Mage::throwException('Invalid carrier: ' . $shippingMethod->getCarrierCode()); } $shipperRegionCode = Mage::getStoreConfig(self::XML_PATH_STORE_REGION_ID, $shipmentStoreId); if (is_numeric($shipperRegionCode)) { $shipperRegionCode = Mage::getModel('directory/region')->load($shipperRegionCode)->getCode(); } $recipientRegionCode = Mage::getModel('directory/region')->load($address->getRegionId())->getCode(); $originStreet1 = Mage::getStoreConfig(self::XML_PATH_STORE_ADDRESS1, $shipmentStoreId); $originStreet2 = Mage::getStoreConfig(self::XML_PATH_STORE_ADDRESS2, $shipmentStoreId); $storeInfo = new Varien_Object(Mage::getStoreConfig('general/store_information', $shipmentStoreId)); if (!$admin->getFirstname() || !$admin->getLastname() || !$storeInfo->getName() || !$storeInfo->getPhone() || !$originStreet1 || !Mage::getStoreConfig(self::XML_PATH_STORE_CITY, $shipmentStoreId) || !$shipperRegionCode || !Mage::getStoreConfig(self::XML_PATH_STORE_ZIP, $shipmentStoreId) || !Mage::getStoreConfig(self::XML_PATH_STORE_COUNTRY_ID, $shipmentStoreId)) { Mage::throwException(Mage::helper('sales')->__('Insufficient information to create shipping label(s). Please verify your Store Information and Shipping Settings.')); } /** @var $request Mage_Shipping_Model_Shipment_Request */ $request = Mage::getModel('shipping/shipment_request'); $request->setOrderShipment($orderShipment); $request->setShipperContactPersonName($admin->getName()); $request->setShipperContactPersonFirstName($admin->getFirstname()); $request->setShipperContactPersonLastName($admin->getLastname()); $request->setShipperContactCompanyName($storeInfo->getName()); $request->setShipperContactPhoneNumber($storeInfo->getPhone()); $request->setShipperEmail($admin->getEmail()); $request->setShipperAddressStreet(trim($originStreet1 . ' ' . $originStreet2)); $request->setShipperAddressStreet1($originStreet1); $request->setShipperAddressStreet2($originStreet2); $request->setShipperAddressCity(Mage::getStoreConfig(self::XML_PATH_STORE_CITY, $shipmentStoreId)); $request->setShipperAddressStateOrProvinceCode($shipperRegionCode); $request->setShipperAddressPostalCode(Mage::getStoreConfig(self::XML_PATH_STORE_ZIP, $shipmentStoreId)); $request->setShipperAddressCountryCode(Mage::getStoreConfig(self::XML_PATH_STORE_COUNTRY_ID, $shipmentStoreId)); $request->setRecipientContactPersonName(trim($address->getFirstname() . ' ' . $address->getLastname())); $request->setRecipientContactPersonFirstName($address->getFirstname()); $request->setRecipientContactPersonLastName($address->getLastname()); $request->setRecipientContactCompanyName($address->getCompany()); $request->setRecipientContactPhoneNumber($address->getTelephone()); $request->setRecipientEmail($address->getEmail()); $request->setRecipientAddressStreet(trim($address->getStreet1() . ' ' . $address->getStreet2())); $request->setRecipientAddressStreet1($address->getStreet1()); $request->setRecipientAddressStreet2($address->getStreet2()); $request->setRecipientAddressCity($address->getCity()); $request->setRecipientAddressStateOrProvinceCode($address->getRegionCode()); $request->setRecipientAddressRegionCode($recipientRegionCode); $request->setRecipientAddressPostalCode($address->getPostcode()); $request->setRecipientAddressCountryCode($address->getCountryId()); $request->setShippingMethod($shippingMethod->getMethod()); $request->setPackageWeight($order->getWeight()); $request->setPackages($orderShipment->getPackages()); $request->setBaseCurrencyCode($baseCurrencyCode); $request->setStoreId($shipmentStoreId); return $shipmentCarrier->requestToShipment($request); }
/** * Create shipping label for specific shipment with validation. * * @param Mage_Sales_Model_Order_Shipment $shipment * @return bool */ protected function _createShippingLabel(Mage_Sales_Model_Order_Shipment $shipment) { if (!$shipment) { return false; } $carrier = $shipment->getOrder()->getShippingCarrier(); if (!$carrier->isShippingLabelsAvailable()) { return false; } $shipment->setPackages($this->getRequest()->getParam('packages')); $response = Mage::getModel('shipping/shipping')->requestToShipment($shipment); if ($response->hasErrors()) { Mage::throwException($response->getErrors()); } if (!$response->hasInfo()) { return false; } $labelsContent = array(); $trackingNumbers = array(); $info = $response->getInfo(); foreach ($info as $inf) { if (!empty($inf['tracking_number']) && !empty($inf['label_content'])) { $labelsContent[] = $inf['label_content']; $trackingNumbers[] = $inf['tracking_number']; } } $outputPdf = $this->_combineLabelsPdf($labelsContent); $shipment->setShippingLabel($outputPdf->render()); $carrierCode = $carrier->getCarrierCode(); $carrierTitle = Mage::getStoreConfig('carriers/' . $carrierCode . '/title', $shipment->getStoreId()); if ($trackingNumbers) { foreach ($trackingNumbers as $trackingNumber) { $track = Mage::getModel('sales/order_shipment_track')->setNumber($trackingNumber)->setCarrierCode($carrierCode)->setTitle($carrierTitle); $shipment->addTrack($track); } } return true; }
/** * @param Mage_Sales_Model_Order_Shipment $shipment * * @return bool */ protected function _canSaveDpdShipment(Mage_Sales_Model_Order_Shipment $shipment) { if (!$this->_isOrderShipmentNew || $this->_isProcessed) { return false; } if (!$this->_getHelper()->moduleIsActive($shipment->getOrder()->getStore())) { return false; } if (!$this->_getHelper()->isShippingMethodDpd($shipment->getOrder()->getShippingMethod())) { return false; } return true; }
/** * Add Shipment Information * * @param Mage_Sales_Model_Order_Shipment $data * @return Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf_Page * @throws Exception */ public function addShipmentInformation($data) { $this->_page->saveGS(); $this->_page->setFont($this->_fontNormal, 6); $refCode = $data->getOrder()->getIncrementId(); if (!$refCode) { throw new InvalidArgumentException(Mage::helper('usa')->__('Reference code is missing')); } $this->_page->drawText('Ref Code: ' . Mage::helper('usa')->__('Order #%s', $refCode), $this->_x(8), $this->_y(224)); $this->_page->restoreGS(); return $this; }
/** * Confirm crating of shipment * * @param Mage_Sales_Model_Order_Shipment $shipment * @return Mage_AmazonPayments_Model_Api_Cba */ public function confirmShipment($shipment) { $items = array(); foreach ($shipment->getAllItems() as $item) { /* @var $item Mage_Sales_Model_Order_Shipment_Item */ if ($item->getOrderItem()->getParentItemId()) { continue; } $items[] = array('id' => $item->getOrderItem()->getExtOrderItemId(), 'qty' => $item->getQty()); } $carrierName = ''; $shippingMethod = ''; $trackNumber = ''; /** * Magento track numbers is not connected with items. * Get only first track number */ foreach ($shipment->getAllTracks() as $track) { $carrierName = $track->getTitle(); $trackNumber = $track->getNumber(); break; } if (preg_match("/\\((.+)\\)/", $shipment->getOrder()->getShippingDescription(), $_result)) { $shippingMethod = $_result[1]; } $this->getDocumentApi()->confirmShipment($shipment->getOrder()->getExtOrderId(), $carrierName, $shippingMethod, $items, $trackNumber); $shipment->addComment(Mage::helper('amazonpayments')->__('Shipment was created with Checkout by Amazon.')); return $this; }
/** * Saving shipment and order in one transaction. * @param Mage_Sales_Model_Order_Shipment $shipment * @param string $incrementId * @return self */ protected function _saveShipment(Mage_Sales_Model_Order_Shipment $shipment, $incrementId) { $order = $shipment->getOrder(); $order->setIsInProcess(true); $transactionSave = Mage::getModel('core/resource_transaction')->addObject($shipment)->addObject($order); try { $transactionSave->save(); } catch (Exception $e) { $logData = ['increment_id' => $incrementId]; $logMessage = 'An error occurred saving shipment confirmation to order id ({increment_id}). See exception log for details.'; $this->_logger->error($logMessage, $this->_context->getMetaData(__CLASS__, $logData)); $this->_logger->logException($e, $this->_context->getMetaData(__CLASS__, [], $e)); } return $this; }
/** * @param Mage_Sales_Model_Order_Shipment $shipment * * @return Bronto_Common_Model_Email_Template_Filter */ protected function _filterShipment(Mage_Sales_Model_Order_Shipment $shipment) { $this->setStoreId($shipment->getOrder()->getStoreId()); if (!in_array('shipment', $this->_filteredObjects)) { $index = 1; $lineItems = Mage::helper('bronto_common/item')->getFlatItems($shipment); foreach ($lineItems as $item) { $this->_filterOrderItem($item, $index); $index++; } $createdAt = $shipment->getCreatedAtStoreDate(); if (empty($createdAt)) { // unset the blank string to force current timestamp $createdAt = null; } // Add Related Content $this->_items = $shipment->getAllItems(); $this->setField('shipmentIncrementId', $shipment->getIncrementId()); $this->setField('shipmentCreatedAt', Mage::helper('core')->formatDate($createdAt, 'long', true)); // TODO: needed? $this->setField('shipmentItems', $this->_filterShipmentItems($shipment)); $this->setField('shipmentTracking', $this->_getShipmentTrackingNumber($shipment, $shipment->getOrder())); $this->_filteredObjects[] = 'shipment'; } return $this; }