Перейти к содержимому


Фото
- - - - -

Корзина с id в url

cart simpla id url

Best Answer phukortsin , 07.05.2019 - 10:02

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/...t=9,3,8,2,22,18 очистит текущую корзину и сформирует  новую в составе:

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

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

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

 

 


 

Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
21 ответов в теме

#1 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 06.05.2019 - 21:32

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

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

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



#2 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 7 166 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 06.05.2019 - 21:39

Цена вопроса 30$ скайп simplacms, телеграмм t.me/noxter.

#3 phukortsin

phukortsin
  • Фрилансер
  • 880 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 07.05.2019 - 10:02   Best Answer

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/...t=9,3,8,2,22,18 очистит текущую корзину и сформирует  новую в составе:

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

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

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

 

 


 



#4 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 07.05.2019 - 11:06

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/...t=9,3,8,2,22,18 очистит текущую корзину и сформирует  новую в составе:

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

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

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

 

 


 

 

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



#5 phukortsin

phukortsin
  • Фрилансер
  • 880 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 07.05.2019 - 11:35

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



#6 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 07.05.2019 - 11:52

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

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



#7 Kosjak76

Kosjak76
  • Модератор
  • 3 829 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 07.05.2019 - 11:54

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

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

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



#8 phukortsin

phukortsin
  • Фрилансер
  • 880 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 07.05.2019 - 13:46

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

 

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}.  Тогда будет видна ссылка на текущую корзину.

 


Изменено: phukortsin, 07.05.2019 - 15:00


#9 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 07.05.2019 - 13:57

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

 

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}.  Тогда будет видна ссылка на текущую корзину.

 

 

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

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

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



#10 phukortsin

phukortsin
  • Фрилансер
  • 880 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 07.05.2019 - 14:04

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

 

Никак.

 

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

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



#11 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 07.05.2019 - 14:16

Никак.

 

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

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

 

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



#12 phukortsin

phukortsin
  • Фрилансер
  • 880 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 07.05.2019 - 15:01

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



#13 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 07.05.2019 - 19:43

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

 

Cпасибо ЧЕЛОВЕЧИЩЕ!!!!! 



#14 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 08.05.2019 - 19:58

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

 

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



#15 shooroop

shooroop
  • Фрилансер
  • 900 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 08.05.2019 - 20:02

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

 

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



#16 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 08.05.2019 - 20:09

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

 

:huh:  :blink:



#17 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 7 166 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 08.05.2019 - 20:31

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

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

#18 n1c

n1c
  • Пользователь
  • 253 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 09.05.2019 - 08:32

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

 

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



#19 shooroop

shooroop
  • Фрилансер
  • 900 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 09.05.2019 - 08:36

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

 

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



#20 phukortsin

phukortsin
  • Фрилансер
  • 880 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 09.05.2019 - 10:14

По подсказке 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;
 







Также с меткой «cart, simpla, id, url»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых