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


Фотография
- - - - -

Турбо-Страницы Для Интернет-Магазинов


Сообщений в теме: 11

#11 Александр Скобов

Александр Скобов

Отправлено 25 September 2018 - 12:32

GSV,

 

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

Временно оставил ссылку которая перебрасывает на пустую корзину

 

Турбо страница https://yandex.ru/tu...205865745307282


Сообщение отредактировал Александр Скобов: 25 September 2018 - 12:43

  • 0

#12 fiction13

fiction13

Отправлено 07 October 2018 - 19:23

*
Популярное сообщение!

Ссылка у Жени правильная, но нужна доработка.

 

1. Берем и переопределяем элемент цены. Это или jbpricecalc или jbpriceplain. Переопределяем в своем шаблоне JBZoo. Я думаю, что не нужно объяснять, как?

 

2. Открываем файл элемента jbpricecalc.php или jbpriceplain.php.

 

Далее в конструкторе класса добавляем метод addToCart.

/**
 * Class constructor
 */
public function __construct()
{
    parent::__construct();

    // add callbacks
    $this->registerCallback('addToCart');

    $this->isOverlay = true;
}

3. Добавляем новый метод addToCart. Он скопирован с метода добавления товара в корзину аяксом, но немного изменен.

/**
     * Add to cart method
     * @param array $template
     * @param int   $quantity
     * @param array $values
     * @throws ElementJBPriceException
     */
    public function addToCart($template = array('default'), $quantity = 1, $values = array())
    {
        //Get variant by selected values
        $list = $this->getVariantByValues($values);

        $cart = JBCart::getInstance();
        $keys = array_keys($list);
        $key  = (int)end($keys);

        // Set the default option, which we have received, not saved. For correct calculation.
        $this->setDefault($key)->setTemplate($template);

        $list = $this->getList($list, array(
            'values'   => $this->getValues($values),
            'selected' => $values,
            'quantity' => $quantity
        ));

        $session_key = $list->getSessionKey();
        $data = $cart->getItem($session_key);

        if (!empty($data)) {
            $quantity += $data['quantity'];
        }

        // Check if all required params is selected.
        $missing = $this->getMissing($values);

        // Check required.
        if (count($missing)) {
            throw new ElementJBPriceException(JText::sprintf('JBZOO_JBPRICE_OPTIONS_IS_REQUIRED', '"' . implode('", "', $missing) . '"'));
        }

        // Check balance.
        if (!$this->inStock($quantity, $key)) {
            throw new ElementJBPriceException(JText::_('JBZOO_JBPRICE_ITEM_NO_QUANTITY'));
        }

        $cart->addItem($list->getCartData())
             ->updateItem($cart->get($session_key));

        JFactory::getApplication()->redirect($this->app->jbrouter->basket());
    }

4. Ссылка

/?option=com_zoo&controller=default&task=callelement&element=ID_PRICE_ELEMENT&method=addToCart&item_id={offerID}

где ID_PRICE_ELEMENT - id Вашего элемента цены.


  • 6




Click to return to top of page in style!