0 Пользователей и 1 Гость просматривают эту тему.
  • 180 Ответов
  • 36777 Просмотров
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
Цитировать
1. Зачем сочинять функцию перевода слова в нижний  регистр если она есть в php?
стандартная функция плохо переводит русские буквы, а хорошо переводящие функции из дополнительных пакетов - не на всех хостингах есть.

Цитировать
2. Зачем переводить в нижний регистр, если и так ищет? Или были проблемы?
конечно вряд ли кто то будет так вводить "МоСкВа", но вот так частенько "москва", дабы избежать лишних ошибок и из-за банальной неграмотности клиента лишить его возможности EMS доставки.

Цитировать
3. Маскимальный вес имхо лишнее, т.к. работает только на отладке, а в рабочем режиме возврат идет по ошибке.
имхо можно добавить уровень сообщений для пользователя, мол сделайте два заказа, чтобы использовать доставку EMS, или там уточните город... а не просто скрывать вариант доставки

Цитировать
4. И города доставки не понял зачем. Поттом всеравно идет запрос к емс с городом отгрузки и городом доставки.
Код города ищется по названию города, чтобы найти код нужно использовать правильное название. Или Вы что то другое имели ввиду?

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


ЗЫ: так чуть по быстрее будет

        //находим коды городов доставки и отгрузки
        $to = $this->str_lower($to);
        $from = $this->str_lower($from);
        foreach ($json['locations'] as $city) {
         $temp = $this->str_lower($city['name']);
            if ($temp == $to) {
                $to_ems = $city['value'];
            }
            if ($temp == $from) {
                $from_ems = $city['value'];
            }
            if ($to_ems && $from_ems) {
                break;
            }
        }
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
Не нашел в api ems ни слова про международную доставку.

ems.get.locations
Возвращает список городов, регионов или стран из которых и в которые возможна доставка.
Аргументы
type (обязательный) — тип запрашиваемых местоположений. Может быть: "cities", "regions", "countries" или "russia" (города и регионы)



PS позже сделаю для регионов, потому что работаю только по России, но в некоторые поселки EMS считает доставку как доставку в регион.
« Последнее редактирование: 09.02.2012, 10:55:16 от st.al »
*

foxden

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Не нашел в api ems ни слова про международную доставку.
Судя по API там можно делать запрос по стране и соответственно будет выдаваться результат. Но моих познаний в РНР нехватает чтоб переделать скрипт для теста.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Вот ссылка на апи емс http://www.emspost.ru/corp_clients/dogovor_docements/api.php
Покажи там четкое правило формирования урл для международной доставки, я не увидел, по этому не сделал. Есть торывочные сведения, что это возможно, например как вы привели возможность запроса стран доставки, но этого не достаточно чтобы правильно создать запрос. Так-же и по регионам, нет четких правил формирования расценок, по этому регионы тоже не включал.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
   function str_lower($string)
   {
      $string = strtr($string, 'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ', 'йцукенгшщзхъфывапролджэячсмитьбюё');
      return $string;
   }

В Joomla есть свои функции, которые хорошо работают с многобитными кодировками, для этих целей JString::strtolower();
А велосипеды изобретать не нужно. :)
*

foxden

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
Вопщем кусок добавленного и измененного кода для расчета доставки в регион если нету города:

Спойлер
[свернуть]

ЗЫ для других стран сложновато сделать из-за вот таких стран в выдаче ЕМС:
[name] => Азорские о-ва (Португалия)
[name] => Англия (Великобритания)
[name] => Ангола*
[name] => Андорра (княжество)

ЗЫ2 изменения проверял;)
« Последнее редактирование: 09.02.2012, 18:31:23 от st.al »
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
В Joomla есть свои функции, которые хорошо работают с многобитными кодировками, для этих целей JString::strtolower();
А велосипеды изобретать не нужно. :)

Это мой первый сайт на Joomla, очень плохо ее знаю. Хорошо что есть такие функции, на тот момент не знал, и по сему продолжу пользоваться своим проверенным велосипедом.
*

foxden

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
А если сделать без экзотических стран типо той же Анголы и всяких островов. Нужны основные Европейские страны и США.
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
А если сделать без экзотических стран типо той же Анголы и всяких островов.
сделайте=)

можно даже с экзотическими, если использовать именно такие названия на странице формирования адреса, но в любом случае придется делать запрос к базе, чтобы имя страны получить (в adv_user передается id страны как я понял), либо айдишники стран подогнать под ЕМСовские (но тогда если ЕМС изменит нумерацию - все полетит)

Цитировать
Нужны основные Европейские страны и США.
А Англия, например, не Европа?
« Последнее редактирование: 10.02.2012, 13:52:18 от st.al »
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
Заметил одну особенность (даже наверно баг): если EMS стоит первым (ид=1) то этот код отрабатывает неверно

Код
        $s_id = 0;
        foreach ($shippings as $key => $shipping) {
            if ($shipping->shipping_id == $shipping_id) {
                $s_id = $key;
                break;
            }
        }
        if($debug) echo '<br/>Ключ элемента массива способов доставки = '.$shipping_id;
        //если способ доставки не найдена закругляемся
        if ($s_id == 0){
            if($debug) echo '<br/><span style="color: #ff0000;">Ошибка! Cпособ доставки не найден! Проверьте существует ли способ доставки с ИД,
указанным в настройках плагина EMS.</span>';
            return;
        }

поменял на $s_id = -1; и if ($s_id == -1) и все заработало.
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
И еще. Поменял это

$to = (!empty($adv_user->d_city))? $adv_user->d_city : $adv_user->city;
$to_region = (!empty($adv_user->d_state))? $adv_user->d_state : $adv_user->state;

на это

if ($adv_user->delivery_adress) { $to = $adv_user->d_city; } else { $to = $adv_user->city; }
if ($adv_user->delivery_adress) { $to_region = $adv_user->d_state; } else { $to_region = $adv_user->state; }

А то неправильно отрабатывало, если заполнить адрес доставки и выбрать "Адрес доставки другой?  Нет". И еще в некоторых случаях.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Я бы на твоем месте занялся аддоном, который я недавно выложил, все-таки плагин входит через форточку, которую могут и прикрыть, или изменить, а аддон входит туда, куда и положено приложению, рассчитывающему стоимость доставки.
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
Я бы на твоем месте занялся аддоном, который я недавно выложил, все-таки плагин входит через форточку, которую могут и прикрыть, или изменить, а аддон входит туда, куда и положено приложению, рассчитывающему стоимость доставки.
Поделитесь ссылкой, если не затруднит.
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

StyleRocket

  • Давно я тут
  • 567
  • 4 / 3
Подскажите как правильно настроить если у меня товары поставляются из другой страны в России, Украину  и Белоруссию??
И почему то когда вес 3.600 для отправки по России стоимость 780 рублей, а на сайте 2335 рублей например в Нижний Новгород, не понимаю принцип.
И верно ли что Россия,а не Российская Федерация??
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Сейчас считается только внутрироссийская доставка. По разности цен включи отладку, посмотри города, вес и т.п. и вбей те-же самые данные в калькулятор.
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Поставил аддон, все работает Joomla 2.5.1 + JoomShopping 3.5.0.
Но есть проблема, если при заказе ввести город с ошибкой стоимость доставки составляет 10 000 р. Можно ли как нибудь сделать, что бы в случае неизвестного города сумма не считалась, а выдавалось сообщение типа "город не найден, проверьте правильность написания или обратитесь к администратору"

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

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Ничего такого нельзя сделать в аддоне, он может выдать только цену.
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
Поставил аддон, все работает Joomla 2.5.1 + JoomShopping 3.5.0.
Но есть проблема, если при заказе ввести город с ошибкой стоимость доставки составляет 10 000 р. Можно ли как нибудь сделать, что бы в случае неизвестного города сумма не считалась, а выдавалось сообщение типа "город не найден, проверьте правильность написания или обратитесь к администратору"

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

я тут писал, что нужно исправить, чтобы работало с "уфа" http://joomlaforum.ru/index.php/topic,193601.msg1057703.html#msg1057703
на что мне посоветовали http://joomlaforum.ru/index.php/topic,193601.msg1058468.html#msg1058468
думаю если Вы соедините воедино, то все получится
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Когда доберусь до отладки способов оплаты у себя в магазине, тогда посмотрю, но возможно это будет не скоро.
*

Ielts

  • Захожу иногда
  • 356
  • 3 / 13
Плагин способа доставки EMS Russian Post для магазина JoomShopping.
Для работы плагина необходимо создать способ доставки EMS Russian Post административной панели магазина и одну цену доставки с любым значением и всеми выбранными странами.
ID способа доставки указать в настройках плагина.
И конечно не забыть включить плагин.
Других настроек не требуется т.к. плагин работает через API EMS.

Системные требования:
1. Joomla 1.7...
2. JoomShopping 3.2.7
3. Директива allow_url_fopen должна быть разрешена.

Качать здесь http://argens.ru/index.php/my-extension/9-my-extension/7-ems-russian-post

на 2.5 работает ?
Поставил,   ввыборе оплат появляетя, а дальше что?
Ведь наверное должна какая то то обработка быть или я что то не понимаю ?
*

Ielts

  • Захожу иногда
  • 356
  • 3 / 13
Плагин способа доставки EMS Russian Post для магазина JoomShopping.
Для работы плагина необходимо создать способ доставки EMS Russian Post административной панели магазина и одну цену доставки с любым значением и всеми выбранными странами.
ID способа доставки указать в настройках плагина.
И конечно не забыть включить плагин.
Других настроек не требуется т.к. плагин работает через API EMS.

Системные требования:
1. Joomla 1.7...
2. JoomShopping 3.2.7
3. Директива allow_url_fopen должна быть разрешена.

Качать здесь http://argens.ru/index.php/my-extension/9-my-extension/7-ems-russian-post

А что бы это значило ?
уммарный вес товара в корзине = 0
Город отгрузки = Москва
Город доставки = Краснодар
Код города отгрузки = city--moskva
Код города доставки = city--krasnodar
Ошибка! Сервер EMS вернул ошибку.
Стоимость доставки =
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Суммарный вес товара в корзине = 0
*

Ielts

  • Захожу иногда
  • 356
  • 3 / 13
Суммарный вес товара в корзине = 0
Спасибо!
Т.е. получается по любому в товаре нужно указывать обязательно его вес?
Нет ли такой возможности, ( в настройках) что если нет веса товара то ставится какая нибудь константа?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Нет, такой нет, для доставки вес обязателен, по этому даже не додумался проверять.
*

HarD

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
А существует ли плагин, который бы например заменял поля адрес (область город улица) - предустановленными в базе (в соответствии с EMS или Почтой россии) - в виде выпадающего списка, затем покупатель вводит только номер дома, и на основе этой информации высчитывать тариф по доставке, а заодно и индекс.

Может кто встречал подобное...?

Что то похожее можно увидеть на самом сайте почты России: http://www.russianpost.ru/rp/servise/ru/home/postuslug/searchops1
Только здесь поиск почтового отделения...

Был бы очень благодарен если кто то, что то подобное встречал...
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Это никоим образом не относится к плагину расчета доставки. Это относится к процессору оформления заказов.
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Спасибо!
Т.е. получается по любому в товаре нужно указывать обязательно его вес?
Нет ли такой возможности, ( в настройках) что если нет веса товара то ставится какая нибудь константа?
Думаю можно через запрос к базе данных проставить.
Но в таком случае что он Вам насчитает, проще от "балды" стоимость доставки установить и не заморачиваться
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Добрый день, Arkadiy!
Тут вроде бы почти сделали Почту России

http://joomlaforum.ru/index.php/topic,204039.msg1081600.html#msg1081600

может подскажите куда дальше ковырять
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Расчет стоимости доставки в JoomShopping 3.12.3

Автор teanin

Ответов: 17
Просмотров: 10729
Последний ответ 23.04.2023, 11:55:30
от tigra-uki
Плагины доставки для Польши

Автор Alex_gs

Ответов: 1
Просмотров: 873
Последний ответ 21.03.2023, 14:36:37
от kit2m2
Стоимость заказа без стоимости доставки

Автор Alex_gs

Ответов: 3
Просмотров: 1154
Последний ответ 17.01.2023, 15:04:06
от kit2m2
Аддон доставки Почта России по API

Автор sergeytolkachyov

Ответов: 4
Просмотров: 2061
Последний ответ 22.06.2022, 09:54:30
от sergeytolkachyov
Скрыть стоимость нулевой доставки

Автор timson

Ответов: 2
Просмотров: 1378
Последний ответ 04.03.2021, 17:09:06
от v42bis