Exemplo n.º 1
0
 /**
  * Check if can make payment for order
  *
  * @param Mage_Sales_Model_Order $order
  * @return bool
  */
 public function canMakePayment($order)
 {
     if ($order->getPayment() && $order->getPayment()->getMethod() == 'purchaseorder' && $order->canShip()) {
         return false;
     }
     if ($order->getStatus() != 'purchaseorder_pending_payment') {
         return false;
     }
     if (!$order->canInvoice()) {
         return false;
     }
     return true;
 }
 /**
  * Create new shipment for order
  * Inspired by Mage_Sales_Model_Order_Shipment_Api methods
  *
  * @param Mage_Sales_Model_Order $order (it should exist, no control is done into the method)
  * @param string $trackingNumber
  * @param string $trackingTitle
  * @param booleam $email
  * @param string $comment
  * @param boolean $includeComment
  * @return int : shipment real id if creation was ok, else 0
  */
 public function _createTracking($order, $trackingNumber, $trackingTitle, $email, $comment, $includeComment)
 {
     /**
      * Check shipment creation availability
      */
     if (!$order->canShip()) {
         $this->_getSession()->addError($this->__('La commande %s ne peut pas être expédiée, ou a déjà été expédiée.', $order->getRealOrderId()));
         return 0;
     }
     /**
      * Initialize the Mage_Sales_Model_Order_Shipment object
      */
     $convertor = Mage::getModel('sales/convert_order');
     $shipment = $convertor->toShipment($order);
     /**
      * Add the items to send
      */
     foreach ($order->getAllItems() as $orderItem) {
         if (!$orderItem->getQtyToShip()) {
             continue;
         }
         if ($orderItem->getIsVirtual()) {
             continue;
         }
         $item = $convertor->itemToShipmentItem($orderItem);
         $qty = $orderItem->getQtyToShip();
         $item->setQty($qty);
         $shipment->addItem($item);
     }
     //foreach
     $shipment->register();
     /**
      * Tracking number instanciation
      */
     $carrierCode = stristr($order->getShippingMethod(), '_', true);
     if (!$carrierCode) {
         $carrierCode = 'custom';
     }
     /* depot code and shipper code determination */
     switch ($carrierCode) {
         case 'dpdfrrelais':
             $depot_code = Mage::getStoreConfig('carriers/dpdfrrelais/depot');
             $shipper_code = Mage::getStoreConfig('carriers/dpdfrrelais/cargo');
             break;
         case 'dpdfrpredict':
             $depot_code = Mage::getStoreConfig('carriers/dpdfrpredict/depot');
             $shipper_code = Mage::getStoreConfig('carriers/dpdfrpredict/cargo');
             break;
         case 'dpdfrclassic':
             $depot_code = Mage::getStoreConfig('carriers/dpdfrclassic/depot');
             $shipper_code = Mage::getStoreConfig('carriers/dpdfrclassic/cargo');
             break;
     }
     // Le trackingNumber est composé du n° de commande + le code agence + code cargo, intégré en un bloc dans l'URL
     $trackingNumber = $order->getIncrementID() . '_' . $depot_code . $shipper_code;
     $trackingUrl = 'http://www.dpd.fr/tracer_' . $trackingNumber;
     $track = Mage::getModel('sales/order_shipment_track')->setNumber($trackingNumber)->setCarrierCode($carrierCode)->setTitle($trackingTitle)->setUrl($trackingUrl)->setStatus('<a target="_blank" href="' . $trackingUrl . '">' . __('Suivre ce colis DPD France') . '</a>');
     $shipment->addTrack($track);
     /**
      * Comment handling
      */
     $shipment->addComment($comment, $email && $includeComment);
     /**
      * Change order status to Processing
      */
     $shipment->getOrder()->setIsInProcess(true);
     /**
      * If e-mail, set as sent (must be done before shipment object saving)
      */
     if ($email) {
         $shipment->setEmailSent(true);
     }
     try {
         // /**
         // * Save the created shipment and the updated order
         // */
         $shipment->save();
         $shipment->getOrder()->save();
         // /**
         // * Email sending
         // */
         $shipment->sendEmail($email, $includeComment ? $comment : '');
     } catch (Mage_Core_Exception $e) {
         $this->_getSession()->addError($this->__('Erreur pendant la création de l\'expédition %s : %s', $orderId, $e->getMessage()));
         return 0;
     }
     /**
      * Everything was ok : return Shipment real id
      */
     return $shipment->getIncrementId();
 }
Exemplo n.º 3
0
 /**
  * Check order
  *
  * @throws Dhl_Intraship_Model_Autocreate_Exception
  * @param  Mage_Sales_Model_Order                   $order
  * @return Dhl_Intraship_Model_Autocreate           $this
  */
 public function checkOrder(Mage_Sales_Model_Order $order)
 {
     // Check order existing.
     if (!$order->getId()) {
         throw new Dhl_Intraship_Model_Autocreate_Exception('The order no longer exists.');
     }
     // Check shipment is available to create separate from invoice.
     if ($order->getForcedDoShipmentWithInvoice()) {
         throw new Dhl_Intraship_Model_Autocreate_Exception('Cannot do shipment for the order separately from invoice.');
     }
     // Check shipment create availability.
     if (!$order->canShip()) {
         throw new Dhl_Intraship_Model_Autocreate_Exception('Cannot do shipment for the order.');
     }
     return $this;
 }
 /**
  * Create new shipment for order
  * Inspired by Mage_Sales_Model_Order_Shipment_Api methods
  *
  * @param Mage_Sales_Model_Order $order (it should exist, no control is done into the method)
  * @param string $trackingNumber
  * @param string $trackingTitle
  * @param booleam $email
  * @param string $comment
  * @param boolean $includeComment
  * @return int : shipment real id if creation was ok, else 0
  */
 public function _createShipment($order, $invoice, $trackingNumber, $trackingTitle, $email, $comment, $includeComment)
 {
     /**
      * Check shipment creation availability
      */
     if (!$order->canShip()) {
         $this->_getSession()->addError($this->__('Order %s - Invoice %s can not be shipped or has already been shipped, tracking number %s', $order->getIncrementId(), $invoice->getIncrementId(), $trackingNumber));
         return 0;
     }
     /**
      * Initialize the Mage_Sales_Model_Order_Shipment object
      */
     $convertor = Mage::getModel('sales/convert_order');
     $shipment = $convertor->toShipment($order);
     /**
      * Add the items to send
      */
     foreach ($order->getAllItems() as $orderItem) {
         if (!$orderItem->getQtyToShip()) {
             continue;
         }
         if ($orderItem->getIsVirtual()) {
             continue;
         }
         $item = $convertor->itemToShipmentItem($orderItem);
         $qty = $orderItem->getQtyToShip();
         $item->setQty($qty);
         $shipment->addItem($item);
     }
     //foreach
     $shipment->register();
     /**
      * Tracking number instanciation
      */
     $track = Mage::getModel('sales/order_shipment_track')->setNumber($trackingNumber)->setCarrierCode('custom')->setTitle($trackingTitle);
     $shipment->addTrack($track);
     /**
      * Comment handling
      */
     $shipment->addComment($comment, $email && $includeComment);
     /**
      * Change order status to Processing
      */
     //$shipment->getOrder()->setIsInProcess(true);
     /**
      * Change order status to Processing shipped
      */
     $shipment->getOrder()->setState('processing', 'processing_shipped', $this->__('Tracking Number') . ': ' . $trackingNumber, True);
     /**
      * If e-mail, set as sent (must be done before shipment object saving)
      */
     if ($email) {
         $shipment->setEmailSent(true);
     }
     try {
         /**
          * Save the created shipment and the updated order
          */
         $shipment->save();
         $shipment->getOrder()->save();
         /**
          * Email sending
          */
         $shipment->sendEmail($email, $includeComment ? $comment : '');
     } catch (Mage_Core_Exception $e) {
         $this->_getSession()->addError($this->__('Shipment creation error for Order %s : %s', $orderId, $e->getMessage()));
         return 0;
     }
     $this->_getSession()->addSuccess($this->__('Tracking number %s was successfully added to order %s', $trackingNumber, $order->getIncrementId()));
     /**
      * Everything was ok : return Shipment real id
      */
     return $shipment->getIncrementId();
 }
Exemplo n.º 5
0
 function CreateMagentoShopRequestOrder(Mage_Sales_Model_Order $order, $paymentmethod)
 {
     $request = new Byjuno_Cdp_Helper_Api_Classes_ByjunoRequest();
     $request->setClientId(Mage::getStoreConfig('payment/cdp/clientid', Mage::app()->getStore()));
     $request->setUserID(Mage::getStoreConfig('payment/cdp/userid', Mage::app()->getStore()));
     $request->setPassword(Mage::getStoreConfig('payment/cdp/password', Mage::app()->getStore()));
     $request->setVersion("1.00");
     try {
         $request->setRequestEmail(Mage::getStoreConfig('payment/cdp/mail', Mage::app()->getStore()));
     } catch (Exception $e) {
     }
     $b = $order->getCustomerDob();
     if (!empty($b)) {
         $request->setDateOfBirth(Mage::getModel('core/date')->date('Y-m-d', strtotime($b)));
     }
     $g = $order->getCustomerGender();
     if (!empty($g)) {
         if ($g == '1') {
             $request->setGender('1');
         } else {
             if ($g == '2') {
                 $request->setGender('2');
             }
         }
     }
     $requestId = uniqid((string) $order->getBillingAddress()->getId() . "_");
     $request->setRequestId($requestId);
     $reference = $order->getCustomerId();
     if (empty($reference)) {
         $request->setCustomerReference("guest_" . $order->getBillingAddress()->getId());
     } else {
         $request->setCustomerReference($order->getCustomerId());
     }
     $request->setFirstName((string) $order->getBillingAddress()->getFirstname());
     $request->setLastName((string) $order->getBillingAddress()->getLastname());
     $request->setFirstLine(trim((string) $order->getBillingAddress()->getStreetFull()));
     $request->setCountryCode(strtoupper((string) $order->getBillingAddress()->getCountry()));
     $request->setPostCode((string) $order->getBillingAddress()->getPostcode());
     $request->setTown((string) $order->getBillingAddress()->getCity());
     $request->setFax((string) trim($order->getBillingAddress()->getFax(), '-'));
     $request->setLanguage((string) substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2));
     if ($order->getBillingAddress()->getCompany()) {
         $request->setCompanyName1($order->getBillingAddress()->getCompany());
     }
     $request->setTelephonePrivate((string) trim($order->getBillingAddress()->getTelephone(), '-'));
     $request->setEmail((string) $order->getBillingAddress()->getEmail());
     $extraInfo["Name"] = 'ORDERCLOSED';
     $extraInfo["Value"] = 'NO';
     $request->setExtraInfo($extraInfo);
     $extraInfo["Name"] = 'ORDERAMOUNT';
     $extraInfo["Value"] = number_format($order->getGrandTotal(), 2, '.', '');
     $request->setExtraInfo($extraInfo);
     $extraInfo["Name"] = 'ORDERCURRENCY';
     $extraInfo["Value"] = $order->getBaseCurrencyCode();
     $request->setExtraInfo($extraInfo);
     /* shipping information */
     if ($order->canShip()) {
         $extraInfo["Name"] = 'DELIVERY_FIRSTNAME';
         $extraInfo["Value"] = $order->getShippingAddress()->getFirstname();
         $request->setExtraInfo($extraInfo);
         $extraInfo["Name"] = 'DELIVERY_LASTNAME';
         $extraInfo["Value"] = $order->getShippingAddress()->getLastname();
         $request->setExtraInfo($extraInfo);
         $extraInfo["Name"] = 'DELIVERY_FIRSTLINE';
         $extraInfo["Value"] = trim($order->getShippingAddress()->getStreetFull());
         $request->setExtraInfo($extraInfo);
         $extraInfo["Name"] = 'DELIVERY_HOUSENUMBER';
         $extraInfo["Value"] = '';
         $request->setExtraInfo($extraInfo);
         $extraInfo["Name"] = 'DELIVERY_COUNTRYCODE';
         $extraInfo["Value"] = strtoupper($order->getShippingAddress()->getCountry());
         $request->setExtraInfo($extraInfo);
         $extraInfo["Name"] = 'DELIVERY_POSTCODE';
         $extraInfo["Value"] = $order->getShippingAddress()->getPostcode();
         $request->setExtraInfo($extraInfo);
         $extraInfo["Name"] = 'DELIVERY_TOWN';
         $extraInfo["Value"] = $order->getShippingAddress()->getCity();
         $request->setExtraInfo($extraInfo);
         if ($order->getShippingAddress()->getCompany() != '' && Mage::getStoreConfig('payment/api/businesstobusiness', Mage::app()->getStore()) == 'enable') {
             $extraInfo["Name"] = 'DELIVERY_COMPANYNAME';
             $extraInfo["Value"] = $order->getShippingAddress()->getCompany();
             $request->setExtraInfo($extraInfo);
         }
     }
     $extraInfo["Name"] = 'PP_TRANSACTION_NUMBER';
     $extraInfo["Value"] = $requestId;
     $request->setExtraInfo($extraInfo);
     $extraInfo["Name"] = 'ORDERID';
     $extraInfo["Value"] = $order->getIncrementId();
     $request->setExtraInfo($extraInfo);
     $extraInfo["Name"] = 'PAYMENTMETHOD';
     $extraInfo["Value"] = 'BYJUNO-INVOICE';
     $request->setExtraInfo($extraInfo);
     $extraInfo["Name"] = 'CONNECTIVTY_MODULE';
     $extraInfo["Value"] = 'Byjuno Magento module 1.0.0';
     $request->setExtraInfo($extraInfo);
     return $request;
 }