Example #1
0
 public function run()
 {
     $faker = TestCase::faker();
     for ($i = 1; $i <= 10; $i++) {
         $order = Order::create(array('user_id' => TestCase::getFixture('users.jon_snow')->id));
         TestCase::addFixture('orders.order_' . $i, $order);
     }
 }
Example #2
0
 public function testIndex()
 {
     $response = $this->callJSON('GET', '/api/v1/orders');
     $this->assertResponseOk();
     $this->assertResponseJSONValid();
     $json = $this->getJSONContent();
     $this->assertJSONCollectionResponse('orders');
     $this->assertJSONTypes('orders[0]', $this->orderJSONFormat);
     $this->assertEquals(0, $json->response->offset);
     $this->assertEquals(Order::count(), $json->response->total);
 }
Example #3
0
 /**
  * Create a new Order.
  *
  * @example
  *     $order = Subbly\Model\Order;
  *     Subbly::api('subbly.order')->create($order);
  *
  *     Subbly::api('subbly.order')->create(array(
  *         'firstname' => 'Jon',
  *         'lastname'  => 'Snow',
  *     ));
  *
  * @param \Subbly\Model\Order|array $order
  *
  * @return \Subbly\Model\Order
  *
  * @api
  */
 public function create($order, $cart, $shipping, $billing = null)
 {
     if (is_array($order)) {
         $order = new Order($order);
     }
     if ($order instanceof Order) {
         if ($this->fireEvent('creating', array($order)) === false) {
             return false;
         }
         $order->setCaller($this);
         \DB::transaction(function () use($order, $cart, $shipping, $billing) {
             $shipping = \Subbly\Subbly::api('subbly.orderaddress')->create($shipping);
             $order->shipping_address_id = $shipping->id;
             if ($billing) {
                 $billing = \Subbly\Subbly::api('subbly.orderaddress')->create($billing);
                 $order->billing_address_id = $billing->id;
             }
             $order->save();
             foreach ($cart as $item) {
                 // TODO: add product sku, name and description in current locale.
                 // work as cache if product is not available later
                 $product = ['order_id' => $order->id, 'product_id' => $item['id'], 'price' => $item['price'], 'name' => $item['name'], 'sku' => $item['sku'], 'sale_price' => 0, 'quantity' => $item['qty'], 'options' => json_encode($item['options'])];
                 $ret = \Subbly\Subbly::api('subbly.orderproduct')->create($product);
             }
         });
         $this->fireEvent('created', array($order));
         // $order = $this->find($order->id);
         return $order;
     }
     throw new Exception(sprintf(Exception::CANT_CREATE_MODEL, 'Subbly\\Model\\Order', $this->name()));
 }
Example #4
0
 /**
  * Create a new Order
  *
  * @example
  *     $order = Subbly\Model\Order;
  *     Subbly::api('subbly.order')->create($order);
  *
  *     Subbly::api('subbly.order')->create(array(
  *         'firstname' => 'Jon',
  *         'lastname'  => 'Snow',
  *     ));
  *
  * @param \Subbly\Model\Order|array $order
  *
  * @return \Subbly\Model\Order
  *
  * @api
  */
 public function create($order)
 {
     if (is_array($order)) {
         $order = new Order($order);
     }
     if ($order instanceof Order) {
         if ($this->fireEvent('creating', array($order)) === false) {
             return false;
         }
         $order->setCaller($this);
         $order->save();
         $this->fireEvent('created', array($order));
         $order = $this->find($order->id);
         return $order;
     }
     throw new Exception(sprintf(Exception::CANT_CREATE_MODEL, 'Subbly\\Model\\Order', $this->name()));
 }