Jump to content
  • 0

Zmiana w API Orders tak by product_name wskazywał krótszą wersję produktu


hakeryk2

Question

Witam,

 

Szybkie pytanie: gdzie mogę dostać się do kodu który odpowiedzialny jest za generowanie API zamówień?

Potrzebuję zmienić by wartość product_name  nie wskazywała pełnej nazwy produktu wraz z nazwą kategorii atrybutu. 

Np z 

Ładny Towar: Kolorystyka grupy - Czerwony

 

NA

Ładny Towar Czerwony

To sobie sam zrobię, jednak po prostu nie wiem gdzie znaleźć możliwość edycji logiki API :)

Dodatkowo szybkie pytanko: czy przez URL mogę zmienić np numer śledzenia paczki?

Edited by hakeryk2 (see edit history)
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Dobra, poradziłem sobie.

Nadpisałem klasę getWsOrderRows tym

class Order extends OrderCore
{
    /*
     * Changes API otput of product name to shorter one
     *  Only product name and attribute name
     */
    public function getWsOrderRows()
    {
        $query = '
			SELECT
			od.`id_order_detail` as `id`,
			od.`product_id`,
			od.`product_price`,
			od.`id_order`,
			od.`product_attribute_id`,
			od.`product_quantity`,
			CASE WHEN
				od.`product_attribute_id` != 0 THEN CONCAT(pl.`name`, \': \', GROUP_CONCAT(DISTINCT (al.`name`) SEPARATOR " " ))
				ELSE pl.`name` END as product_name,
			od.`product_reference`,
			od.`product_ean13`,
			od.`product_upc`,
			od.`unit_price_tax_incl`,
			od.`unit_price_tax_excl`
			FROM `'._DB_PREFIX_.'order_detail` od
			LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.`id_product` = od.`product_id`)
			LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON (pac.`id_product_attribute` = od.`product_attribute_id`)
			LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON ((pac.`id_attribute` = al.`id_attribute`) AND al.`id_lang` = '.Configuration::get('PS_LANG_DEFAULT').')
			WHERE od.`id_order` = '.(int)$this->id.' AND al.`id_lang` = '.Configuration::get('PS_LANG_DEFAULT').' GROUP BY od.`product_attribute_id`';


        $result = Db::getInstance()->executeS($query);
        return $result;
    }
}


Rozwiązanie nie wspiera multistore ani multilanguage (bo mi się nie chciało i nie potrzebuję) może ktoś przerobi to na multistore/multilanguage

Dalej jednak pozostawiam otwarte pytanie o update numeru śledzenia przez URL.

Edited by hakeryk2 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...