Skip to content

Instantly share code, notes, and snippets.

View yandexmarketforbitrix's full-sized avatar

yandexmarketforbitrix

View GitHub Profile
@yandexmarketforbitrix
yandexmarketforbitrix / only-max-period.php
Last active February 16, 2024 07:01
Только максимальный срок доставки для заказов Яндекс.Маркет
<?php
use Bitrix\Main;
use Bitrix\Sale;
use Yandex\Market\Utils\Delivery\PeriodParser;
$eventManager = Main\EventManager::getInstance();
$eventManager->addEventHandler('sale', 'onSaleDeliveryServiceCalculate', function(Main\Event $event) {
/** @var Sale\Delivery\CalculationResult $calculationResult */
@yandexmarketforbitrix
yandexmarketforbitrix / dummyformat.php
Created February 5, 2024 02:42
Расширение формата прайс-листов
<?php
namespace PhpInterface\YandexMarket;
use Bitrix\Main\Loader;
use Yandex\Market\Export\Xml;
if (!Loader::includeModule('yandex.market')) { return; }
class DummyFormat extends Xml\Format\YandexMarket\Simple
{
@yandexmarketforbitrix
yandexmarketforbitrix / event.php
Created January 15, 2024 10:08
Пункты выдачи с доступными товарами
<?php
use Bitrix\Main;
use Bitrix\Sale;
use Bitrix\Catalog;
$eventManager = Main\EventManager::getInstance();
$eventManager->addEventHandler('sale', 'onSaleDeliveryServiceCalculate', function(Main\Event $event) {
/** @var Sale\Delivery\CalculationResult $calculationResult */
@yandexmarketforbitrix
yandexmarketforbitrix / picture-mtime.php
Created November 8, 2023 10:53
Дата изменения файла для обновления изображений
<?php
$eventManager = Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('yandex.market', 'onExportOfferExtendData', function(Bitrix\Main\Event $event) {
/** @var $tagValueList Yandex\Market\Result\XmlValue[] */
$tagValueList = $event->getParameter('TAG_VALUE_LIST');
foreach ($tagValueList as $tagValue)
{
$pictures = $tagValue->getTagValue('picture', true);
@yandexmarketforbitrix
yandexmarketforbitrix / clear-price-format.php
Created October 27, 2023 06:19
Очистка форматирования значения тега price
<?php
use Bitrix\Main;
use Yandex\Market;
$eventManager = Main\EventManager::getInstance();
$eventManager->addEventHandler('yandex.market', 'onExportOfferExtendData', function(Main\Event $event) {
/** @var $tagValueList Market\Result\XmlValue[] */
@yandexmarketforbitrix
yandexmarketforbitrix / only-one-picture.php
Created October 26, 2023 01:37
Оставляем только одну картинку в прайс-листе
<?php
use Bitrix\Main;
use Yandex\Market;
$eventManager = Main\EventManager::getInstance();
$eventManager->addEventHandler('yandex.market', 'onExportOfferWriteData', function(Main\Event $event)
{
/** @var $tagResultList Market\Result\XmlNode[] */
@yandexmarketforbitrix
yandexmarketforbitrix / shop-picture-tag.php
Created August 3, 2023 02:24
Собственный тег picture внутри секции shop
<?php
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('yandex.market', 'onExportRootWriteData', function(\Bitrix\Main\Event $event) {
/** @var Yandex\Market\Result\XmlNode[] $tagResults */
$tagResults = $event->getParameter('TAG_RESULT_LIST');
$tagResult = $tagResults[0];
$context = $event->getParameter('CONTEXT');
if ((int)$context['SETUP_ID'] === 1)
@yandexmarketforbitrix
yandexmarketforbitrix / README.md
Created September 30, 2022 06:52
Обновление прайс-листа на cron
  • Разместите скрипт в директории bitrix/php_interface/include;
  • Добавьте cron-задание с периодичностью (например, 1 раз в час) в качестве аргумента укажите ид прайс-листа.

Пример задания: 0 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/include/market_export.php 9

@yandexmarketforbitrix
yandexmarketforbitrix / environment.php
Created August 23, 2022 02:30
Передача пунктов выдачи при обработке DBS-заказов Яндекс.Маркет
<?php
namespace PhpInterface\YandexMarket\Trading;
use Yandex\Market;
use Bitrix\Main;
if (!Main\Loader::includeModule('yandex.market')) { return; }
class Environment extends Market\Trading\Entity\Sale\Environment
@yandexmarketforbitrix
yandexmarketforbitrix / export-placeholder-description.php
Created July 20, 2022 02:54
Описание по умолчанию для тега description
<?php
use Bitrix\Main;
use Yandex\Market;
$eventManager = Main\EventManager::getInstance();
$eventManager->addEventHandler('yandex.market', 'onExportOfferExtendData', function(Main\Event $event) {
/** @var $tagValues Market\Result\XmlValue[] */
$tagValues = $event->getParameter('TAG_VALUE_LIST');