Jump to content

Синхронизации с Мой Склад особенности реализации в Симпле


Recommended Posts

  • Replies 99
  • Created
  • Last Reply

Top Posters In This Topic

Посмотрите у выгружаемых заказов через phpmyadmin поле modified, если оно больше чем s_settings.ast_1c_orders_export_date, значит они были изменены, и, соответсвенно, выгружаются их изменения.
Изменения это любые изменения заказа через админку а так же факт онлайн-оплаты

Link to post
Share on other sites

я НЕ менял заказы в Симпле.
Когда менял в Симпле все нормально отрабатывало (заказ повторно выгружался)

Вся загадка, почему куча заказов выгружается после изменения хотя бы одного заказа в МС, при том, что в Симпле НИЧЕГО не делалось

Link to post
Share on other sites

Посмотрел таблицу с заказами, некоторые из них имеют дату modified такую:
№ 159
создан 2012-08-23 16:52:12
изменялся 2012-08-23 18:28:19


№ 160
создан 2012-08-23 18:02:05
изменялся 2012-08-23 18:22:24


№ 141
создан 2012-08-22 22:07:39
изменялся 2012-08-23 17:48:54

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

Link to post
Share on other sites

Я посмотрел ваш access log и нашел следующее:


**первые числа ip прикрыл***.76.229 - admin [23/Aug/2012:18:28:19 +0400] "POST /simpla/index.php?module=OrderAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DOrdersAdmin%26return%3D%252Fsimpla%252Findex.php%253Fmodule%253DOrdersAdmin%2526return%253D%25252Fsimpla%25252Findex.php%25253Fmodule%25253DOrdersAdmin%252526return%25253D%2525252Fsimpla%2525252Findex.php%2525253Fmodule%2525253DOrdersAdmin%252526status%25253D0%2526status%253D0%26status%3D0&status=0&id=159

Link to post
Share on other sites

А судя по тому (видно из лога), что переход в заказ был осуществлен со страницы Новые заказы, а сейчас заказ имеет статус Принят можно сделать вывод что человек с ip заканчивающимся на 76.229 зашел в заказ номер 159 в 18:28:19 изменил его статус на Принят и нажал Сохранить.
Соответсвенно, этот заказ выгрузился в 1С как измененный.
С остальными заказами, думаю, ситуация аналогична.

Link to post
Share on other sites

Если вас не устраиват то, что измененя заказа в Симпле отражаются в 1С, вы можете изменить файл api/Orders.php, функцию get_orders, заменив midofoed на created:


if(isset($filter['modified_from']))     $modified_from_filter = $this->db->placehold('AND o.created > ?', $filter['modified_from']);


Таким образом будут отдаваться заказы созданные, а не измененные с определенной даты
Link to post
Share on other sites

> а где находится access.log? :/
Домашняя страница>Домены>
Управление файлами журналов домена

>может все же отрабатывает выгрузка из МС?
Я проверил, она выгружает заказы, измененные с прошлой выгрузки, всё верно. Другое дело, нужно ли вам передавать информацию об этих изменениях в 1С. Выше я написал как отменить передачу информации об изменениях в 1С. Точнее в Мойсклад, но это одно и тоже

Link to post
Share on other sites

После синхронизации в s_settings.ast_1c_orders_export_date записывается значение на два часа ранее

$f = fopen($dir.'logo.txt', 'a');
fwrite($f, ' ;sale query date("Y-m-d H:i:s")'.date("Y-m-d H:i:s"));
fclose($f);

, соответственно если сразу запустить следующей синхронизации шлются все заказы за два часа до предыдущей синхронизации.
Где настроить правильное время не пойму.
Если запустить файл

<?
echo "PHP: ".date("Y-m-d H:i:s");
?>

выводит верное время
Попробовал прописать в 1c_exchange.php

// Временная зонаdate_default_timezone_set('CET');
т.к. она до этого устанавливалась в config.php, а он в 1c_exchange.php вроде не подключается.
Странно, но тоже не помогло.
Что делать?
Link to post
Share on other sites

Видимо на сервере что-то с таймзоной.
Попробуйте убрать вот эту строку из api/Config.php


// Временная зона
date_default_timezone_set('CET');

Link to post
Share on other sites

В config.php написать
timezone = Europe/Moscow;

В api/Config.php написать вот так:
date_default_timezone_set($this->vars['timezone']);

и перенести эту строку чуть ниже, после определения переменных vars

Link to post
Share on other sites

Если прописать
В api/Config.php написать вот так:
date_default_timezone_set($this->vars['timezone']);
это разве повлияет на 1c_exchange.php ?

Убрал вообще:
// Временная зона
date_default_timezone_set('CET');

Вроде работает.

Link to post
Share on other sites
  • 4 weeks later...

Если в Симпле на складе товара с артикулом арт1 1 штука, его заказали, синхронизировали заказы с МС (там товар зарезервировался и остаток стал 0), допустим заказ в Симпле еще не обработали и произошла автоматическая синхронизация остатков МС с ИМ (из МС выгрузился нулевой остаток данной товарной позиции).
Получаем заблокированный заказ (недостаточно товара 0 штук)
Как рекомендуете решить?

Link to post
Share on other sites
  • 2 years later...

 

Со скидкой проблема решается изменением строки 220 файла /simpla/cml/1c_exchange.php:

 

$t1_4 = $t1_3->addChild ( "Сумма", $purchase->amount*$purchase->price*$order->discount/100);
заменить на
$t1_4 = $t1_3->addChild ( "Сумма", $purchase->price*$order->discount/100);

Решилась проблема со скидкой? Так как работает через раз нормально. 

Link to post
Share on other sites

Стабильно работала синхронизация с моим складом (выгрузка заказов в мойсклад через скрипт). скрипт дописывали. после смены статуса в админке на "Принят" заказ выгружался в скрипт и раз в 5 минут (или по ручному зарпосу) скрипт с заказами или пустой выгружался в мойсклад. Сейчас не стабильно происзходыть выгрузка. иногда заказ прилетает, иногда нет. Не отслеживается четкий алгоритм ошибки. симпла лицинзионная

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...