Magento M2E Pro Best Offer via attributes

In Magento è possibile installare il modulo M2E Pro per interfacciare gli articoli presenti nel negozio ecommerce con Ebay, Amazon ecc…
In questo articolo spiego come modificare il codice di M2E per impostare le offerte in base al prodotto e non in base alla categoria di appartenenza.

Per prima cosa dobbiamo creare due attribute nuovi da associare ai vari attribute set che abbiamo nel nostro store.

  • Nome attributo: ebay_bestoffer_accept_price

Tipo di catalogo inserito per il proprietario nel negozio: Prezzo
Valore predefinito: 0
Descrizione: Accetta Automaticamente Offerte Sopra

  • Nome attributo: ebay_bestoffer_reject_price

Tipo di catalogo inserito per il proprietario nel negozio: Prezzo
Valore predefinito: 0
Descrizione: Rifiuta Automaticamente Offerte Sotto

Questi attributi se specificati consentiranno al modulo M2E di impostare i parametri relativi alle offerte sul singolo prodotto.
NB: Anche sul template dell’inserzione l’offerta va abilitata.

Una volta sistemati i dati in Magento, dobbiamo modificare il codice di M2E come segue:

Nel file app/code/community/Ess/M2ePro/Model/Ebay/Listing/Product.php aggiungere queste function:

    public function isBestOfferEnabledByProduct()
    {
        if ($this->getBestOfferRejectPriceByProduct() == '0' && $this->getBestOfferAcceptPriceByProduct() == '0') return false;
        return true;
    }

    public function getBestOfferAcceptPriceByProduct()
    {
        return (float)$this->getMagentoProduct()->getAttributeValue('ebay_bestoffer_accept_price');
    }

    public function getBestOfferRejectPriceByProduct()
    {
        return (float)$this->getMagentoProduct()->getAttributeValue('ebay_bestoffer_reject_price');
    }

Nel file app/code/community/Ess/M2ePro/Model/Ebay/Listing/Product/Action/Request/Selling.php modificare la funzione getPriceData() come segue:

    public function getPriceData()
    {
        if (!$this->getConfigurator()->isPriceAllowed() ||
            $this->getIsVariationItem()) {
            return array();
        }

        $data = array();

        if ($this->getEbayListingProduct()->isListingTypeFixed()) {

            $data['price_fixed'] = $this->getEbayListingProduct()->getFixedPrice();

            $data['bestoffer_mode'] = $this->getEbaySellingFormatTemplate()->isBestOfferEnabled();

            if ($data['bestoffer_mode'] && $this->getEbayListingProduct()->isBestOfferEnabledByProduct()) {
                $data['bestoffer_accept_price'] = $this->getEbayListingProduct()->getBestOfferAcceptPriceByProduct();
                $data['bestoffer_reject_price'] = $this->getEbayListingProduct()->getBestOfferRejectPriceByProduct();
            } else {
                $data['bestoffer_mode'] = 0;
            }

        } else {
            $data['price_start'] = $this->getEbayListingProduct()->getStartPrice();
            $data['price_reserve'] = $this->getEbayListingProduct()->getReservePrice();
            $data['price_buyitnow'] = $this->getEbayListingProduct()->getBuyItNowPrice();
        }

        return $data;
    }

Dopo aver modificato questi file è necessario ricompilare i file php.

NB: queste modifiche si applicano alla versione 5.3.8 di M2E Pro.

Rispondi