Skip to content

Instantly share code, notes, and snippets.

@iksecreeet
iksecreeet / xml_to_minishop2.php
Created August 27, 2016 18:26 — forked from andronex/xml_to_minishop2.php
Очередной импортёр товаров из XML файла в интернет-магазин на MODX Revolution v.2.4.4-pl + miniShop2 v.2.2.0-pl2
<?php
$tplProduct = 3; //номер шаблона для карточки товара
$tplParent = 2; //номер шаблона для категорий
$tplChildParent = 2; //номер шаблона для подкатегорий
$idParent = 6; //id каталога товаров
$fileProduct = 'product.xml'; //имя файла с товарами
$xpath_expression['pagetitle'] = '//Товары/Номенклатура'; //DOM структура в XML файле до имени
$xpath_expression['article'] = '//Товары/Артикул'; //DOM структура в XML файле до артикула
$xpath_expression['parents'] = '//Товары/Родитель'; //DOM структура в XML файле до родителей
@iksecreeet
iksecreeet / msDiscountFromCost.php
Created August 27, 2016 18:25 — forked from gvozdb/msDiscountFromCost.php
[MODX Revo] Разные скидки для miniShop2 в зависимости от общей суммы корзины
<?php
$chunk = 'tpl.msdfcMsg';
$discounts = array(
'100000' => '10%',
'150000' => '15%',
'200000' => '20%',
);
krsort($discounts);
reset($discounts);
$actionKey = 'msdfc_action';
@iksecreeet
iksecreeet / msorderbyphonehandler.class.php
Created August 27, 2016 18:25 — forked from argnist/msorderbyphonehandler.class.php
Minishop2 OrderHandler с привязкой к телефону вместо емейла
<?php
class msOrderByPhoneHandler extends msOrderHandler {
public function getCustomerId() {
$order = $this->ms2->order->get();
if (empty($order['phone'])) {return false;}
if ($this->modx->user->isAuthenticated()) {
$profile = $this->modx->user->Profile;
@iksecreeet
iksecreeet / minishop2.oneclick.php
Created August 27, 2016 18:23
Сниппет для отправки заказа в 1 клик для Minishop2
<?php
$errors = [];
$id = $_POST['id'];
$phone = $_POST['phone'];
$receiver = uniqid('user_');
$email = uniqid('user_') . '@bikes.ru';
if ( empty( trim( $_POST['phone'] ) ) ) {
$errors['phone'] = 'Вы не заполнили телефон';
@iksecreeet
iksecreeet / README.md
Created August 27, 2016 18:23 — forked from grachov/README.md
Снятие с публикации купленных товаров для miniShop2

Установка:

  • файл unpublish.class.php разместить в директории core/components/product_unpublish/processors/resource/
  • создать плагин, скопировав содержимое файла plugin.php. Если необходимо снимать с публикации товары сразу после покупки, отмечаем для плагина событие msOnCreateOrder. Если необходимо снимать с публикации товары при получении заказом определенного статуса, необходимо отметить событие msOnChangeOrderStatus для плагина и поменять в коде 99 на ID статуса заказа.
@iksecreeet
iksecreeet / QuickOrder.php
Created August 27, 2016 18:22 — forked from grachov/QuickOrder.php
Покупка товара в один клик для miniShop2
<?php
$context = $modx->context->get('key');
if ($context == 'mgr' || empty($_POST['quick_order']) || empty($_POST['id']) || empty($_POST['customer'])) {
return;
}
/**
* @var miniShop2 $miniShop2
*/
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($context, array(
@iksecreeet
iksecreeet / cloneResource.php
Created August 27, 2016 18:18 — forked from sepiariver/cloneResource.php
A Snippet to clone a Resource into multiple, user-defined parent containers in arbitrary contexts
<?php
// get user-defined source document and target parents
$source = intval($modx->getOption('sourceId', $scriptProperties, ''));
$targets = array_map('trim', explode(',', $modx->getOption('targetIds', $scriptProperties, '')));
// to prevent accidents...
$_allowedUsers = explode(',', 'username1,username2');
// check stuff, and if passed then get the source document object
if ( !in_array($modx->user->get('username'), $_allowedUsers) || empty($source) || $source == 0 || !is_array($targets) || empty($targets) ) return;
$sourceDoc = $modx->getObject('modResource', $source);