Example #1
0
 public static function load($thing)
 {
     $product = new Product();
     $product->thing = $thing;
     //members
     $fields_raw = $product->thing->getData();
     $tmpFields = array();
     foreach ($fields_raw as $field) {
         $tmpFields[$field->getKey()] = $field;
     }
     $product->fields = $tmpFields;
     //variants
     $thingVariants = $product->thing->getChildThings("variant");
     $variants = array();
     foreach ($thingVariants as $thingVariant) {
         $variants[] = Variant::load($thingVariant);
     }
     $product->variants = $variants;
     //options
     $thingOptions = $product->thing->getChildThings("option");
     $options = array();
     foreach ($thingOptions as $thingOptions) {
         $options[] = Option::load($thingOptions);
     }
     $product->options = $options;
     return $product;
 }
Example #2
0
 public static function getVariants($product_id, $variant_id = null)
 {
     $obj = new Thing();
     $obj->db->select('thing.id');
     $obj->db->from('thing');
     $obj->db->where('name = "product"');
     $obj->db->where('altid', $product_id);
     $query = $obj->db->get();
     $prodId = -1;
     if (count($query->result()) == 1) {
         foreach ($query->result() as $row) {
             $prodId = $row->id;
         }
     } else {
         throw new InvalidParameterException($product_id . " is not a valid product id");
     }
     //get all variants now that we have right prod id
     $obj->db->select('thing.id');
     $obj->db->from('thing');
     $obj->db->where('name = "variant"');
     $obj->db->where('thing_id', $prodId);
     if (!is_null($variant_id)) {
         $obj->db->where('altid', $variant_id);
     }
     $query = $obj->db->get();
     //get things for products
     $thingVariants = array();
     foreach ($query->result() as $row) {
         array_push($thingVariants, Thing::load($row->id));
     }
     //get products
     $variants = array();
     foreach ($thingVariants as $thingVariants) {
         $variants[] = Variant::load($thingVariants);
     }
     return $variants;
     //encode json
     //$json = array();
     //foreach($variants as $variant)
     //$json[] = $variant->toJson();
     //$json = json_encode($json, JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_QUOT);
     //echo "<pre>";
     //print_r($json);
     //echo "</pre>";
     //return $products;
 }