Новости Joomla

WT AmoCRM - RadicalMart плагин интеграции интернет-магазина на Joomla с CRM

👩‍💻 WT AmoCRM - RadicalMart плагин интеграции интернет-магазина на Joomla с CRM.Плагин умеет отправлять данные заказа из Joomla компонента интернет-магазина RadicalMart в AmoCRM, а так же оставлять примечания к сделке при смене статуса заказа (выберите необходимые статусы заказа RadicalMart в настройках плагина).Возможности плагина - создание сделок в AmoCRM в момент создания заказа в интернет-магазине RadicalMart- выбор воронки AmoCRM, в которой создавать сделки- выбор тега, которым будут помечаться созданные сделки- в комментарий к сделке при создании заказа пишутся:-- точная общая сумма заказа (Amo CRM не принимает дробные значения в поле бюджет, например с копейками)-- статус заказа-- информация о доставке (способ, адрес и комментарий)-- информация о способе оплаты-- контактные данные покупателя (могут отличаться от данных пользователя, создавшего заказ. Например, если доставка для другого человека)-- прямая ссылка на заказ в панели администрирования сайта-- список товаров заказа (опционально)добавление комментария к сделке при изменении статуса заказа в интернет-магазине RadicalMart (выберите необходимые статусы заказа в настройках плагина)-- добавляет в интерфейс просмотра заказа ссылку на сделку в AmoCRM, если таковая обнаружена (соответствие заказов и сделок хранится в базе данных)-- UTM-метки для сделки. Указывает, если на сайте используется комплект плагинов RadicalForm и WT AmoCRM - RadicalForm.
Для работы плагина необходима установка и настройка библиотеки WT Amo CRM library для Joomla версии 1.3.0 и выше.
Плагин бесплатный. Тестировался на Joomla 5.4 и RadicalMart 2.2.4.
Страница расширения и скачатьТак же:- Интернет-магазин RadicalMart- WT Amo CRM библиотека интеграции Joomla и AmoCRM- RadicalForm плагин обратной связи- WT AmoCRM - RadicalForm - плагин отправки сообщений из RadicalForm в AmoCRM@joomlafeed#joomla #crm #amocrm #radicalmart

Вышли релизы Joomla 6.0.1 и Joomla 5.4.1

Релиз Joomla 6.0.1 и Joomla 5.4.1

Проект Joomla рад сообщить о выпуске Joomla 6.0.1 и Joomla 5.4.1. Это релиз исправлений ошибок и улучшений для серии Joomla 6.1 и Joomla 5.4.

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

w00

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
В общем у меня есть компонент для импорта цен на товары, мне нужно что бы из того же excel файла заносилась еще одна колоночка с данными о наличии товара.
admin.vmimporttool
Код
<?php
/** PHPExcel */
require_once 'includes/PHPExcel.php';
/** PHPExcel_IOFactory */
require_once 'includes/PHPExcel/IOFactory.php';

class VMImportTool {
const SKU_COL_NAME = 'Art';
const PRICE_COL_NAME = 'Pr_Rn';

const PRODUCT_CURRENCY = 'RUB';

private static $excelReader = null;

function __construct() {
$this->excelReader = PHPExcel_IOFactory::createReader('Excel2007');
$this->excelReader->setReadDataOnly(true);
}

private $rowCount = 0;
private $importCount = 0;

public function uploadFile($file) {

$this->rowCount = 0;
$this->importCount = 0;

$objExcel = @$this->excelReader->load($file);
if(!$objExcel) return false;
$objWorksheet = @$objExcel->getActiveSheet();
if(!$objWorksheet) return false;

$rowIterator = $objWorksheet->getRowIterator();
$skuCol = false;
$priceCol = false;
$isFindHeader = false;
foreach ($rowIterator as $row) {
if(!$isFindHeader) {
$cellIterator = $row->getCellIterator();
foreach ($cellIterator as $cell) {
if($cell->getValue() == self::SKU_COL_NAME) {
$skuCol = $cellIterator->key();
$isFindHeader = true;
}
if($cell->getValue() == self::PRICE_COL_NAME) {
$priceCol = $cellIterator->key();
$isFindHeader = true;
}

}
if($isFindHeader && ($skuCol===false || $priceCol===false)) {
return false;
}

  }
else {
  $cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // This loops all cells
$sku = '';
$price = '';
foreach ($cellIterator as $cell) {
if($cellIterator->key() == $skuCol) {
$sku = strip_tags(trim($cell->getValue()));
}
if($cellIterator->key() == $priceCol) {
$price = round(floatval($cell->getValue()),2);
}
  }
  if($this->import($sku, $price)) $this->importCount++;

$this->rowCount++;
}
}
return $this->rowCount;
}

protected function import($sku, $price) {
if(!$sku || !$price) return false;
global $database;
$database->setQuery("SELECT product_id FROM #__vm_product WHERE product_sku='$sku'");
$product_id = $database->loadResult();
if($product_id) {
$database->setQuery("SELECT product_price_id FROM #__vm_product_price WHERE product_id=$product_id");
$product_price_id  = $database->loadResult();
$update_time = time();
if($product_price_id) {
$database->setQuery("UPDATE #__vm_product_price SET product_price=$price, product_currency='".self::PRODUCT_CURRENCY."', mdate=$update_time WHERE product_id=$product_id");
$database->query();
}
else {
$database->setQuery("SELECT shopper_group_id FROM #__vm_shopper_group WHERE `default`=1");
$shopper_group_id  = $database->loadResult();
$database->setQuery("INSERT INTO #__vm_product_price(product_id, product_price, product_currency,cdate,mdate,product_price_vdate,product_price_edate,shopper_group_id) VALUES($product_id,$price,'".self::PRODUCT_CURRENCY."',$update_time,$update_time,0,0,$shopper_group_id)");
$database->query();
}
return true;
}
return false;
}

public function getImportStat() {
return array('rows_imported' => $this->importCount, 'rows_count' => $this->rowCount);
}
}
?>
vmimporttool.class
Код
<?php
defined( '_VALID_MOS' ) or die( 'Доступ Запрещен' );

if($task == 'load') {
submitRequest();
}

echo '<form enctype="multipart/form-data" action="index2.php?option=' . $option .'" method="post" name="filename">';
echo '<input type="hidden" name="option" value="'.$option.'">';
echo '<input type="hidden" name="act" value="'.$act.'">';
echo '<input type="hidden" name="task" value="load">';
echo '<table class="adminform"><tr><th>Импорт данных о ценах продукции</th></tr>
<tr><td align="left">Файл : <input class="text_area" name="userfile" type="file" size="100"/><input class="button" type="submit" value="Загрузить" /></td></tr>
</table>';
echo '</form>';



/**
*/
function submitRequest(  ) {
global $mainframe;
require_once( $mainframe->getPath( 'class' ) );

// Check if file uploads are enabled
if (!(bool)ini_get('file_uploads')) {
showMessage( "Импорт данных невозможен, пока запрещена загрузка файлов.", 'Ошибка импорта данных');
return;
}


$userfile = mosGetParam( $_FILES, 'userfile', null );

if (!$userfile || $userfile[error] || !$userfile[tmp_name] ) {
showMessage( 'Выберите файл для импорта данных', 'Ошибка импорта данных');
return;
}

$importTool = new VMImportTool();

$result = $importTool->uploadFile($userfile[tmp_name]);

if ($result !== false) {
$stat = $importTool->getImportStat();
showMessage( 'Данных из файла ' . $userfile[name] . ' загружены в систему. Просмотренно ' . $stat[rows_count] .' строк, затронутто ' . $stat[rows_imported] . ' записей', 'Загрузка данных завершена' );
} else {
showMessage( 'Во время загрузки произошла ошибка. Убедитесь, что выбранный файл верен и попробуте еще раз.', 'Ошибка импорта данных' );
}
}

/**
* @param string
* @param string
* @param string
*/
function showMessage( $message, $title) {
echo '<br /><table class="adminheading"><tr><th class="install">'.$title.'</th></tr></table>';
echo '<table class="adminform"><tr><td align="left"><strong>'.$message.'</strong></td></tr></table><br />';
}
 ?>

Сам php не знаю, помогите доделать пожалуйста  !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

1C УТ 8.x &lt;-&gt; VirtueMart по протоколу CommerceML

Автор Centoff

Ответов: 1315
Просмотров: 219649
Последний ответ 27.10.2020, 15:32:10
от Leo1986
Импорт из CSV товаров с типами и свойствами из

Автор Gruz

Ответов: 499
Просмотров: 152833
Последний ответ 23.02.2017, 15:15:42
от orchanin
Как импортировать файл XML в Joomla VirtueMart?

Автор Кот Смюлан

Ответов: 2
Просмотров: 5453
Последний ответ 14.07.2016, 18:40:24
от Berzerker
импорт товаров в YML Яндекс маркет

Автор zmeyx

Ответов: 5
Просмотров: 11714
Последний ответ 14.07.2016, 18:34:28
от Berzerker
Общие вопросы по j1.5.26+vm1.1.9+импорт из 1С

Автор alexzhimuk

Ответов: 2
Просмотров: 3576
Последний ответ 06.05.2016, 15:28:04
от alexzhimuk