Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

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

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

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

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

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 шт

 

 


 

Ссылка на сообщение
Поделиться на другие сайты

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 шт

 

 

 

 

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

ставил тоже на базовую, добавил товар в корзину, ссылка не поменялась....осталась также site.com/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);
    }

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

 

Изменено пользователем phukortsin
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

 

 

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

Никак.

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

Никак.

 

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

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

Другое дело

 

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

Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

Подскажите пожалуйста, почему выводит в шаблоне вместо количества = "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 : ''));
    }

 

Изменено пользователем get31
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...