Magento запускает собственный скрипт при загрузке страницы с информацией о продукте - PullRequest
0 голосов
/ 09 марта 2019

Я довольно новичок в пользовательских модулях Magento и просто хочу, чтобы меня указывали в правильном направлении.

Я создаю несколько веб-сайтов, которые я хочу динамически обновлять с помощью API (который я разрабатываю).

В настоящее время у меня есть скрипт, который запускается каждый день, чтобы обновить каждый продукт с текущим количеством запасов, и другой скрипт, который получает разницу с момента последнего обновления и делает это (каждые 10 минут).

Мне это не нравится, так как все еще есть место для ошибки, и она просто не подходит мне. Я хотел бы, чтобы вы нажимали на продукт, он вызывал API, обновлял мое настраиваемое поле и отображал страницу. У меня также есть пользовательский плагин статуса акций, поэтому мне действительно нужно сделать вызов перед загрузкой страницы. , Я могу написать некоторую логику по тайм-ауту для отображения страницы в любом случае, если есть проблема с API.

Любые указатели были бы очень полезны.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Работает ... Спасибо за вашу помощь, еще есть над чем поработать, но он вызывает скрипт в нужное время!Спасибо

Events.xml

<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="catalog_controller_product_init_after">
        <observer name="Apicall" instance="Olisco\Tpcconnector\Observer\ApiCall" />
    </event>
</config>


<?php
namespace Olisco\Tpcconnector\Observer;

use Magento\Framework\Event\Observer as EventObserver;
use Magento\Framework\Event\ObserverInterface;

class ApiCall implements ObserverInterface
{

    public function execute(EventObserver $observer)
    {
      #Code here to execute!
    }
}


0 голосов
/ 11 марта 2019

Вы можете использовать функцию Event / Observer для вызова API.Попробуйте одно из следующих событий: -

catalog_controller_product_init_before
catalog_controller_product_init_after
catalog_controller_product_view
...