Сохранить
Сохраняем
  • D
    DZOT

    Надо как я понимаю сделать два варианта orderDataRow, mailContactsRow, orderData

    и выбирать в нужном случае в процессоре?

    написал в Поддержка Читать далее
  • D
    DZOT

    А SHK сам по себе может на английском письма-то слать?

    написал в Поддержка Читать далее
  • D
    DZOT

    Добрый день!
    Сайт двуязычный, везде перевод вполне себе работает, но не очень понятно что подпилить чтобы письма со статусами заказа приходили на разном языке в зависимости от контекста (либо контейнера) продукта в заказе.

    Ковырять процессор updateorderstatus? Или может что-то по проще есть?

    написал в Поддержка Читать далее
  • D
    DZOT

    if (end($shk_order)['count'] != 0)
        {
            $_SESSION['shk_order'] = array(0=>end($shk_order));
            $_SESSION['shk_order'][0]['count'] = 1;
        }
    

    не плохо еще проверять вот это

    написал в Недокументированные решения отдельных задач Читать далее
  • D
    DZOT

    если вдруг кому-то как мне надо еще количество одного товара ограничить - то можно добавить 1 строку

        $_SESSION['shk_order'] = array(0=>end($shk_order));
        //сюда!!!
        $_SESSION['shk_order'][0]['count'] = 1;
        $modx->event->output($price_total);
    

    мало ли кто гуглить будет

    написал в Недокументированные решения отдельных задач Читать далее
  • D
    DZOT

    я делал как-то так (мне надо было после заказа обновлять цены и количество товаров из базы).

    массив покупок

        $purchase = array(
        "p_id" => $docId,
        "order_id" => $orderID,
        "name" => $title,  
        "price" => $itemPrice, 
        "count" => $quant,
        "class_name" => modResource // не уверен что надо...
        ); 
        $importPurchases[] = $purchase;
    

    сохраняем в заказ покупки

            $response = $modx->runProcessor('saveorder',
            array(
                'order' => array('purchases' => $importPurchases, 'id' => $orderID),
                'contacts' => $contacts   // контакты потом пересохранял отдельно
            ),
            array('processors_path' => MODX_CORE_PATH . 'components/shopkeeper3/processors/mgr/')
        );

    написал в Поддержка Читать далее
  • D
    DZOT

    Сам себе ответил..
    Можно чутка модифицировать shopkeeper.class.php
    public function savePurchaseData( $purchaseArray = array() ){
    // clear cart
    $this->data = array();
    $this->delivery = array();
    // end clear cart

      //OnSHKAfterClearCart
    

    Работает. Главное при обновлении не забыть про это

    написал в Недокументированные решения отдельных задач Читать далее
  • D
    DZOT

    Добрый день.
    Нужна возможность покупки только одной позиции за раз (по идее последнего товара в корзине), соответственно как ограничить количество товара в корзине одной позицией?
    Т.е. перед добавлением нужно просто затирать содержимое и все.
    Через JS можно вообще топорно в пару строк сделать, но как-то таймаут на очистку корзины не очень хорошо использовать.
    SHK.emptyCart();
    var that = this;
    setTimeout(function(){
    self.toCart(that);
    }, 1000);
    Думаю можно через колбэк по идее сделать, хотя все равно надо допиливать будет немного.

    Но хотелось бы конечно чтобы сервер таки участвовал в обработке.
    По идее можно посадить обработчик на событие OnSHKaddProduct, но как в нем очистить корзину перед тем как добавить новый элемент не могу понять.

    написал в Недокументированные решения отдельных задач Читать далее
  • D
    DZOT

    @Andchir Да я так тоже делал, все равно затирает.
    обошел немного другим способом, не знаю на сколько топорно, но работает
    перед обновлением считываю информацию
    $order = $modx->getObject('shk_order', $docId);
    $contactFirst = $order->get('contacts');

    .... $modx->runProcessor('saveorder', .....

    после сохраняю контактную информацию, но надо заново считать заказ, т.к. он обновился.
    $order = $modx->getObject('shk_order', $docId);
    $order -> set('contacts', $contactFirst);
    $order -> save();

    написал в Недокументированные решения отдельных задач Читать далее