All Projects → alorian → bxorder

alorian / bxorder

Licence: MIT License
OpenSource Bitrix Order

Programming Languages

javascript
184084 projects - #8 most used programming language
PHP
23972 projects - #3 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to bxorder

bx-data
Удобные классы для 1C-Bitrix.
Stars: ✭ 24 (-61.29%)
Mutual labels:  bitrix, bitrix-module
bitrix
Bitrix24 REST API client that doesn't suck. Suffer no more.
Stars: ✭ 59 (-4.84%)
Mutual labels:  bitrix
node-bitstamp
bitstamp REST and WS API Node.js client 💵
Stars: ✭ 58 (-6.45%)
Mutual labels:  order
flowrisk
A Python Implementation of Measures for Order Flow Risk, e.g. VPIN
Stars: ✭ 53 (-14.52%)
Mutual labels:  order
simple-page-ordering
Order your pages and other hierarchical post types with simple drag and drop right from the standard page list.
Stars: ✭ 88 (+41.94%)
Mutual labels:  order
StackFlowView
Enforce stack behaviour for custom UI flow.
Stars: ✭ 35 (-43.55%)
Mutual labels:  order
bitrixtemplate stylish
Набор уроков по интеграции Bootstrap дизайна в 1С-Битрикс (набор демо-данных + шаблон 1C-Bitrix)
Stars: ✭ 39 (-37.1%)
Mutual labels:  bitrix
coffeediz.schema
Набор компонентов 1С-Битрикс для реализации микроразметки по схеме Schema.org
Stars: ✭ 14 (-77.42%)
Mutual labels:  bitrix
hlhelpers
Набор методов для работы с highloadblock 1С-Битрикс
Stars: ✭ 18 (-70.97%)
Mutual labels:  bitrix
6umpukc
Тулинг для разработки сайтов и решений на Bitrix под Ubuntu/Windows
Stars: ✭ 13 (-79.03%)
Mutual labels:  bitrix
cas
Cellular Automata Simulator
Stars: ✭ 22 (-64.52%)
Mutual labels:  order
OrderSystem
An independent micro-service that takes orders in and processes payments.
Stars: ✭ 16 (-74.19%)
Mutual labels:  order
bitrix-redis
Bitrix Cache with phpredis / Кэш Битрикс на Redis
Stars: ✭ 23 (-62.9%)
Mutual labels:  bitrix
alphabetical-sorter
VScode extension - For variable alphabetical re-order
Stars: ✭ 30 (-51.61%)
Mutual labels:  order
wp-tag-order
↕︎ Sort tags manually in individual posts (not site-globally) on WordPress.
Stars: ✭ 16 (-74.19%)
Mutual labels:  order
bitrix-elastic-indexer
Индексация инфоблоков Bitrix в Elasticsearch
Stars: ✭ 23 (-62.9%)
Mutual labels:  bitrix
bitrixclear
Чистый шаблон 1С-Битрикс / Clear template 1C-Bitrix
Stars: ✭ 20 (-67.74%)
Mutual labels:  bitrix
java
A Cloud Native Buildpack with an order definition suitable for Java applications
Stars: ✭ 66 (+6.45%)
Mutual labels:  order
bitrix-memcached
Bitrix Cache with php-memcached / Кэш Битрикс на Memcached
Stars: ✭ 13 (-79.03%)
Mutual labels:  bitrix
magento2-extrafee
This module is used to add extra fee to order. Show added extrafee in order, invoice and creditmemo.
Stars: ✭ 41 (-33.87%)
Mutual labels:  order

Opensource Bitrix Order

Более подробную информацию по функционалу, а так же просто рассуждения на тему читайте по ссылке: https://verstaem.com/bitrix/opensource-order/

Здесь, в README.md краткая выжимка из статьи касательно функционала, но без объяснения причин.

Как установить?

Установка доступна тремя разными способами:

1. Установка через композер

Чтобы пакет скачался в нужную папку в файле composer.json укажите путь до папки bitrix. Обратите внимание на блок extra:

{
    "name": "your/project",
    "authors": [
        {
            "name": "Alexander Shubin",
            "email": "[email protected]"
        }
    ],
    "require": {},
    "extra": {
        "bitrix-dir": "./"
    }
}

Путь до папки bitrix нужно прописывать относительно файла composer.json. Например если файл composer.json лежит в /local/libs, то нужно прописать "bitrix-dir": "../../bitrix". По дефолту установщик считает, что файл composer.json лежит в document_root. Если не указать корректный bitrix-dir, то будет создана папка bitrix/modules/opensource.order/ рядом с composer.json.

После того как прописали правильный bitrix-dir выполните:

$ composer require alorian/bxorder

После выполнения команды откройте список модулей маркетплейс в админке /bitrix/admin/partner_modules.php?lang=ru, если bitrix-dir был указан корректно, то вы увидите строку с модулем opensource.order. Нажмите "Установить" в выпадающем меню.

2. Установка из маркетплейс

Перейдите по ссылке https://marketplace.1c-bitrix.ru/solutions/opensource.order/ и установите решение как обычно. Если страница не открывается, то возможно решение еще на модерации.

3. Ручная установка

Скачайте архив https://github.com/alorian/bxorder/archive/master.zip и самостоятельно распакуйте его содержимое в папку модулей битрикса -- /bitrix/modules, либо /local/modules.

В папке модулей у вас должна быть папка opensource.order, а не bxorder-master, папку bxorder-master которая лежит в архиве необходимо переименовать. Таким образом полный путь до файла include.php у вас должен быть /bitrix/modules/opensource.order/include.php, либо /local/modules/opensource.order/include.php

После распаковки архива откройте список модулей маркетплейс в админке /bitrix/admin/partner_modules.php?lang=ru, найдите строку с модулем opensource.order и нажмите "Установить" в выпадающем меню


После установки любым из указанных способов разместите компонент opensource:order на нужной странице.

Как использовать?

Что вам нужно сделать как программисту для интеграции верстки? В самом простом случае вам всего лишь нужно сформировать форму (html тэг form) в шаблоне компонента, которая при отправке передаст на сервер пять переменных:

1. person_type_id. Переменная которая содержит тип плательщика.

2. properties[]. Массив переменных со свойствами заказа. Например, если у свойства символьный код — FIO, то атрибут name у инпута ставьте properties[FIO]. Если переменная множественная то ставьте name=properties[FIO][]

3. delivery_id. В самом простом случае это просто input типа radio, у которого атрибут name=delivery_id

4. pay_system_id. Так же как и с доставкой, просто radio инпут, только атрибут name=pay_system_id

5. save. Если переменная save=y, то компонент сохранит заказ. Во всех остальных случаях компонент просто обновит данные в объекте заказа и отдаст шаблон.

Да, всё настолько просто. Формируете форму с этими пятью переменными и вы великолепны. Это далеко не всё что можно сделать с помощью опенсорсного компонента. Но даже в самых сложных шаблонах суть останется прежней. Оформление заказа это не магия, просто обычная форма в браузере, просто чуть больше полей чем в обратной связи.

Что передается из компонента в шаблон?

Компонент формирует объект заказа и объект с коллекцией ошибок. Массив $arResult не используется.

Чтобы получить доступ к объекту заказа и коллекции ошибок в файле result_modifier.php шаблона вставьте в начало следующий код:

<?php
/**
 * @var OpenSourceOrderComponent $component
 */
$component = &$this->__component;
$order = $component->order;
$errorCollection = $component->errorCollection;

В шаблоне компонента желательно использовать предварительно сформированный в result_modifier массив $arResult (см. демо шаблоны). Но если вы по каким либо причинам хотите получить прямой доступ к объекту заказа, то можете сделать это так:

<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
    die();
}

/** @var OpenSourceOrderComponent $component */
echo $component->order->getPrice();
var_dump($component->errorCollection);

Куда отправлять аякс запросы?

В компоненте есть три готовых аякс метода, все они лежат в файле ajax.php. Все они работают с помощью "нового механизма аякс"

  1. searchLocation. Возвращает найденные местоположения по любой строке вида "москва", "санкт" и т.д.
  2. calculateDeliveries. Возвращает массив со стоимостью доставок
  3. saveOrder. Сохранение массива аяксом. Для работы нужно сериализовать все поля формы и отправить.

Как дорабатывать компонент под проект?

Во первых, вы всегда можете отправить pull request. Если там будет код, который пригодится многим, то pull request будет влит в основную ветку. Таким образом вы будете пользоваться оригинальным компонентом, без каких либо доработок.

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

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

Куда отправлять ошибки и предложения?

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].