public function testCreateOrderFromCart()
    {
        $cart_srl = 774;

		try
		{
			$cart = new Cart($cart_srl);
			$order = new Order($cart);
			$order->save();
			$order->saveCartProducts($cart);
		}
		catch(Exception $e)
		{
			$this->fail($e->getMessage());
		}


        $order_repository = new OrderRepository();
        $order = $order_repository->getOrderBySrl($order->order_srl);

        $this->assertEquals(count($cart->getProducts()), count($order->getProducts()));
        $this->assertEquals($cart->getShippingMethodName(), $order->shipping_method);
        $this->assertEquals($cart->getShippingCost(), $order->shipping_cost);
        $this->assertEquals($cart->getPaymentMethodName(), $order->payment_method);
        $this->assertEquals($cart->getTotal(), $order->total);
    }
	/**
	 * Handle all incoming IPN notifications from 2checkout
	 */
	public function notify()
	{
		// Check the sender is 2Checkout
		$key = Context::get('md5_hash');

		$sale_id = Context::get('sale_id');
		$vendor_id = $this->sid;
		$invoice_id = Context::get('invoice_id');
		$secret_word = $this->secret_word;
		$expected_key = strtoupper(md5($sale_id . $vendor_id . $invoice_id . $secret_word));

		if(strtoupper($key) != $expected_key)
		{
			ShopLogger::log("Invalid 2checkout IPN message received - key " . $key . ' ' . print_r($_REQUEST, TRUE));
			return;
		}

		$message_type = Context::get('message_type');
		if($message_type != 'ORDER_CREATED')
		{
			ShopLogger::log("Unsupported IPN 2checkout message received: " . print_r($_REQUEST, TRUE));
			return;
		}

		$cart_srl = Context::get('vendor_order_id');
		$transaction_id = $sale_id; // Hopefully, this is order number

		$order_repository = new OrderRepository();

		// Check if order has already been created for this transaction
		$order = $order_repository->getOrderByTransactionId($transaction_id);
		if(!$order) // If not, create it
		{
			$cart = new Cart($cart_srl);
			$this->createNewOrderAndDeleteExistingCart($cart, $transaction_id);
		}
	}
        public function procShopToolPrintOrder(){

            $orderRepo = new OrderRepository();
            $order = $orderRepo->getOrderBySrl(Context::get('order_srl'));
            $this->printPDFOrder($order);
        }
Exemple #4
0
<?php

/**
 * La classe OrderRepository è solo di esempio e non è implementata.
 */
$order_manager = new OrderManager();
//...
$order = OrderRepository::fetchOrder();
$order_manager->write($order);
//...
$order_number = OrderRepository::latestOrderByUserId($user_id);
$order = $order_manager->read($order_number);
//...
$orders = OrderRepository::findExpiredOrders();
foreach ($orders as $order) {
    $order_manager->remove($order->number);
}
	/**
	 * Given a transaction id, checks if an order was created or not for it
	 * (from an IPN call, for instance)
	 *
	 * @param $transaction_id
	 * @return boolean
	 */
    private function orderCreatedForThisTransaction($transaction_id)
    {
        $orderRepository = new OrderRepository();
        $order = $orderRepository->getOrderByTransactionId($transaction_id);
        return $order;
    }
 /**
  * display shop view order
  * @return Object
  * @throws ShopException
  */
 public function dispShopViewOrder(){
     try{
         $orderRepo = new OrderRepository();
         $order = $orderRepo->getOrderBySrl(Context::get('order_srl'));
         $logged_info = Context::get('logged_info');
         if($order->member_srl != $logged_info->member_srl) throw new ShopException("This order does not belong to you");
     }
     catch (Exception $e) {
         $this->setRedirectUrl(getNotEncodedUrl('', 'act', 'dispShopHome'));
         return new Object(-1, $e->getMessage());
     }
     $this->dispShopToolViewOrder();
     $this->setTemplateFile('view_order');
 }
Exemple #7
0
 /**
  * Send email to user notifying him of the newly created order
  */
 public static function sendNewOrderEmails($order_srl)
 {
     $repo = new OrderRepository();
     $order = $repo->getOrderBySrl($order_srl);
     $shop = new ShopInfo($order->module_srl);
     // Don't send anything if shop email is not configured
     if (!$shop->getShopEmail()) {
         ShopLogger::log("Failed to send order email for order #{$order->order_srl}; Shop email is not configured");
         return;
     }
     self::sendNewOrderMailToCustomer($shop, $order);
     self::sendNewOrderMailToAdministrator($shop, $order);
 }