Jump to content

Recommended Posts

Добрый вечер форумчане.

Стала потребность сделать отправку корзины (с товаром) любому человеку, а этот человек уже оформляет заказ, а также может удалять товары из корзины.

Как такое сделать? либо цена вопроса?

Link to post
Share on other sites
  • Solution

1. В view/CartView после

 

  public function __construct()
  {
    parent::__construct();

вставить

  
    if($cartcontent = $this->request->get('cartcontent'))
    {
        $this->cart->empty_cart();
        $vs=explode(',', $cartcontent);
        for($i=0;$i<count($vs); $i+=2)
        $this->cart->add_item($vs[$i], $vs[$i+1]);
        header('location: '.$this->config->root_url.'/cart/');
    }

 

2. После этого  ссылка вида  http://site.ru/cart/?cartcontent=9,3,8,2,22,18 очистит текущую корзину и сформирует  новую в составе:

вариант 9 в кол-ве 3 шт

вариант 8 в кол-ве 2 шт

вариант 22 в кол-ве 18 шт

 

 


 

Link to post
Share on other sites

1. В view/CartView после

 

  public function __construct()

  {

    parent::__construct();

 

вставить

  

    if($cartcontent = $this->request->get('cartcontent'))

    {

        $this->cart->empty_cart();

        $vs=explode(',', $cartcontent);

        for($i=0;$i<count($vs); $i+=2)

        $this->cart->add_item($vs[$i], $vs[$i+1]);

        header('location: '.$this->config->root_url.'/cart/');

    }

 

2. После этого  ссылка вида  http://site.ru/cart/?cartcontent=9,3,8,2,22,18 очистит текущую корзину и сформирует  новую в составе:

вариант 9 в кол-ве 3 шт

вариант 8 в кол-ве 2 шт

вариант 22 в кол-ве 18 шт

 

 

 

 

 

не работает ваш метод

Link to post
Share on other sites

У меня на обычной Simpla очень даже работает...

ставил тоже на базовую, добавил товар в корзину, ссылка не поменялась....осталась также site.com/cart

Link to post
Share on other sites

Она и не будет меняться

Это не готовое решение, это скорее намек

Данное решение реализует ТОЛЬКО отображение корзины ИЗ ссылки, а не добавление товаров в урл

Link to post
Share on other sites

Если надо, чтобы ссылка формировалась автоматически, то

 

3. В view/CartView после

 

      // Удаление товара из корзины
    if($delete_variant_id = intval($this->request->get('delete_variant')))
    {
      $this->cart->delete_item($delete_variant_id);
      if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)
            header('location: '.$this->config->root_url.'/cart/');
    }

 

вставить


    if(!empty($_SESSION['shopping_cart']))
    {
        $par='';
        foreach($_SESSION['shopping_cart'] as $variant_id => $amount){
            if($par)
                $par.=',';
            $par.=$variant_id.','.$amount;
        }
        
        $this->design->assign('cartref', $this->config->root_url.'/cart?cartcontent='.$par);
    }

4. В шаблоне (например,  корзины)  вставить в подходящем месте  {$cartref}.  Тогда будет видна ссылка на текущую корзину.

 

Edited by phukortsin
Link to post
Share on other sites

Если надо, чтобы ссылка формировалась автоматически, то

 

3. В view/CartView после

 

      // Удаление товара из корзины

    if($delete_variant_id = intval($this->request->get('delete_variant')))

    {

      $this->cart->delete_item($delete_variant_id);

      if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)

            header('location: '.$this->config->root_url.'/cart/');

    }

 

вставить

 

    if(!empty($_SESSION['shopping_cart']))

    {

        $par='';

        foreach($_SESSION['shopping_cart'] as $variant_id => $amount){

            if($par)

                $par.=',';

            $par.=$variant_id.','.$amount;

        }

        

        $this->design->assign('cartref', $this->config->root_url.'/cart?cartcontents='.$par);

    }

 

4. В шаблоне (например,  корзины)  вставить в подходящем месте  {$cartref}.  Тогда будет видна ссылка на текущую корзину.

 

 

 

огонь. ссылка работает.

а как сохранить добавленные товары в корзине чтобы передать ссылку другому человеку?

то есть другой человек открывает эту ссылку у себя на ПК и видит уже эти добавленные товары и продолжает оформлять заказ?

Link to post
Share on other sites

а как сохранить добавленные товары в корзине чтобы передать ссылку другому человеку?

 

Никак.

 

Если надо передать ссылку, то передавайте как есть. Ничего и сохранять не надо.

Тот, кто откроет эту ссылку,  увидит сразу эти товары в корзине и сможет продолжить как ему заблагорассудится...

Link to post
Share on other sites

Никак.

 

Если надо передать ссылку, то передавайте как есть. Ничего и сохранять не надо.

Тот, кто откроет эту ссылку,  увидит сразу эти товары в корзине и сможет продолжить как ему заблагорассудится...

 

открываю эту ссылку в другом браузере, пишется - Ваша корзина пуста  :( 

Link to post
Share on other sites

Ошибочка была в п.3 - исправил.

 

А как сделать, чтобы залогиненный пользователь скинул ссылку второму человеку, второй человек оформляет заказ и нужно чтобы в админке заказ шел этому залогиненному пользователю, но с данными на отправку второго?

Link to post
Share on other sites

А как сделать, чтобы залогиненный пользователь скинул ссылку второму человеку, второй человек оформляет заказ и нужно чтобы в админке заказ шел этому залогиненному пользователю, но с данными на отправку второго?

 

передавать в ссылке логин первого пользователя.

Link to post
Share on other sites

передавать в ссылке логин первого пользователя.

Очень умно передавать в ссылке чужой логин.

Ты бы ещё пароль предложил передавать.

Link to post
Share on other sites

Очень умно передавать в ссылке чужой логин.

Ты бы ещё пароль предложил передавать.

 

нужно передать id пользователя?

Link to post
Share on other sites

По подсказке shooroop, чуть изменить пп.1,3 и добавить п. 5

1. В view/CartView после

  public function __construct()
  {
    parent::__construct();

вставить
 
    if($cartcontent = $this->request->get('cartcontent'))
    {
        $_SESSION['uid']=$this->request->get('uid', 'integer');
        $this->cart->empty_cart();
        $vs=explode(',', $cartcontent);
        for($i=0;$i<count($vs); $i+=2)
        $this->cart->add_item($vs[$i], $vs[$i+1]);
        header('location: '.$this->config->root_url.'/cart/');
        
    }

3. В view/CartView после

      // Удаление товара из корзины
    if($delete_variant_id = intval($this->request->get('delete_variant')))
    {
      $this->cart->delete_item($delete_variant_id);
      if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)
            header('location: '.$this->config->root_url.'/cart/');
    }

вставить

    if(!empty($_SESSION['shopping_cart']))
    {
        $par='';
        foreach($_SESSION['shopping_cart'] as $variant_id => $amount){
            if($par)
                $par.=',';
            $par.=$variant_id.','.$amount;
        }
        $this->design->assign('cartref', $this->config->root_url.'/cart?cartcontent='.$par.($this->user ? '&uid='.$this->user->id : ''));
    }

5. В view/CartView вставить

        if($_SESSION['uid']){
            $order->user_id = $_SESSION['uid'];
        }
        else    

перед

        if(!empty($this->user->id))
            $order->user_id = $this->user->id;
 

Link to post
Share on other sites

и пароль можно он же в md5 )

 

Другое дело

 

Совершенно бессмысленно отправлять пароль в md5 - с него для скрипта на стороне получателя никакого толку. Идентифицировать пользователя по нему нельзя - потому как разные пользователи могут иметь одинаковые пароли...

Link to post
Share on other sites
  • 1 year later...

Подскажите пожалуйста, почему выводит в шаблоне вместо количества = "Array"?

Получается: site.com/cart?cartlike=12686,Array

    if(!empty($this->shopping_cart))
    {
        $par='';
        foreach($this->shopping_cart as $variant_id => $amount){
            if($par)
                $par.=',';
            $par.=$variant_id.','.$amount;
        }
        $this->design->assign('cartref', $this->config->root_url.'/cart?cartlike='.$par.($this->user ? '&uid='.$this->user->id : ''));
    }

 

Edited by get31
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...