Обсуждение ◄Magento► — Бесплатный движок Интернет-магазина с открытым исходным кодом

Ну, уже большое дело сделано! :ay:

Выгрузка на сайт - это файл commerceML?
Выгружает наименование, цену (или цены?), изображения и описания? Или что-то еще?
Запуск ручной или по расписанию?
Как скармливать магенте выгруженный файл?

Начинание интересное, сделано немало, готов включится в продолжение примерно через неделю (как закончу текущие проекты).

Ну, что бы понимать всю картину немного разжую как все работает.
Мадженто как бы находится в "ждущем режиме" и на стороне сервера ничего не делает. Нет ни расписания, ни кнопки "Загрузить файл" (хотя можно наверное сделать такой вариант.
Все, что нужно сделать это создать модуль который сможет принимать запросы из вне. Это очень просто реализуется путем создания роутера и контроллера в модуле. Роутер как бы создает отдельный адрес (в нашем случае это будет мой.сайт/connect1c) к которому можно будет обращаться, так сказать точка входа, а контроллер будет все эти обращения обрабатывать. А остальные механизмы будут реализованы в моделях и хелперах.

А вот в 1С уже настраивается периодичность обмена и возможность полной или частичной (только измененные объекты) выгрузки. Так же указываются типы цен которые выгружаются и определяются товары и категории для выгрузки. Изображения и описания идут отдельными файлами. Все это так же можно перед отправкой сжимать и уже в архиве передавать на сайт, но при этом сайт должен подтвердить в запросе, что имеется возможность работать с архивами (zip=yes или zip=no), а так же вернуть значение максимально допустимого размера файла в байтах (file_limit=<число>) и тогда 1с сможет разбить архив на части. Подробнее тут: Для просмотра ссылки Войди или Зарегистрируйся.
Собственно мадженто начинает реагировать на 1с и уже потом выполняется какой то код в зависимости от запросов...
На каждый запрос происходит действие:
[spoil]
PHP:
class Art_1C_IndexController extends Mage_Core_Controller_Front_Action {
    protected $_dir = 'var/exchange_1c/';
    public function indexAction() {
        $type = $this->getRequest ()->getParam ( 'type' );
        $mode = $this->getRequest ()->getParam ( 'mode' );
        $info = $this->getRequest ();
        switch ($type) {
            case "catalog" :
                /**
                * Выгрузка каталогов продукции
                */
                switch ($mode) {
                    case "checkauth" :
                        $this->catalogCheckauthAction ();
                        break;
                    case "init" :
                        $this->catalogInitAction ();
                        break;
                    case "file" :
                        $this->catalogFileAction ();
                        break;
                    case "import" :
                        $this->catalogImportAction ();
                        break;
                    default :
                        echo "failure" . PHP_EOL . "Указан неверный параметр при обмене информацией о товарах";
                        break;
                }
              
                break;
            case "sale" :
                /**
                * Обмен информацией о заказах
                */
                switch ($mode) {
                    case "checkauth" :
                        $this->saleCheckauthAction ();
                        break;
                    case "init" :
                        $this->saleInitAction ();
                        break;
                    case "query" :
                        $this->saleQueryAction ();
                        break;
                    case "success" :
                        $this->saleSuccessAction ();
                        break;
                    case "file" :
                        $this->saleFileAction ();
                        break;
                    default :
                        echo "failure" . PHP_EOL . "Указан неверный параметр при обмене информацией о заказах";
                        break;
                }
              
                break;
            default :
                echo "failure" . PHP_EOL . "Указан неверный тип параметра";
                break;
        }
    }
[/spoil]

И когда обе стороны договорись 1С начинает отправлять данные на сервер. По сути обычный XML...

[spoil]
Код:
<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2013-12-05T14:44:35">
    <Классификатор>
        <Ид>f42f9005-338a-4638-b822-2eaddf6fd864</Ид>
        <Наименование>Классификатор (Основной каталог товаров)</Наименование>
        <Владелец>
            <Ид>9e0a6c78-5a5e-11e3-bdb3-cc52aff6d2be</Ид>
            <Наименование>Организация</Наименование>
        </Владелец>
        <Группы>
            <Группа>
                <Ид>9e0a6c89-5a5e-11e3-bdb3-cc52aff6d2be</Ид>
                <Наименование>Тестовая группа 1</Наименование>
                <Группы/>
            </Группа>
        </Группы>
    </Классификатор>
    <Каталог СодержитТолькоИзменения="false">
        <Ид>f42f9005-338a-4638-b822-2eaddf6fd864</Ид>
        <ИдКлассификатора>f42f9005-338a-4638-b822-2eaddf6fd864</ИдКлассификатора>
        <Наименование>Основной каталог товаров</Наименование>
        <Владелец>
            <Ид>9e0a6c78-5a5e-11e3-bdb3-cc52aff6d2be</Ид>
            <Наименование>Организация</Наименование>
        </Владелец>
        <Товары>
            <Товар>
                <Ид>9e0a6c88-5a5e-11e3-bdb3-cc52aff6d2be</Ид>
                <Артикул>666666</Артикул>
                <Наименование>Тестовый товар 1</Наименование>
                <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
                <ПолноеНаименование>Тестовый товар 1</ПолноеНаименование>
                <Группы>
                    <Ид>9e0a6c89-5a5e-11e3-bdb3-cc52aff6d2be</Ид>
                </Группы>
                <Описание>Описание)))</Описание>
                <Картинка>import_files/9e/9e0a6c885a5e11e3bdb3cc52aff6d2be_c683a85cc0fe4c41af432f109e8c05a4.jpg</Картинка>
                <Картинка>import_files/9e/9e0a6c885a5e11e3bdb3cc52aff6d2be_76753c3874904028a405e8d506c832be.jpg</Картинка>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>20</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>Файл</Наименование>
                        <Значение>import_files/9e/9e0a6c885a5e11e3bdb3cc52aff6d2be_1a2dec13cc094ce7b9412850b0bfe530.file</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ОписаниеФайла</Наименование>
                        <Значение>import_files/9e/9e0a6c885a5e11e3bdb3cc52aff6d2be_c683a85cc0fe4c41af432f109e8c05a4.jpg#magento-mobile-dashboard-10-0-s-386x470</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ОписаниеФайла</Наименование>
                        <Значение>import_files/9e/9e0a6c885a5e11e3bdb3cc52aff6d2be_76753c3874904028a405e8d506c832be.jpg#Кот</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ОписаниеФайла</Наименование>
                        <Значение>import_files/9e/9e0a6c885a5e11e3bdb3cc52aff6d2be_1a2dec13cc094ce7b9412850b0bfe530.file#Кот</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товары</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Тестовый товар 1</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
            </Товар>
        </Товары>
    </Каталог>
</КоммерческаяИнформация>
[/spoil]

И потом уже это все обрабатывается Маджентой...

Потом в таком же виде передается информация о заказах с учетом последней даты обмена.
 
Вопрос! На сколько интересна платежная система payu.ua и есть ли смысл подключать мадженту???
 
ну есть коммерционные модули, ионкубленые, интеграция с это краеугольный камень, насколько я помню. там 100500 конфигураций и нюансов.
Я чтото непойму, что за 1С? первый раз встречяется этот 1С. Небудет ли это синхронизация - обновление файлов через SVN? Пожалуйста, кто нибудь разъесните.
 
Я чтото непойму, что за 1С? первый раз встречяется этот 1С. Небудет ли это синхронизация - обновление файлов через SVN? Пожалуйста, кто нибудь разъесните.
А чем этот 1С отличается от того 1С. Обновление каких файлов через SVN? Пожалуйста, разъясните.
 
при чём SVN к 1С? нельзя так шутить :crazy:
 
при чём SVN к 1С? нельзя так шутить :crazy:
В том и вопрос, шумадан, что я незнаю что за зверь этот 1С. Можно разъяснить кратка, чтобы я мог зазобраться. А то я запутался читая ваши разговоры про 1С.
 
В том и вопрос, шумадан, что я незнаю что за зверь этот 1С. Можно разъяснить кратка, чтобы я мог зазобраться. А то я запутался читая ваши разговоры про 1С.

Обзор системы «1С:Предприятие 8»

Система программ «1С:Предприятие 8» включает в себя платформу и прикладные решения, разработанные на ее основе, для автоматизации деятельности организаций и частных лиц. Сама платформа не является программным продуктом для использования конечными пользователями, которые обычно работают с одним из многих прикладных решений (конфигураций), разработанных на данной платформе. Такой подход позволяет автоматизировать различные виды деятельности, используя единую технологическую платформу.
Области применения
Гибкость платформы позволяет применять 1С:Предприятие 8 в самых разнообразных областях:
автоматизация производственных и торговых предприятий, бюджетных и финансовых организаций, предприятий сферы обслуживания и т.д.
поддержка оперативного управления предприятием;
автоматизация организационной и хозяйственной деятельности;
ведение бухгалтерского учета с несколькими планами счетов и произвольными измерениями учета, регламентированная отчетность;
широкие возможности для управленческого учета и построения аналитической отчетности, поддержка многовалютного учета;
решение задач планирования, бюджетирования и финансового анализа;
расчет зарплаты и управление персоналом;
другие области применения.
Источник: Для просмотра ссылки Войди или Зарегистрируйся
 
В том и вопрос, шумадан, что я незнаю что за зверь этот 1С. Можно разъяснить кратка, чтобы я мог зазобраться. А то я запутался читая ваши разговоры про 1С.
artmouse коротко ответил, но 1С Предприятие или же (насколько я помню) 1С Бухгалтерия очень распостранённый продукт на территории СССР. уже с 10-к лет.
 
Оболдел. Куча информатции. Спасибо за наводку. Побижал читать...o_O
 
Назад
Сверху