Abfrage der ersten Bestellung eines Kunden

MySQL: Abfrage der ersten Bestellung eines Kunden in einem bestimmten Zeitraum

SELECT *
FROM oxuser as a
JOIN
(
SELECT MIN(oxorderdate) AS oxorderdate, oxuserid AS oxuserid
FROM oxorder AS b WHERE oxorderdate >= "2000-01-01 00:00:00" AND oxorderdate <= "2014-10-22 14:04:19"
GROUP BY oxuserid
) b ON a.oxid = b.oxuserid

Die Kalenderdaten sind entsprechend anzupassen…

Admin: Zuerst „alle“ Oxid-Bestellungen anzeigen*

Oxid Source: Folgendes in der order_list.php (oxid 4.87)  einfügen/ersetzen:

public function render()
{
parent::render();

$aFolders = $this->getConfig()->getConfigParam( ‚aOrderfolder‘ );
$sFolder  = oxConfig::getParameter( „folder“ );
// first display new orders
if ( !$sFolder && is_array( $aFolders )) {
$aNames = array_keys( $aFolders );
$sFolder = $aNames[-1];
}

$aSearch    = array( ‚oxorderarticles‘ => ‚ARTID‘, ‚oxpayments‘ => ‚PAYMENT‘);
$sSearch    = oxConfig::getParameter( „addsearch“ );
$sSearchfld = oxConfig::getParameter( „addsearchfld“ );

$this->_aViewData[„folder“]       = $sFolder ? $sFolder : -1;
$this->_aViewData[„addsearchfld“] = $sSearchfld ? $sSearchfld : -1;
$this->_aViewData[„asearch“]      = $aSearch;
$this->_aViewData[„addsearch“]    = $sSearch;
$this->_aViewData[„afolder“]      = $aFolders;

return „order_list.tpl“;
}

/**
* Adding folder check
*
* @param array  $aWhere  SQL condition array
* @param string $sqlFull SQL query string
*
* @return $sQ
*/
protected function _prepareWhereQuery( $aWhere, $sqlFull )
{
$oDb = oxDb::getDb();
$sQ = parent::_prepareWhereQuery( $aWhere, $sqlFull );
$myConfig = $this->getConfig();
$aFolders = $myConfig->getConfigParam( ‚aOrderfolder‘ );
$sFolder = oxConfig::getParameter( ‚folder‘ );
//searchong for empty oxfolder fields
if ( $sFolder && $sFolder != ‚-1‘ ) {
$sQ .= “ and ( oxorder.oxfolder = „.$oDb->quote( $sFolder ).“ )“;
} elseif ( !$sFolder && is_array( $aFolders ) ) {
$aFolderNames = array_keys( $aFolders );
//$sQ .= “ and ( oxorder.oxfolder = „.$oDb->quote( $aFolderNames[0] ).“ )“;
}

return $sQ;
}

 

Admin: Erledigte Bestellungen hervorheben

Oxid Source: Folgendes in der order_list.tpl (oxid 4.87)  in Zeile 110 einfügen:

<style>
.ready{
color:#00CC33;
}
</style>

Dann unterhalb von:

[{ if $listitem->getId() == $oxid }]
[{assign var=“listclass“ value=listitem4 }]
[{ /if}]

folgendes einfügen (ca. Zeile 134):

[{assign var=“ready“ value=“ ready“ }]
[{ if $listitem->oxorder__oxfolder->value == „ORDERFOLDER_FINISHED“}][{assign var=“listclass“ value=$listclass$ready“ }]  [{ /if}]

 

Alle inaktiven Artikel in einer Kategorie aktivieren*

MySQL:

UPDATE oxarticles SET oxactive = 1
where oxparentid = „“ and oxid IN (
SELECT oxobjectid from oxobject2category
where oxcatnid = ‚KATEGORIEID
)

 

PS: KATEGORIEID bitte entsprechend anpassen (Tabellenspalte: oxcategories__oxid).

Artikel einer Kategorie löschen*

MySQL:

DELETE FROM oxarticles
WHERE oxid IN (
SELECT oxobjectid
FROM oxobject2category
WHERE oxcatnid = ‚KATEGORIEID
)

 

PS: KATEGORIEID bitte entsprechend anpassen (Tabellenspalte: oxcategories__oxid).

Artikel von mehreren Kategorien deaktivieren*

UPDATE oxarticles a

left join oxobject2category b on b.oxobjectid = a.oxid

left join oxcategories c on b.oxcatnid = c.oxid

SET a.oxactive = 0

where c.oxtitle IN(„Accessoires“,“Trapeze“,“Wakeboards“)

Kategorienamen bitte anpassen.