Ejemplo n.º 1
0
 /**
  * Create shipping method
  *
  * @param array $data Shipping method data
  *
  * @return \XLite\Model\Shipping\Method
  */
 public function createShippingMethod($data)
 {
     // Array of allowed fields and flag required/optional
     $fields = $this->getAllowedFields();
     $errorFields = array();
     foreach ($fields as $field => $required) {
         if (isset($data[$field])) {
             $fields[$field] = $data[$field];
         } elseif ($required) {
             $errorFields[] = $field;
         }
     }
     if (!empty($errorFields)) {
         throw new \Exception('createShippingMethod() failed: The following required fields are missed: ' . implode(', ', $errorFields));
     }
     $method = $this->findMethodToUpdate($fields);
     if ($method) {
         $this->update($method, $fields);
     } else {
         $method = new \XLite\Model\Shipping\Method();
         $method->map($fields);
         $method = $this->insert($method);
     }
     return $method;
 }
Ejemplo n.º 2
0
 /**
  * Create shipping method
  *
  * @param array $data Shipping method data
  *
  * @return \XLite\Model\Shipping\Method
  */
 public function createShippingMethod($data)
 {
     // Array of allowed fields and flag required/optional
     $fields = array('processor' => 1, 'carrier' => 1, 'code' => 1, 'enabled' => 0, 'position' => 0, 'name' => 1);
     $errorFields = array();
     foreach ($fields as $field => $required) {
         if (isset($data[$field])) {
             $fields[$field] = $data[$field];
         } elseif ($required) {
             $errorFields[] = $field;
         }
     }
     if (!empty($errorFields)) {
         throw new \Exception('createShippingMethod() failed: The following required fields are missed: ' . implode(', ', $errorFields));
     }
     $method = $this->findOneBy(array('processor' => $fields['processor'], 'code' => $fields['code']));
     if ($method) {
         $this->update($method, $fields);
     } else {
         $method = new \XLite\Model\Shipping\Method();
         $method->map($fields);
         $method = $this->insert($method);
     }
     return $method;
 }