Jump to content


Photo
* * * * * 3 votes

Отправляем СМС при успешном оформлении заказа

рецепт смс jbzoo 2.0+ api

53 replies to this topic

#11 solohub

solohub
  • JBZoo User (rus)
  • User rate: 0.5
  • posts: 218
  • topics: 44

Posted 24 September 2014 - 18:25

вы не убрали 'source' => 'SellFlowers',


мы пока написали плагин по интеграции смс при регистрации, пишем компонент по смс информированию, скоро будет готов, через него будет проще все делать


  • 0

#12 webstudia

webstudia
  • JBZoo User (rus)
  • User rate: 0.2
  • posts: 104
  • topics: 21

Posted 24 September 2014 - 18:27

вы не убрали 'source' => 'SellFlowers',


мы пока написали плагин по интеграции смс при регистрации, пишем компонент по смс информированию, скоро будет готов, через него будет проще

все сделал сейчас, убрал вторую подпись. но тишина... ноль эмоций...

просто вторую подпись не заметил


А когда примерно будет этот плагин готов  по уведомлениям? :)


Edited by webstudia, 24 September 2014 - 18:27.

  • 0

#13 solohub

solohub
  • JBZoo User (rus)
  • User rate: 0.5
  • posts: 218
  • topics: 44

Posted 24 September 2014 - 18:29

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


  • 0

#14 webstudia

webstudia
  • JBZoo User (rus)
  • User rate: 0.2
  • posts: 104
  • topics: 21

Posted 24 September 2014 - 18:31

ааа... понятно. да. было бы круто :)

Спасибо за помощь. хоть ничего не отправляет... подожду компонента вашего :)


  • 0

#15 solohub

solohub
  • JBZoo User (rus)
  • User rate: 0.5
  • posts: 218
  • topics: 44

Posted 24 September 2014 - 18:33

вставьте код для отправки после // to email from order field


т.е. перед последне }


  • 0

#16 webstudia

webstudia
  • JBZoo User (rus)
  • User rate: 0.2
  • posts: 104
  • topics: 21

Posted 24 September 2014 - 18:36

вставьте код для отправки после // to email from order field


т.е. перед последне }

перенёс куда сказали. не приходят смс и ошибок нигде не вижу

код jbevent.basket.php

<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');


/**
 * Class JBEventBasket
 */
class JBEventBasket extends JBEvent
{

    /**
     * On after order saved
     * @param AppEvent $event
     */
    public static function saved($event)
    {
        $app    = self::app();
        $params = $event->getParameters();

        $appParams = $params['appParams'];
        $item      = $params['item'];
        $subject   = JText::_('JBZOO_CART_NEW_ORDER_CREATE');

        if ((int)$appParams->get('notificaction-create', 1)) {

            // to admin
            $adminEmail = $appParams->get('global.jbzoo_cart_config.admin-email');
            if ($adminEmail) {
                $adminLayout = $appParams->get('global.jbzoo_cart_config.email-admin-layout');
                $app->jbemail->sendByItem($adminEmail, $subject, $item, $adminLayout);
            }

            // to user email from profile
            $userEmail = JFactory::getUser()->email;
            if ($userEmail) {
                $userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout');
                $app->jbemail->sendByItem($userEmail, $subject, $item, $userLayout);
            }

            // to email from order field
            $emailElement = $appParams->get('global.jbzoo_cart_config.element-useremail');
            if ($element = $item->getElement($emailElement)) {
                $data = $element->data();
                if (isset($data[0]['value']) && !empty($data[0]['value'])) {
                    $userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout');
                    $app->jbemail->sendByItem($data[0]['value'], $subject, $item, $userLayout);
                }
            }
/*****************SMS*****************************************************/
$totalPrice = $item->getElement('1af7e792-bcff-4a6c-9bdb-dd5023b0251a')->getTotalPrice();

        if ((int)$appParams->get('global.jbzoo_cart_config.notificaction-sms', 1)) {
            jimport('sms.transport');
            $smsApi = new Transport();

            $adminPhones        = $app->jbstring->parseLines($appParams->get('global.jbzoo_cart_config.admin-phones'));
            $userNameElementId  = $appParams->get('global.jbzoo_cart_config.element-username');
            $userPhoneElementId = $appParams->get('global.jbzoo_cart_config.element-userphone');

            if ($adminPhones && $usernameElement = $item->getElement($userNameElementId)) {
                $userNameData = $usernameElement->data();

                if (isset($userNameData[0]['value']) && !empty($userNameData[0]['value'])) {
                    $adminMessage = 'Поступил новый заказ от ' . $userNameData[0]['value'] .
                        '. На сумму ' . $app->jbmoney->toFormat($totalPrice, $appParams->get('currency', 'RUB'));

                    $adminSend = $smsApi->send(array(
                        'text'   => $adminMessage,
                        'source' => '',
                        'use_alfasource' => 1
                    ), $adminPhones);

                    $userPhoneData = $item->getElement($userPhoneElementId)->data();

                    if (isset($userPhoneData[0]['value']) && !empty($userPhoneData[0]['value'])) {
                        $userMessage = $userNameData[0]['value'] . ', заказ на сумму ' .
                            $app->jbmoney->toFormat($totalPrice, $appParams->get('currency', 'RUB')) . ' успешно оформлен.';

                        $userSend = $smsApi->send(array(
                            'text'   => $userMessage,
                            'source' => '',
                            'use_alfasource' => 1
                        ), $userPhoneData[0]['value']);
                    }
                }

            }
        }

/**********************************************************************/
        }
        



        if ((int)$appParams->get('global.jbzoo_cart_config.is_advance')) {

            // reduce the balance in the item
            $basketElements = $item->getElementsByType('jbbasketitems');
            if (!empty($basketElements)) {
                reset($basketElements);
                $jbbasket = current($basketElements);
                $items    = $jbbasket->getOrderItems();

                foreach ($items as $item) {
                    $good = $app->table->item->get($item['itemId']);
                    if (!$good) {
                        continue;
                    }

                    $jbPrices = $good->getElementsByType('jbpriceadvance');
                    foreach ($jbPrices as $jbPrice) {
                        if (isset($item['hash'])) {
                            $jbPrice->balanceReduce($item['hash'], $item['quantity']);
                        }
                    }
                }
            }
        }
    }

    /**
     * On before order save
     * @param AppEvent $event
     */ 
    public static function beforeSave($event)
    {
    }

}

Edited by webstudia, 24 September 2014 - 18:36.

  • 0

#17 solohub

solohub
  • JBZoo User (rus)
  • User rate: 0.5
  • posts: 218
  • topics: 44

Posted 24 September 2014 - 18:38

а файл config настроен?


  • 0

#18 webstudia

webstudia
  • JBZoo User (rus)
  • User rate: 0.2
  • posts: 104
  • topics: 21

Posted 24 September 2014 - 18:44

Всё что тут

ErzoQuZ.png

находится в config.php

xuEUg4r.png


Пожалуйста, исходя из моего jbevent.basket.php

Сделайте правильный. и сюда дайте, а я его сделаю. а то чёт туплю малость...

<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');


/**
 * Class JBEventBasket
 */
class JBEventBasket extends JBEvent
{

    /**
     * On after order saved
     * @param AppEvent $event
     */
    public static function saved($event)
    {
        $app    = self::app();
        $params = $event->getParameters();

        $appParams = $params['appParams'];
        $item      = $params['item'];
        $subject   = JText::_('JBZOO_CART_NEW_ORDER_CREATE');

        if ((int)$appParams->get('notificaction-create', 1)) {

            // to admin
            $adminEmail = $appParams->get('global.jbzoo_cart_config.admin-email');
            if ($adminEmail) {
                $adminLayout = $appParams->get('global.jbzoo_cart_config.email-admin-layout');
                $app->jbemail->sendByItem($adminEmail, $subject, $item, $adminLayout);
            }

            // to user email from profile
            $userEmail = JFactory::getUser()->email;
            if ($userEmail) {
                $userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout');
                $app->jbemail->sendByItem($userEmail, $subject, $item, $userLayout);
            }

            // to email from order field
            $emailElement = $appParams->get('global.jbzoo_cart_config.element-useremail');
            if ($element = $item->getElement($emailElement)) {
                $data = $element->data();
                if (isset($data[0]['value']) && !empty($data[0]['value'])) {
                    $userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout');
                    $app->jbemail->sendByItem($data[0]['value'], $subject, $item, $userLayout);
                }
            }
/*****************SMS*****************************************************/
$totalPrice = $item->getElement('1af7e792-bcff-4a6c-9bdb-dd5023b0251a')->getTotalPrice();

        if ((int)$appParams->get('global.jbzoo_cart_config.notificaction-sms', 1)) {
            jimport('sms.transport');
            $smsApi = new Transport();

            $adminPhones        = $app->jbstring->parseLines($appParams->get('global.jbzoo_cart_config.admin-phones'));
            $userNameElementId  = $appParams->get('global.jbzoo_cart_config.element-username');
            $userPhoneElementId = $appParams->get('global.jbzoo_cart_config.element-userphone');

            if ($adminPhones && $usernameElement = $item->getElement($userNameElementId)) {
                $userNameData = $usernameElement->data();

                if (isset($userNameData[0]['value']) && !empty($userNameData[0]['value'])) {
                    $adminMessage = 'Поступил новый заказ от ' . $userNameData[0]['value'] .
                        '. На сумму ' . $app->jbmoney->toFormat($totalPrice, $appParams->get('currency', 'RUB'));

                    $adminSend = $smsApi->send(array(
                        'text'   => $adminMessage,
                        'source' => '',
                        'use_alfasource' => 1
                    ), $adminPhones);

                    $userPhoneData = $item->getElement($userPhoneElementId)->data();

                    if (isset($userPhoneData[0]['value']) && !empty($userPhoneData[0]['value'])) {
                        $userMessage = $userNameData[0]['value'] . ', заказ на сумму ' .
                            $app->jbmoney->toFormat($totalPrice, $appParams->get('currency', 'RUB')) . ' успешно оформлен.';

                        $userSend = $smsApi->send(array(
                            'text'   => $userMessage,
                            'source' => '',
                            'use_alfasource' => 1
                        ), $userPhoneData[0]['value']);
                    }
                }

            }
        }

/**********************************************************************/
        }
        



        if ((int)$appParams->get('global.jbzoo_cart_config.is_advance')) {

            // reduce the balance in the item
            $basketElements = $item->getElementsByType('jbbasketitems');
            if (!empty($basketElements)) {
                reset($basketElements);
                $jbbasket = current($basketElements);
                $items    = $jbbasket->getOrderItems();

                foreach ($items as $item) {
                    $good = $app->table->item->get($item['itemId']);
                    if (!$good) {
                        continue;
                    }

                    $jbPrices = $good->getElementsByType('jbpriceadvance');
                    foreach ($jbPrices as $jbPrice) {
                        if (isset($item['hash'])) {
                            $jbPrice->balanceReduce($item['hash'], $item['quantity']);
                        }
                    }
                }
            }
        }
    }

    /**
     * On before order save
     * @param AppEvent $event
     */
    public static function beforeSave($event)
    {
    }

}

Edited by webstudia, 24 September 2014 - 18:44.

  • 0

#19 Cheren-dow

Cheren-dow
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 24 September 2014 - 20:22

webstudia, есть строка

$totalPrice = $item->getElement('1af7e792-bcff-4a6c-9bdb-dd5023b0251a')->getTotalPrice(); 

Вам вместо моего ID(1af7e792-bcff-4a6c-9bdb-dd5023b0251a) элемента нужно вставить свой. Не нужно просто копировать и вставлять код, все же описано.

solohub, думаю с новой корзиной сделаю элемент если получится. А сейчас подумываю все в плагин поместить, что бы обновляться было проще всем нам с такими правками)


  • 0
Изображение
 

#20 webstudia

webstudia
  • JBZoo User (rus)
  • User rate: 0.2
  • posts: 104
  • topics: 21

Posted 25 September 2014 - 04:59

Вам вместо моего ID(1af7e792-bcff-4a6c-9bdb-dd5023b0251a) элемента нужно вставить свой. Не нужно просто копировать и вставлять код, все же описано.

Я своё и вставил. просто у меня тот же код. я из предустановок сделал корзину.

Я выставил сюда скриншоты (на пред.странице). там видно что у меня тот же код ID

Сам удивился, но понял что видать его разработчики делали, вот этот же номер и остался у меня после установки JBZoo


  • 0





Also tagged with one or more of these keywords: рецепт, смс, jbzoo 2.0+, api

Click to return to top of page in style!