Как происходят заказы в WooCommerce (или Почему не приходят уведомления про заказ на email)

 

Как правило, если заказ совершается с оплатой через неэлектронные платежные способы, т.е. те, которые требуют времени на совершение платежа, — Прямой банковский перевод, Оплата чеками, Наличными (эти способы присутствуют в WC по умолчанию), то такие заказы резервируются до момента получения оплаты. В этом случае и админ и покупатель получают уведомления о заказе на email. При этом в письме покупателю уточняется каким образом ему следует оплатить заказ, исходя из того, что он выбрал и способ доставки, который он также выбрал.

WooCommerce. Размещения заказа через ОБЫЧНЫЕ способы оплаты

WooCommerce. Размещения заказа через ОБЫЧНЫЕ способы оплаты

Если заказ совершается с оплатой через электронные платежные системы, например, через Credit Card или PayPal (эти способы присутствуют в WC по умолчанию), то заказы размещаются со статусом «ожидание». Если покупатель не оплатит заказ в течении часа — заказ автоматически переходит в статус «отменен».

WooCommerce. Размещения заказа через ЭЛЕКТРОННЫЕ способы оплаты

WooCommerce. Размещения заказа через ЭЛЕКТРОННЫЕ способы оплаты

Платежные способы WooCommerce

Платежные способы WooCommerce

Рассмотрим заказ через электронные платежные системы. К таковым можно отнести почти все наши платежные шлюзы: Приват24, LiqPay (прием оплаты с карт VISA и MasterCard), WebMoney, Яндекс.Деньги, Z-payment, QIWI, Интеркасса, ChronoPay, ONPAY, Uniteller (Юнителлер), E-Pay («Казкоммерцбанк»).

Сразу после размещения заказа с оплатой через электронные платежные системы, заказ находится в статусе «ожиданиe» и письма (уведомления) никому не отправляются. Уведомление о заказе (как админу, так и покупателю) приходит только тогда, когда меняется статус заказа. А он меняется только тогда, когда покупатель произведет какие-то действия. Он либо переходит к оплате, либо может отменить заказ и восстановить корзину. Если статус заказа меняется — отправляются письма. Отправка писем — это функция Woocommerce, и наши плагины (платежные шлюзы) к этому процессу имеют только косвенное отношение, а именно, когда переводят статусы заказов. Задача плагина (платежного шлюза) перевести заказ в нужный статус, а WC уже судя о статусе отправляет нужные письма.

После того, как пользователь произведет оплату, плагин переводит заказ в статус «обработка» или «выполнен» (в зависимости от типа товара: цифровые — выполнен, не цифровые — обработка). При остальных статусах письма не приходят. Посмотрите, пожалуйста, что происходит со статусом заказа после оплаты? Если плагин не переводит статус, то скорее всего Вы не произвели настройку на стороне платежного агрегатора, не указав URL уведомлений, когда это требуется. Если после смены статуса заказа, не приходит письмо, то это проблема хостинга или работы WooCommerce.

Если пользователь не собирается оплачивать заказ, то зачем об этом заказе знать — письма в этом случае не приходят ни админу, ни покупателю, такие заказы остаются в статусе «ожидание» и через 60 минут WooCommerce их сам аннулирует по расписанию (если это WC 2.0.0 и выше) — он автоматически переводит такие заказы в статус «отменен» — уведомления об этом админу также не приходят.

Время “жизни” заказа можно регулировать. Управление находится на странице WooCommerce -> Настройки -> вкладка «Инвентаризация» — Удерживать остаток (в минутах) — по умолчанию 60 минут — после этого времени, неоплаченные заказы переходят в статус «отменен». Но зарезервированые заказы не отменяются.

Подробнее о статусах WooCommerce — http://docs.woothemes.com/document/managing-orders/

Смена статуса и соответственно автоматическая отправка писем, зависит от платежных шлюзов, которые вы используете.
Все наши платежные шлюзы работают следующим образом:
Покупатель разместил заказ и переходит к оплате…
Оплатил -> выполнен (если товар цифровой, соответственно покупатель сразу получит ссылки) или обработка (если товар простой);
Оформил заказ, но не оплатил -> ожидание (или неудавшийся, если он пытался оплатить, но произошли какие-то проблемы, напр., недостаток средств).
Если заказ не будет оплачен в течении 60 минут -> он автоматически отменяется.

WooCommerce. Цифровые товары

WooCommerce. Цифровые товары

Статус заказа простых товаров после оплаты меняется на «в обработке», но если вы хотите, чтобы статус сразу менялся на «выполнен» — установите для всех товаров галочки «виртуальный» и «загружаемый».

Если Вы хотите получать уведомления на email о размещении новых заказов, а также уведомлять покупателя, то можно сделать так, чтобы при заказе, статус сразу менялся на «зарезервирован». Это можно просто сделать в любом нашем платежном шлюзе. В таком случае, сразу после размещения заказа статус будет зарезервирован.

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

Например, для КИВИ (Междун.) это делается следующим образом — надо добавить в файл saphali-qiwi-multi-country/qiwi.php в 445 строку этот код:
$order->update_status(‘on-hold’, __(‘Money is comming’, ‘woocommerce’));
Эта функция будет резервировать заказ до оплаты. Если будете обновлять плагин, то это нужно учесть и заново внести туда этот код.

Если Вы хотите сделать тоже самое в другом шлюзе, то общая схема следующая — находим в коде файла (одноименное_название_шлюза.php, напр., для LIQPAY — это liqpay.php) любого платежного шлюза строчку $order = new WC_Order( $order_id ); или $theorder = new WC_Order( $order_id ); она должна быть обязательно в классе (одноименное_название_шлюза), в методе generate_form() ( можно отыскать поиском строки «function generate_form»)
и после нее добавляем следующую строку

Теперь размещенный заказ сразу будет переходить в статус «зарезервирован», при этом почти одновременно (в течении 1 секунды) отправляются два письма, первое — админу, второе — покупателю.
Админу прийдет письмо с темой — [МАГАЗИН] Новый заказ (#15) датой на 05.05.2013
Покупателю — МАГАЗИН. Ваш заказ датой на 05.05.2013 был получен
Тема письма и заголовок письма редактируются в настройках на странице WooCommerce -> Настройки -> вкладка «Emails».

Общие настройки e-mail-уведомлений

Общие настройки e-mail-уведомлений

WooCommerce. Уведомления для админа

WooCommerce. Уведомления для админа

WooCommerce. Уведомления для покупателя

WooCommerce. Уведомления для покупателя


 
 
 

51 Комментариев

 
  1. Temir09:

    при нажатии на «Разместить заказ» появляется ошибка «This order’s status is “pending”—it cannot be paid for. Please contact us if you need assistance.»

    С чем это может быть связано?

  2. Настойка на наложенный платеж, оформление заказа — выдает комментарий К сожалению, у нас не предусмотрены доступные методы оплаты для вашей страны. Пожалуйста, свяжитесь с нами если вам необходима консультация или специальные условия.

    • Saphali Studio:

      Возможно, в данном платежном шлюзе Вы указали разрешения только для конкретных стран.

  3. Антон:

    Добрый день! Интересует следующий вопрос — при оплате неэлектронными платежными способами можно ли установить время ожидания? К примеру клиент выбрал тип оплаты наличными в магазине, но в течении 2х дней не пришел и не выкупил заказ — заказ должен перейти в статус отменен. Можно так сделать?

    • Saphali Studio:

      Да. Находится в настройках Woocommerce во вкладке Инвентаризация (Продукты -> Инвентаризация).

      • Антон:

        Немного не понял, цитаты из статьи:
        1. Если заказ совершается с оплатой через неэлектронные платежные способы, то такие заказы резервируются до момента получения оплаты.
        2. Если заказ совершается с оплатой через электронные платежные системы, то заказы размещаются со статусом “ожидание”. Если покупатель не оплатит заказ в течении часа – заказ автоматически переходит в статус “отменен”.

        Мне необходимо, чтобы во втором случаем так и оставался час — это настройки я нашел, как раз в инвентаризации. А вот для первого случая хотелось бы время ожидания сделать 2 дня — такую настройку не нашел.

      • Антон:

        Немного не понял, цитаты из статьи:
        1. Если заказ совершается с оплатой через неэлектронные платежные способы, то такие заказы резервируются до момента получения оплаты.
        2. Если заказ совершается с оплатой через электронные платежные системы, то заказы размещаются со статусом “ожидание”. Если покупатель не оплатит заказ в течении часа – заказ автоматически переходит в статус “отменен”.

        Пункт 2 я нашел — как раз в инвентаризация, там стоит 60 минут. Меня это устраивает.
        А вот пункт 1 необходимо выставить в 2 дня — такую настройку не нашел. Или настройка в инвентаризации едина для всех видов оплаты?

        • Saphali Studio:

          Для первого случая нужно реализовывать данную функцию. Настроек под этот пункт нет.

  4. Алексей:

    Здравствуйте!
    Если я подключу WOOCOMMERCE QIWI ПЛАГИН (MЕЖДУНАРОДНЫЙ)с каких стран я смогу принимать платежи? и что нужно моему покупателю чтобы оплатить (напр. требуется ли привязка карты к киви кошельку)?

    • Saphali Studio:

      Здравствуйте.
      В описании плагина это оговорено (список стран может увеличиваться, поэтому смотрите актуальный список стран на главной странице сайта Киви — qiwi.com). От покупателя потребуется ввести только свой номер телефона. Привязка карты не обязательна, т.к. счет выписывается на номер телефона и его можно оплатить с терминала, или онлайн с личного кошелька Киви, привязка требуется только, если покупатель хочет оплатить картой через Киви.

  5. Здравствуйте,при размещении нового заказа,не отправляются письма.Статус-в ожидании.В каком файле нужно вставить вышеописанный код,чтобы было в резерве? Оплата наличными. Спасибо за ответ.

  6. g00gle:

    Проблема возникла при отправке писем админу и клиенту при статусах «Новый заказ» и «Обработка заказа», при наличном заказе, все выше перечисленное проверил, все в порядке, все соответствует, в чем может проблема что ещё можно проверить ?

  7. добрый вечер. подскажите пожалуйста где находиться строка и как прописать строку резервации. хелп ми люди

    • не приходят письма на эмэйлы. ни админу, ни клиенту. в вашей статье немного не понял куда вводить строки

      • Saphali Studio:

        Инструкция о том, как при размещении заказа изменять статус на “зарезервирован” применяется только к нашим платежным шлюзам (плагинам).

    • Saphali Studio:

      Здравствуйте.
      $order->update_status(‘on-hold’, __(‘Money is comming’, ‘woocommerce’));
      В метод process_payment или generate_form класса платежного шлюза, после строки определения переменной $order.

      • здраствуйте. я прошу прощения, у меня пару вопросов. 1)мне нужно что бы работал платежный шлюз «наличными». он продается? если да, то как его приобрести
        2)метод process_payment. где находится ?
        p.s. я новичок.. не судите строго

        • Saphali Studio:

          Здравствуйте.
          Для этого платежного шлюза ничего не нужно. Он есть в арсенале Woocommerce. И статус он переводит, если в опциях указано, чтобы после совершении нового заказа посылать письма (в Emails). Письма могут не приходить только, если сайт совсем не отсылает их, или опция, о кот. я писал не установлена.

  8. WooCommerce Customizer тоже загружен. Часть плагинов перевел на русский При попытке локализации плагина WooCommerce Customizer v1.1 выдает ошибку:
    Error: The actual loaded translation content does not match the textdomain: wc-customizer
    Expect, that any text you translate will not occure as long as the textdomain is mismatching!
    This is a coding issue at the source files you try to translate, please contact the original Author and explain this mismatch.
    Может в этом причина?

  9. Несмотря на загруженные плагины Saphali Woocommerce Russian, и CodeStyling Localization (перевел тексты) в корзине половина кнопок на английском языке (Checkout Progress,Payment method, billing adress и т.д.). Помогите пожалуйста русифицировать.

    • Saphali Studio:

      Смотрите в папке установленной темы должна быть папка woocommerce, в которой данная тема переопределяет шаблоны. Там нужно отыскать слова и сделать перевод.

  10. Александр:

    Плагин WP-SMPT очень помогает) там надо выставить параметры заданные хостингом (SMTP Host, SMTP Port) и указать логин и пароль от почты. Может кому-то это поможет)

  11. попробовал все что написано выше письма не приходят ни мне не клиенту

    • Saphali Studio:

      Прочтите еще комментарии, возможно, найдете здесь решение. Если это проблема хостинга — пишите хостеру или применяйте плагин WP-Mail-SMTP

  12. Sergey:

    Подскажите пожалуйста. После оформления заказа не приходят письма администратору и клиенту. Способ оплаты наличными. Доставка бесплатная.
    Меняли статус заказа на зарезервирован — тоже не приходят.

    При попытки проверки статуса заказа:
    http://sait.com/wp-admin/admin.php?page=woocommerce_status

    Всплывает окно, что у Вас нет доступа. Но там ничего не меняли.

    В чем может быть проблема.
    Сайт новый настройки делали согласно Вашей статье.

  13. Ольга:

    Крик о помощи! Когда я нажимаю кнопку «перейти к оплате» в корзине, страница Checkout не работает, точнее там написано вот это: [shoppingcart] и все. В настройках плагина страница указана верно, однако в system status есть такая строчка: Оплата: Page does not contain the shortcode: [woocommerce_checkout]

  14. В письме оповещении о новом заказе, так же в письме клиенту, о том, что заказ принят заголовок «Почтовый адрес» пишется как «Реквизиты для оплаты» просмотрел файлы русификации темы и плагина, вроде все исправил, но изменений нет. Подскажите куда еще копнуть?

  15. Сергей:

    Здравствуйте, помогите пожалуйста если можете!
    У меня на сайте, после оформления заказа и нажатии кнопки Разместить заказ, выскакивает страница с непонятным кодом, как это исправить???

    КОД

    {«result»:»failure»,»messages»:»
    \n\t\t\t
    \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.\n\t\t\t
    \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0435\u0441\u0441\u0438\u044f \u0438\u0441\u0442\u0435\u043a\u043b\u0430. \u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e →\n\t\t\t

    • Saphali Studio:

      Здравствуйте.
      Скорее всего в настройках (http://ВАШ_САЙТ/wp-admin/admin.php?page=woocommerce_settings&tab=pages) не указана страница: «Страница процесса оплаты».

      • Андрей:

        так же столкнулся с подобной проблемой, в настройках указана «страница процесса оплаты», но все равно выдает эту ошибку, как исправить?
        {«result»:»failure»,»messages»:»
        \n\t\t\t
        \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.\n\t\t\t
        \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0435\u0441\u0441\u0438\u044f \u0438\u0441\u0442\u0435\u043a\u043b\u0430. \u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e →\n\t\t\t
        \u0421\u0442\u0440\u0430\u043d\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t\t\t
        \u0418\u043c\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t\t\t
        \u0424\u0430\u043c\u0438\u043b\u0438\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t\t\t
        \u0410\u0434\u0440\u0435\u0441 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t\t\t
        \u0413\u043e\u0440\u043e\u0434 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t\t\t
        \u041e\u0431\u043b\u0430\u0441\u0442\u044c, \u0420\u0430\u0439\u043e\u043d \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t\t\t
        \u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t\t\t
        Email-\u0430\u0434\u0440\u0435\u0441 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t\t\t
        \u0422\u0435\u043b\u0435\u0444\u043e\u043d \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.\n\t»,»refresh»:»false»}

  16. Заказ имеет статус «зарезервирован» хотя на почту не приходит ни админу, ни клиенту. Оплата — наличными, доставки нет. В чем может быть проблема?

    • Saphali Studio:

      Проверьте корректность названий для всех статусов — их названия должны быть обязательно такими.

      Статусы заказа: cancelled (cancelled), completed (completed), failed (failed), on-hold (on-hold), pending (pending), processing (processing), refunded (refunded)

      Если они такого вида, например, cancelled-2, то суть проблемы именно в этом.

      • а где это проверить?

        • Saphali Studio:

          Проверить можно на странице WooCommerce -> Состояние системы.
          http://sait.com/wp-admin/admin.php?page=woocommerce_status

          Также причиной может являться то, что У Вас не работают функции mail и wp_mail. Если это так — сообщите в хостинг-компанию на счет функции mail. Или самостоятельно активируйте mail() в настройках php на хостинге, если знаете.

          Проверить работоспособность можно прописав следующее в functions.php.

          if(is_super_admin()) {
          $r = mail(‘ваша_почта’, ‘subject’, ‘message’ );
          var_dump($r);
          }

          где ваша_почта — почтовый адрес.

          Если все ок, то должно на почту прийти письмо и на сайте высветится true. Иначе высветится строка false и не придет письмо.

          • высветилось:
            Warning: mail() [function.mail]: Could not execute mail delivery program ‘/usr/sbin/sendmail -t -i ‘ in /home/…/functions.php on line 8
            bool(false)
            значит проблема с хостингом?

          • Saphali Studio:

            Да.

          • Татьяна:

            Что делать, если проблема с хостингом? (появилась строка false )

          • Saphali Studio:

            Зайти на cPanel и посмотреть, где включается возможность отправки писем или обратиться в поддержку по этому поводу.

  17. Давид:

    А что делать с Робокассой?

    • Saphali Studio:

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

  18. Метод оплаты — наличными.
    Однако уведомление о новом заказе так и не приходит.
    Что я делаю не так?

    • Saphali Studio:

      Проверьте папку спам, часто эти письма идут в спам. Укажите в настройках Emails — вкладка «Новый заказ» свой почтовый ящик, т.к. по умолчанию письма отправляются на адрес магазина, что указан в общих настройках. Если это не дает результата — проблема может быть в работе хостинга. Также проверьте приходят ли письма при другом методе оплаты.

      • в спам не попадает. хостинг не при чём.
        в списке заказов меняю статус заказа на «зарезервирован», тогда приходит.
        странно почему сразу этот статус не ставится при оплате наличными.

        • Saphali Studio:

          Потому и не приходят сразу, поскольку он не переводиться в статус “зарезервирован”, а то чего он не переводится действительно странно. Можно отыскать платежный класс, и согласно статьи поместить в нужное место код.

          • согласно какой статье?

          • Saphali Studio:

            Этой.

          • Сергей:

            У меня, похоже, уникальный случай.
            Оплата наличными, строка про резервацию прописана, клиентам письма приходят, а вот админу нет.
            Работоспособность через functions.php проверена, письма от хостера идут.

            в разделе E-mails все адреса прописаны.
            Что я делаю не так?

          • Сергей:

            Кстати, разобрался сам. Надо обязательно ставить крыжик напротив пункта «Включить уведомления о «низком наличии»» в настройках Emails в разделе «Новый заказ».

    • Алла:

      У меня была таже проблема.Письма сначала приходили,а потом перестали.Не могла понять почему.Грешила на обновление версий самого WordPress или WooCommence.Читала миллион рекомендаций,включая установку дополнительных плагинов для почты — ничего не помогло.Руки уже опускались и тут я увидела комментарий Сергея о снятой мною «птичке» на пункте «Включить уведомления о «низком наличии»».Поставила птички везде -уведомления стали приходить.Вот такая ерунда получается.Мне эти птички вообще не нужны,т.к. товары виртуальные и никаких остатков нет…Огромное спасибо Сергею

 
 
Top