/multi_cart_ci

Library for multiple cart instances in codeigniter

Primary LanguagePHP

Multicart for codeigniter

This library needs to use the php native sessions, including My_Session.php file in the folder and they are extended libraries correctly. Using sessions remains exactly the same as with native codeigniter.

Installation

Download files hosted on libraries folder and place them in the libraries folder of your project.

Example Usage MultiCart

Create instances

```php $this->load->library("udp_cart");//load library $this->shop1 = new Udp_cart("shop1");//cart1 $this->shop2 = new Udp_cart("shop2");//cart2 $this->shop3 = new Udp_cart("shop3");//cart3 ```

Insert a product

```php $article = array("id" => rand(1,10),"qty" => mt_rand(1,10),"name" => "shoes","price" => "10"); $article["options"] = array("color" => "black", "size" => "4");
$this->shop1->insert($article);
<h3>Update product with options and id 7</h3>
```php
$article = array("id" => 7, "qty" => 1, "name" => "shoes", "price" => 2);
$article["options"] = array("color" => "black", "size" => "4");
$this->shop1->update($article);

Remove a product by rowid

You just need to pass a rowid that there

```php $this->shop1->remove_item("d81d234f1250c815641edb236f705ed5"); ```

Get cart content

```php $this->shop1->get_content(); ```

Get total cost

```php $this->shop1->total_cart(); ```

Get total items

```php $this->shop1->total_articles(); ```

Destroy shop1 instance cart

```php $this->shop1->destroy(); ```

Complete example usage

```php class Multi extends CI_Controller { //load library and create new instances public function __construct() { parent::__construct(); $this->load->library("udp_cart");//load library $this->shop1 = new Udp_cart("shop1");//cart1 $this->shop2 = new Udp_cart("shop2");//cart2 $this->shop3 = new Udp_cart("shop3");//cart3 }
//remove instance shopping cart
public function destroy()
{
    if($this->shop1->destroy())
    {
        var_dump($this->shop1);
        echo "<br />";
        echo "The shopping cart was succesful deleted";
    }
}

//send an instance to a view
public function toView()
{
    $data["shop2"] = $this->shop2;

    $this->load->view("toview", $data);
}

//would see instance name shopping cart?
public function name_instance()
{
    echo $this->shop2->instance_name();
}

//delete a product by rowid
public function remove_producto()
{

    if($this->shop1->remove_item("d81d234f1250c815641edb236f705ed5"))
    {
        echo "<br />";
        echo "The product was succesful deleted";
    }   
}

public function index()
{

    echo "<pre>";

    $this->shop1->insert($this->insert());

    if($cart = $this->shop1->get_content())
    {
        foreach($cart as $product)
        {
            echo "<h2>Article</h2>" . PHP_EOL;

            echo "Id product: " .  $product["id"] . PHP_EOL;

            echo "Unique ID product: " .  $product["rowid"] . PHP_EOL;

            echo "Qty product: " .  $product["qty"] . PHP_EOL;

            echo "Price product: " .  $product["price"] . PHP_EOL;

            echo "Product name: " .  $product["name"] . PHP_EOL;

            //if shopping cart has options... loop
            if($this->shop1->has_options($product["rowid"]))
            {
                foreach($product["options"] as $key => $val) 
                {
                    echo $key . ": " . $val . PHP_EOL;
                }
            }
            else
            {
                echo "Sin opciones" . PHP_EOL;
            }

            //total price sum this articles
            echo "Sum articles: " .  $product["total"] . PHP_EOL . PHP_EOL . PHP_EOL;
        }

        echo "<h1>Total price and articles</h1>" . PHP_EOL;

        echo "Total price: " . $this->shop1->total_cart() . PHP_EOL;

        echo "Total articles: " . $this->shop1->total_articles() . PHP_EOL . PHP_EOL;
    }

    //articles number shopping cart
    echo $this->shop1->total_articles() . PHP_EOL;

    //total price shopping cart
    echo $this->shop1->total_cart() . PHP_EOL;;

}

public function show_carts()
{

    
    var_dump($this->shop1);

    echo "<br /><br />";

    echo $this->shop1->total_articles() . PHP_EOL;

    echo $this->shop1->total_cart() . PHP_EOL . PHP_EOL;

    echo "<br /><br />";

    //nueva instancia

    var_dump($this->shop2);

    echo "<br /><br />";

    echo $this->shop2->total_articles() . PHP_EOL;

    echo $this->shop2->total_cart();

    echo "<br /><br />";


    var_dump($this->shop3);

    echo "<br /><br />";

    echo $this->shop3->total_articles() . PHP_EOL;

    echo $this->shop3->total_cart() . PHP_EOL;

}

private function insert()
{
    $article = array("id" => rand(1,10), "qty" => mt_rand(1,10), "name" => "shoes", "price" => "10");
    $article["options"] = array("color" => "black", "size" => "4");
    return $article;
}

public function update()
{
    
    $article = array("id" => 7, "qty" => 1, "name" => "shoes", "price" => 2);
    $article["options"] = array("color" => "black", "size" => "4");
    
    //if cart is updated show info
    if($this->shop1->update($article))
    {
        var_dump($this->shop1);

        echo $this->shop1->total_articles();

        echo "<br />";

        echo $this->shop1->total_cart();

        echo "<br /><br />";

        echo "The product was succesful updated";
    }   
}

}

## Visit me

* [Visit me](http://uno-de-piera.com)